t046rewrite.g

来自「antlr最新版本V3源代码」· G 代码 · 共 55 行

G
55
字号
grammar t046rewrite;options {    language=Python;}program@init {    start = self.input.LT(1)}    :   method+        {        self.input.insertBefore(start,"public class Wrapper {\n")        self.input.insertAfter($method.stop, "\n}\n")        }    ;method    :   m='method' ID '(' ')' body        {self.input.replace($m, "public void");}    ; bodyscope {    decls}@init {    $body::decls = set()}    :   lcurly='{' stat* '}'        {        for it in $body::decls:            self.input.insertAfter($lcurly, "\nint "+it+";")        }    ;stat:   ID '=' expr ';' {$body::decls.add($ID.text);}    ;expr:   mul ('+' mul)*     ;mul :   atom ('*' atom)*    ;atom:   ID    |   INT    ;ID  :   ('a'..'z'|'A'..'Z')+ ;INT :   ('0'..'9')+ ;WS  :   (' '|'\t'|'\n')+ {$channel=HIDDEN;}    ;

⌨️ 快捷键说明

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