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

📄 test.g

📁 本工具提供一个词法分析器和语法分析器的集成开发环境
💻 G
字号:
/* This tests a simple DLG-based scanner plus (...)? predicates */<<typedef ANTLRCommonToken ANTLRToken;#include "DLGLexer.h"#include "PBlackBox.h"int main(){	ParserBlackBox<DLGLexer, Expr, ANTLRToken> p(stdin);	p.parser()->begin();	return 0;}void doit(Expr *p){	printf("LT(1) is %s\n", ((ANTLRToken *)p->LT(1))->getText());	printf("LT(2) is %s\n", ((ANTLRToken *)p->LT(2))->getText());	printf("LT(3) is %s\n", ((ANTLRToken *)p->LT(3))->getText());	printf("LT(4) is %s\n", ((ANTLRToken *)p->LT(4))->getText());	printf("LT(5) is %s\n", ((ANTLRToken *)p->LT(5))->getText());	printf("LT(6) is %s\n", ((ANTLRToken *)p->LT(6))->getText());	printf("LT(7) is %s\n", ((ANTLRToken *)p->LT(7))->getText());	printf("LT(8) is %s\n", ((ANTLRToken *)p->LT(8))->getText());	printf("LT(9) is %s\n", ((ANTLRToken *)p->LT(9))->getText());	printf("LT(10) is %s\n", ((ANTLRToken *)p->LT(10))->getText());	printf("LT(11) is %s\n", ((ANTLRToken *)p->LT(11))->getText());}>>#token "[\ \t\n]+"	<<skip();>>#token Eof "@"class Expr {				/* Define a grammar class */begin	:	<</*doit(this);*/>>		e	;e	:	( list "=" )?  list "=" list Eof		<<printf("list = list\n");>>	|	list Eof		<<printf("list\n");>>	;list:	"\(" (IDENTIFIER|NUMBER)* "\)"	;predict	:	( "\(" (IDENTIFIER|NUMBER)* "\)" "=")?	|	"\(" "\)" "="	;/*Here's another example...#token INT "int"#token SEMI ";"#token STAR "\*"#token ASSIGN "="begin:  "extern" "char" declarator ";"	;e	:	(decl)?	|	expr	;expr:	IDENTIFIER "=" NUMBER	;decl:	"int" declarator ";"	;declarator	:	( "\*" )? "\*" declarator    |	IDENTIFIER	;*/}#token IDENTIFIER	"[a-z]+"#token NUMBER		"[0-9]+"

⌨️ 快捷键说明

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