t.g
来自「antlr最新版本V3源代码」· G 代码 · 共 50 行
G
50 行
/** Demonstrates how semantic predicates get hoisted out of the rule in * which they are found and used in other decisions. This grammar illustrates * how predicates can be used to distinguish between enum as a keyword and * an ID *dynamically*. :) * Run "java org.antlr.Tool -dfa t.g" to generate DOT (graphviz) files. See * the T_dec-1.dot file to see the predicates in action. */grammar T;options { language=ObjC;}@ivars {/** With this true, enum is seen as a keyword. False, it's an identifier */BOOL enableEnum;}@init {enableEnum = NO;}stat: identifier {NSLog(@"enum is an ID");} | enumAsKeyword {NSLog(@"enum is a keyword");} ;identifier : ID | enumAsID ;enumAsKeyword : {enableEnum}? 'enum' ;enumAsID : {!enableEnum}? 'enum' ;ID : ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'0'..'9'|'_')* ;INT : ('0'..'9')+ ;WS : ( ' ' | '\t' | '\r' | '\n' )+ { $channel=99; } ;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?