⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 simplec.g

📁 antlr最新版本V3源代码
💻 G
字号:
grammar SimpleC;options {    output=AST;    language=ObjC;}tokens {    VAR_DEF;    ARG_DEF;    FUNC_HDR;    FUNC_DECL;    FUNC_DEF;    BLOCK;}program    :   declaration+    ;declaration    :   variable    |   functionHeader ';' -> ^(FUNC_DECL functionHeader)    |   functionHeader block -> ^(FUNC_DEF functionHeader block)    ;variable    :   type declarator ';' -> ^(VAR_DEF type declarator)    ;declarator    :   ID     ;functionHeader    :   type ID '(' ( formalParameter ( ',' formalParameter )* )? ')'        -> ^(FUNC_HDR type ID formalParameter+)    ;formalParameter    :   type declarator -> ^(ARG_DEF type declarator)    ;type    :   'int'       |   'char'      |   'void'    |   ID            ;block    :   lc='{'            variable*            stat*        '}'        -> ^(BLOCK[$lc,"BLOCK"] variable* stat*)    ;stat: forStat    | expr ';'!    | block    | assignStat ';'!    | ';'!    ;forStat    :   'for' '(' start=assignStat ';' expr ';' next=assignStat ')' block        -> ^('for' $start expr $next block)    ;assignStat    :   ID EQ expr -> ^(EQ ID expr)    ;expr:   condExpr    ;condExpr    :   aexpr ( ('=='^ | '<'^) aexpr )?    ;aexpr    :   atom ( '+'^ atom )*    ;atom    : ID          | INT          | '(' expr ')' -> expr    ; FOR : 'for' ;INT_TYPE : 'int' ;CHAR: 'char';VOID: 'void';ID  :   ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'0'..'9'|'_')*    ;INT :	('0'..'9')+    ;EQ   : '=' ;EQEQ : '==' ;LT   : '<' ;PLUS : '+' ;WS  :   (   ' '        |   '\t'        |   '\r'        |   '\n'        )+        { $channel=99; }    ;    

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -