aboutsummaryrefslogtreecommitdiff
path: root/runtime/ObjC/Framework/examples/treeparser/LangLexer.m
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/ObjC/Framework/examples/treeparser/LangLexer.m')
-rw-r--r--runtime/ObjC/Framework/examples/treeparser/LangLexer.m532
1 files changed, 532 insertions, 0 deletions
diff --git a/runtime/ObjC/Framework/examples/treeparser/LangLexer.m b/runtime/ObjC/Framework/examples/treeparser/LangLexer.m
new file mode 100644
index 0000000..12cf90c
--- /dev/null
+++ b/runtime/ObjC/Framework/examples/treeparser/LangLexer.m
@@ -0,0 +1,532 @@
+/** \file
+ * This OBJC source file was generated by $ANTLR version ${project.version} ${buildNumber}
+ *
+ * - From the grammar source file : Lang.g
+ * - On : 2011-05-06 17:38:52
+ * - for the lexer : LangLexerLexer
+ *
+ * Editing it, at least manually, is not wise.
+ *
+ * ObjC language generator and runtime by Alan Condit, acondit|hereisanat|ipns|dotgoeshere|com.
+ *
+ *
+*/
+// $ANTLR ${project.version} ${buildNumber} Lang.g 2011-05-06 17:38:52
+
+
+/* -----------------------------------------
+ * Include the ANTLR3 generated header file.
+ */
+#import "LangLexer.h"
+/* ----------------------------------------- */
+
+
+/* ============================================================================= */
+/* =============================================================================
+ * Start of recognizer
+ */
+
+/** As per Terence: No returns for lexer rules! */
+@implementation LangLexer // line 330
+
++ (void) initialize
+{
+ [ANTLRBaseRecognizer setGrammarFileName:@"Lang.g"];
+}
+
++ (NSString *) tokenNameForType:(NSInteger)aTokenType
+{
+ return [[self getTokenNames] objectAtIndex:aTokenType];
+}
+
++ (LangLexer *)newLangLexerWithCharStream:(id<ANTLRCharStream>)anInput
+{
+ return [[LangLexer alloc] initWithCharStream:anInput];
+}
+
+- (id) initWithCharStream:(id<ANTLRCharStream>)anInput
+{
+ self = [super initWithCharStream:anInput State:[[ANTLRRecognizerSharedState newANTLRRecognizerSharedStateWithRuleLen:7+1] retain]];
+ if ( self != nil ) {
+ }
+ return self;
+}
+
+- (void) dealloc
+{
+ [super dealloc];
+}
+
+/* ObjC Start of actions.lexer.methods */
+/* ObjC end of actions.lexer.methods */
+/* ObjC start methods() */
+/* ObjC end methods() */
+
+/* Start of Rules */
+// $ANTLR start "T__10"
+- (void) mT__10
+{
+ //
+ /* my ruleScopeSetUp */
+ /* Terence's stuff */
+
+ @try {
+ NSInteger _type = T__10;
+ NSInteger _channel = ANTLRTokenChannelDefault;
+ // Lang.g:7:7: ( ';' ) // ruleBlockSingleAlt
+ // Lang.g:7:9: ';' // alt
+ {
+ [self matchChar:';'];
+
+
+ }
+
+ // token+rule list labels
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ @finally {
+ //
+ /* Terence's stuff */
+
+ }
+ return;
+}
+/* $ANTLR end "T__10" */
+
+// $ANTLR start "INTTYPE"
+- (void) mINTTYPE
+{
+ //
+ /* my ruleScopeSetUp */
+ /* Terence's stuff */
+
+ @try {
+ NSInteger _type = INTTYPE;
+ NSInteger _channel = ANTLRTokenChannelDefault;
+ // Lang.g:18:9: ( 'int' ) // ruleBlockSingleAlt
+ // Lang.g:18:11: 'int' // alt
+ {
+ [self matchString:@"int"];
+
+
+
+ }
+
+ // token+rule list labels
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ @finally {
+ //
+ /* Terence's stuff */
+
+ }
+ return;
+}
+/* $ANTLR end "INTTYPE" */
+
+// $ANTLR start "FLOATTYPE"
+- (void) mFLOATTYPE
+{
+ //
+ /* my ruleScopeSetUp */
+ /* Terence's stuff */
+
+ @try {
+ NSInteger _type = FLOATTYPE;
+ NSInteger _channel = ANTLRTokenChannelDefault;
+ // Lang.g:19:11: ( 'float' ) // ruleBlockSingleAlt
+ // Lang.g:19:13: 'float' // alt
+ {
+ [self matchString:@"float"];
+
+
+
+ }
+
+ // token+rule list labels
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ @finally {
+ //
+ /* Terence's stuff */
+
+ }
+ return;
+}
+/* $ANTLR end "FLOATTYPE" */
+
+// $ANTLR start "ID"
+- (void) mID
+{
+ //
+ /* my ruleScopeSetUp */
+ /* Terence's stuff */
+
+ @try {
+ NSInteger _type = ID;
+ NSInteger _channel = ANTLRTokenChannelDefault;
+ // Lang.g:20:4: ( ( 'a' .. 'z' )+ ) // ruleBlockSingleAlt
+ // Lang.g:20:6: ( 'a' .. 'z' )+ // alt
+ {
+ // Lang.g:20:6: ( 'a' .. 'z' )+ // positiveClosureBlock
+ NSInteger cnt1 = 0;
+ do {
+ NSInteger alt1 = 2;
+ NSInteger LA1_0 = [input LA:1];
+ if ( ((LA1_0 >= 'a' && LA1_0 <= 'z')) ) {
+ alt1=1;
+ }
+
+
+ switch (alt1) {
+ case 1 : ;
+ // Lang.g: // alt
+ {
+ if ((([input LA:1] >= 'a') && ([input LA:1] <= 'z'))) {
+ [input consume];
+ } else {
+ ANTLRMismatchedSetException *mse = [ANTLRMismatchedSetException newException:nil stream:input];
+ [self recover:mse];
+ @throw mse;
+ }
+
+
+ }
+ break;
+
+ default :
+ if ( cnt1 >= 1 )
+ goto loop1;
+ ANTLREarlyExitException *eee =
+ [ANTLREarlyExitException newException:input decisionNumber:1];
+ @throw eee;
+ }
+ cnt1++;
+ } while (YES);
+ loop1: ;
+
+
+ }
+
+ // token+rule list labels
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ @finally {
+ //
+ /* Terence's stuff */
+
+ }
+ return;
+}
+/* $ANTLR end "ID" */
+
+// $ANTLR start "INT"
+- (void) mINT
+{
+ //
+ /* my ruleScopeSetUp */
+ /* Terence's stuff */
+
+ @try {
+ NSInteger _type = INT;
+ NSInteger _channel = ANTLRTokenChannelDefault;
+ // Lang.g:21:5: ( ( '0' .. '9' )+ ) // ruleBlockSingleAlt
+ // Lang.g:21:7: ( '0' .. '9' )+ // alt
+ {
+ // Lang.g:21:7: ( '0' .. '9' )+ // positiveClosureBlock
+ NSInteger cnt2 = 0;
+ do {
+ NSInteger alt2 = 2;
+ NSInteger LA2_0 = [input LA:1];
+ if ( ((LA2_0 >= '0' && LA2_0 <= '9')) ) {
+ alt2=1;
+ }
+
+
+ switch (alt2) {
+ case 1 : ;
+ // Lang.g: // alt
+ {
+ if ((([input LA:1] >= '0') && ([input LA:1] <= '9'))) {
+ [input consume];
+ } else {
+ ANTLRMismatchedSetException *mse = [ANTLRMismatchedSetException newException:nil stream:input];
+ [self recover:mse];
+ @throw mse;
+ }
+
+
+ }
+ break;
+
+ default :
+ if ( cnt2 >= 1 )
+ goto loop2;
+ ANTLREarlyExitException *eee =
+ [ANTLREarlyExitException newException:input decisionNumber:2];
+ @throw eee;
+ }
+ cnt2++;
+ } while (YES);
+ loop2: ;
+
+
+ }
+
+ // token+rule list labels
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ @finally {
+ //
+ /* Terence's stuff */
+
+ }
+ return;
+}
+/* $ANTLR end "INT" */
+
+// $ANTLR start "WS"
+- (void) mWS
+{
+ //
+ /* my ruleScopeSetUp */
+ /* Terence's stuff */
+
+ @try {
+ NSInteger _type = WS;
+ NSInteger _channel = ANTLRTokenChannelDefault;
+ // Lang.g:22:4: ( ( ' ' | '\\n' ) ) // ruleBlockSingleAlt
+ // Lang.g:22:6: ( ' ' | '\\n' ) // alt
+ {
+ if ([input LA:1] == '\n'||[input LA:1] == ' ') {
+ [input consume];
+ } else {
+ ANTLRMismatchedSetException *mse = [ANTLRMismatchedSetException newException:nil stream:input];
+ [self recover:mse];
+ @throw mse;
+ }
+
+
+ _channel=HIDDEN;
+
+
+ }
+
+ // token+rule list labels
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ @finally {
+ //
+ /* Terence's stuff */
+
+ }
+ return;
+}
+/* $ANTLR end "WS" */
+
+- (void) mTokens
+{
+ // Lang.g:1:8: ( T__10 | INTTYPE | FLOATTYPE | ID | INT | WS ) //ruleblock
+ NSInteger alt3=6;
+ unichar charLA3 = [input LA:1];
+ switch (charLA3) {
+ case ';': ;
+ {
+ alt3=1;
+ }
+ break;
+ case 'i': ;
+ {
+ NSInteger LA3_2 = [input LA:2];
+
+ if ( (LA3_2=='n') ) {
+ NSInteger LA3_7 = [input LA:3];
+
+ if ( (LA3_7=='t') ) {
+ NSInteger LA3_9 = [input LA:4];
+
+ if ( ((LA3_9 >= 'a' && LA3_9 <= 'z')) ) {
+ alt3=4;
+ }
+ else {
+ alt3 = 2;
+ }
+ }
+ else {
+ alt3 = 4;
+ }
+ }
+ else {
+ alt3 = 4;
+ }
+ }
+ break;
+ case 'f': ;
+ {
+ NSInteger LA3_3 = [input LA:2];
+
+ if ( (LA3_3=='l') ) {
+ NSInteger LA3_8 = [input LA:3];
+
+ if ( (LA3_8=='o') ) {
+ NSInteger LA3_10 = [input LA:4];
+
+ if ( (LA3_10=='a') ) {
+ NSInteger LA3_12 = [input LA:5];
+
+ if ( (LA3_12=='t') ) {
+ NSInteger LA3_13 = [input LA:6];
+
+ if ( ((LA3_13 >= 'a' && LA3_13 <= 'z')) ) {
+ alt3=4;
+ }
+ else {
+ alt3 = 3;
+ }
+ }
+ else {
+ alt3 = 4;
+ }
+ }
+ else {
+ alt3 = 4;
+ }
+ }
+ else {
+ alt3 = 4;
+ }
+ }
+ else {
+ alt3 = 4;
+ }
+ }
+ break;
+ case 'a': ;
+ case 'b': ;
+ case 'c': ;
+ case 'd': ;
+ case 'e': ;
+ case 'g': ;
+ case 'h': ;
+ case 'j': ;
+ case 'k': ;
+ case 'l': ;
+ case 'm': ;
+ case 'n': ;
+ case 'o': ;
+ case 'p': ;
+ case 'q': ;
+ case 'r': ;
+ case 's': ;
+ case 't': ;
+ case 'u': ;
+ case 'v': ;
+ case 'w': ;
+ case 'x': ;
+ case 'y': ;
+ case 'z': ;
+ {
+ alt3=4;
+ }
+ break;
+ case '0': ;
+ case '1': ;
+ case '2': ;
+ case '3': ;
+ case '4': ;
+ case '5': ;
+ case '6': ;
+ case '7': ;
+ case '8': ;
+ case '9': ;
+ {
+ alt3=5;
+ }
+ break;
+ case '\n': ;
+ case ' ': ;
+ {
+ alt3=6;
+ }
+ break;
+
+ default: ;
+ ANTLRNoViableAltException *nvae = [ANTLRNoViableAltException newException:3 state:0 stream:input];
+ nvae.c = charLA3;
+ @throw nvae;
+
+ }
+
+ switch (alt3) {
+ case 1 : ;
+ // Lang.g:1:10: T__10 // alt
+ {
+ [self mT__10];
+
+
+
+ }
+ break;
+ case 2 : ;
+ // Lang.g:1:16: INTTYPE // alt
+ {
+ [self mINTTYPE];
+
+
+
+ }
+ break;
+ case 3 : ;
+ // Lang.g:1:24: FLOATTYPE // alt
+ {
+ [self mFLOATTYPE];
+
+
+
+ }
+ break;
+ case 4 : ;
+ // Lang.g:1:34: ID // alt
+ {
+ [self mID];
+
+
+
+ }
+ break;
+ case 5 : ;
+ // Lang.g:1:37: INT // alt
+ {
+ [self mINT];
+
+
+
+ }
+ break;
+ case 6 : ;
+ // Lang.g:1:41: WS // alt
+ {
+ [self mWS];
+
+
+
+ }
+ break;
+
+ }
+
+}
+
+@end /* end of LangLexer implementation line 397 */ \ No newline at end of file