1324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#set( $symbol_pound = '#' ) 2324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#set( $symbol_dollar = '$' ) 3324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#set( $symbol_escape = '\' ) 4324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverpackage ${package}; 5324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 6324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverimport org.antlr.runtime.*; 7324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 8324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/** 9324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver * The super class of the generated parser. It is extended by the generated 10324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver * code because of the superClass optoin in the .g file. 11324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver * 12324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver * This class contains any helper functions used within the parser 13324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver * grammar itself, as well as any overrides of the standard ANTLR Java 14324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver * runtime methods, such as an implementation of a custom error reporting 15324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver * method, symbol table populating methods and so on. 16324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver * 17324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver * @author Jim Idle - Temporal Wave LLC - jimi@temporal-wave.com 18324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver */ 19324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverpublic abstract class AbstractTParser 20324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 21324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver extends Parser 22324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 23324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver{ 24324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver /** 25324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver * Create a new parser instance, pre-supplying the input token stream. 26324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver * 27324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver * @param input The stream of tokens that will be pulled from the lexer 28324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver */ 29324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver protected AbstractTParser(TokenStream input) { 30324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver super(input); 31324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver } 32324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 33324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver /** 34324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver * Create a new parser instance, pre-supplying the input token stream 35324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver * and the shared state. 36324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver * 37324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver * This is only used when a grammar is imported into another grammar, but 38324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver * we must supply this constructor to satisfy the super class contract. 39324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver * 40324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver * @param input The stream of tokesn that will be pulled from the lexer 41324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver * @param state The shared state object created by an interconnectd grammar 42324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver */ 43324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver protected AbstractTParser(TokenStream input, RecognizerSharedState state) { 44324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver super(input, state); 45324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver } 46324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 47324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 48324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver /** 49324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver * Creates the error/warning message that we need to show users/IDEs when 50324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver * ANTLR has found a parsing error, has recovered from it and is now 51324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver * telling us that a parsing exception occurred. 52324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver * 53324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver * @param tokenNames token names as known by ANTLR (which we ignore) 54324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver * @param e The exception that was thrown 55324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver */ 56324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver @Override 57324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver public void displayRecognitionError(String[] tokenNames, RecognitionException e) { 58324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 59324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver // This is just a place holder that shows how to override this method 60324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver // 61324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver super.displayRecognitionError(tokenNames, e); 62324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver } 63324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver} 64324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 65