Merge lp:~mmcm/akiban-sql-parser/statement-list-offsets into lp:~akiban-technologies/akiban-sql-parser/trunk

Proposed by Mike McMahon
Status: Merged
Approved by: Nathan Williams
Approved revision: 269
Merged at revision: 269
Proposed branch: lp:~mmcm/akiban-sql-parser/statement-list-offsets
Merge into: lp:~akiban-technologies/akiban-sql-parser/trunk
Diff against target: 33 lines (+7/-4)
1 file modified
src/main/javacc/SQLGrammar.jj (+7/-4)
To merge this branch: bzr merge lp:~mmcm/akiban-sql-parser/statement-list-offsets
Reviewer Review Type Date Requested Status
Nathan Williams Approve
Review via email: mp+133351@code.launchpad.net

Description of the change

Set begin & end offsets in statement nodes in a statement list.

This allows caller to know where one statement ends and another begins in the string it passed, for error reporting, logging, etc.

To post a comment you must log in.
Revision history for this message
Nathan Williams (nwilliams) wrote :

Looks simple enough.

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'src/main/javacc/SQLGrammar.jj'
2--- src/main/javacc/SQLGrammar.jj 2012-10-31 18:24:39 +0000
3+++ src/main/javacc/SQLGrammar.jj 2012-11-07 21:20:35 +0000
4@@ -2879,22 +2879,25 @@
5 void
6 StatementList(List<StatementNode> list) throws StandardException :
7 {
8+ Token[] tokenHolder = new Token[1];
9 }
10 {
11- statementListElement(list)
12- ( <SEMICOLON> [ statementListElement(list) ] )*
13+ statementListElement(list, tokenHolder)
14+ ( <SEMICOLON> [ statementListElement(list, tokenHolder) ] )*
15 <EOF>
16 }
17
18 void
19-statementListElement(List<StatementNode> list) throws StandardException :
20+statementListElement(List<StatementNode> list, Token[] tokenHolder) throws StandardException :
21 {
22 StatementNode statementNode;
23 parameterNumber = 0;
24 }
25 {
26- statementNode = StatementPart(null)
27+ statementNode = StatementPart(tokenHolder)
28 {
29+ statementNode.setBeginOffset(tokenHolder[0].beginOffset);
30+ statementNode.setEndOffset(getToken(0).endOffset);
31 list.add(statementNode);
32 }
33 }

Subscribers

People subscribed via source and target branches