javadoclex.g

来自「Java写的词法/语法分析器。可生成JAVA语言或者是C++的词法和语法分析器。」· G 代码 · 共 46 行

G
46
字号
options {
	language="Sather";
}

class DEMO_JAVADOC_LEXER extends Lexer;
options {
	k=2;
	importVocab = Common;
	exportVocab = JAVADOC;
	filter=true;
}

PARAM
	:	"@param" ' ' ID
	;

EXCEPTION
	:	"@exception" ' ' ID
	;

protected
ID	:	('a'..'z'|'A'..'Z')+
	;

/* This rule simply prevents JAVADOC_CLOSE from being
 *  called for every '*' in a comment.  Calling JAVADOC_CLOSE
 *  will fail for simple '*' and cause an exception, which
 *  is slow.  In other words, the grammar will work without
 *  this rule, but is slower.
 */
STAR:	'*' {%setType(ANTLR_COMMON_TOKEN::SKIP);}
	;

JAVADOC_CLOSE
	:	"*/" { stream ::= MAIN::selector.pop;}
	;

/* Ignore whitespace inside JavaDoc comments */
NEWLINE
	:	(	"\r\n"  // Evil DOS
		|	'\r'    // Macintosh
		|	'\n'    // Unix (the right way)
		)
		{ newline; %setType(ANTLR_COMMON_TOKEN::SKIP); }
	;

⌨️ 快捷键说明

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