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

📄 rewrite.g

📁 Java写的词法/语法分析器。可生成JAVA语言或者是C++的词法和语法分析器。并可产生语法分析树和对该树进行遍历
💻 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 + -