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
=== modified file 'src/main/javacc/SQLGrammar.jj'
--- src/main/javacc/SQLGrammar.jj 2012-10-31 18:24:39 +0000
+++ src/main/javacc/SQLGrammar.jj 2012-11-07 21:20:35 +0000
@@ -2879,22 +2879,25 @@
2879void2879void
2880StatementList(List<StatementNode> list) throws StandardException :2880StatementList(List<StatementNode> list) throws StandardException :
2881{2881{
2882 Token[] tokenHolder = new Token[1];
2882}2883}
2883{2884{
2884 statementListElement(list)2885 statementListElement(list, tokenHolder)
2885 ( <SEMICOLON> [ statementListElement(list) ] )*2886 ( <SEMICOLON> [ statementListElement(list, tokenHolder) ] )*
2886 <EOF>2887 <EOF>
2887}2888}
28882889
2889void2890void
2890statementListElement(List<StatementNode> list) throws StandardException :2891statementListElement(List<StatementNode> list, Token[] tokenHolder) throws StandardException :
2891{2892{
2892 StatementNode statementNode;2893 StatementNode statementNode;
2893 parameterNumber = 0;2894 parameterNumber = 0;
2894}2895}
2895{2896{
2896 statementNode = StatementPart(null)2897 statementNode = StatementPart(tokenHolder)
2897 {2898 {
2899 statementNode.setBeginOffset(tokenHolder[0].beginOffset);
2900 statementNode.setEndOffset(getToken(0).endOffset);
2898 list.add(statementNode);2901 list.add(statementNode);
2899 }2902 }
2900}2903}

Subscribers

People subscribed via source and target branches