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

📄 fuzzyjava.g

📁 antlr最新版本V3源代码
💻 G
字号:
lexer grammar FuzzyJava;options {    language=Python;    filter=true;}IMPORT	:	'import' WS name=QIDStar WS? ';'	;	/** Avoids having "return foo;" match as a field */RETURN	:	'return' (options {greedy=false;}:.)* ';'	;CLASS	:	'class' WS name=ID WS? ('extends' WS QID WS?)?		('implements' WS QID WS? (',' WS? QID WS?)*)? '{'        {print "found class "+$name.text}	;	METHOD    :   TYPE WS name=ID WS? '(' ( ARG WS? (',' WS? ARG WS?)* )? ')' WS?        ('throws' WS QID WS? (',' WS? QID WS?)*)? '{'        {print "found method "+$name.text}    ;FIELD    :   TYPE WS name=ID '[]'? WS? (';'|'=')        {print "found var "+$name.text}    ;STAT:	('if'|'while'|'switch'|'for') WS? '(' ;	CALL    :   name=QID WS? '('        {print "found call "+$name.text}    ;COMMENT    :   '/*' (options {greedy=false;} : . )* '*/'        {print "found comment "+self.getText()}    ;SL_COMMENT    :   '//' (options {greedy=false;} : . )* '\n'        {print "found // comment "+self.getText()}    ;	STRING	:	'"' (options {greedy=false;}: ESC | .)* '"'	;CHAR	:	'\'' (options {greedy=false;}: ESC | .)* '\''	;WS  :   (' '|'\t'|'\n')+    ;fragmentQID :	ID ('.' ID)*	;	/** QID cannot see beyond end of token so using QID '.*'? somewhere won't *  ever match since k=1 lookahead in the QID loop of '.' will make it loop. *  I made this rule to compensate. */fragmentQIDStar	:	ID ('.' ID)* '.*'?	;fragmentTYPE:   QID '[]'?    ;    fragmentARG :   TYPE WS ID    ;fragmentID  :   ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_'|'0'..'9')*    ;fragmentESC	:	'\\' ('"'|'\''|'\\')	;

⌨️ 快捷键说明

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