| NOTE: often, if you are making a small change to the .jj file, you can |
| simply run "ant javacc" and skip the steps below. JavaCC will print |
| warnings like this: |
| |
| Warning: ParseException.java: File is obsolete. Please rename or delete this file so that a new one can be generated for you. |
| |
| which you should ignore (ie, simply keep the ParseException.java class |
| that's already present). |
| |
| If, instead, you'd like to fully rebuild the StandardQueryParser, |
| here's how: |
| |
| * Delete these files: |
| |
| StandardQueryParser.java |
| StandardQueryParserConstants.java |
| StandardQueryParserTokenManager.java |
| TokenMgrError.java |
| JavaCharStream.java |
| Token.java |
| |
| * Run "ant javacc". That will generate the all the classes |
| |
| * To avoid lots of warnings in the generated code: |
| |
| add @SupressWarnings("all"), immediately preceding the class declaration to: |
| |
| QueryParserTokenManager.java |
| TokenMgrError.java |
| JavaCharStream.java |
| Token.java |
| JavaCharStream.java |
| |
| * Remove all imports from TokenMgrError.java |
| |
| * Fix the ParseException class: |
| |
| - Change it to extend from QueryNodeParseException: |
| |
| "public class ParseException extends QueryNodeParseException". |
| |
| - Recreate the all the constructors like this: |
| |
| public ParseException(Token currentTokenVal, |
| int[][] expectedTokenSequencesVal, String[] tokenImageVal) { |
| super(new MessageImpl(QueryParserMessages.INVALID_SYNTAX, initialise( |
| currentTokenVal, expectedTokenSequencesVal, tokenImageVal))); |
| this.currentToken = currentTokenVal; |
| this.expectedTokenSequences = expectedTokenSequencesVal; |
| this.tokenImage = tokenImageVal; |
| } |
| |
| public ParseException(Message message) { |
| super(message); |
| } |
| |
| public ParseException() { |
| super(new MessageImpl(QueryParserMessages.INVALID_SYNTAX, "Error")); |
| } |
| |
| |
| - Fix all imports |