📄 rewrite.g
字号:
class Rewrite extends Lexer;protectedSTARToptions { ignore=WS;} : id:ID ":="! '('! expr:EXPR ')'! { // can access text matched for any rule System.out.println("found "+id.getText()+","+expr.getText()); // text will be ID+EXPR minus whitespace } ;protectedID : ( let:LETTER {System.out.println("letter "+let.getText());} )+ ;protectedLETTER : 'a'..'z' { String s = $getText; // get access text of this rule $setText(s.toUpperCase()); // can reset it too } ;protectedEXPR: i:INT! // don't include, but i.getText() has access {$setText(i.getText());} // effect is if no "!" and no "i:" | ID ;protectedINT : ('0'..'9')+ ;// what if ! on rule itself and invoker had !...should// rule return anything in the token to the invoker? NO!// make sure 'if' is in the right spot// What about no ! on caller but ! on called rule?protectedWS! : ( ' ' // whitespace not saved | '\t' | '\n' {newline();} )+ {$setType(Token.SKIP);} // way to set token type ;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -