我现在努力工作几个小时,为柠檬解析器(相应的PEAR的PHP_LexerGenerator)创建一个y文件,解析一个简单的“hello + world”。
我使用了this (German) tutorial,是的,有一个计算器教程很好,但最后,我想解析一些更复杂的东西(带有“变量”)。
这种“语言”解析/标记“hello + world”的定义是什么?
这是我尝试过的许多其他事情:
/* %name, %declare_class, %token_prefix, %syntax_error, .. removed */
%left S.
%left PLUS MINUS.
%right IDENT.
start(res) ::= expression(expr). { res = expr; }
/* The common stuff */
expression(res) ::= expression(e1) PLUS expression(t2). { res = e1+t2; }
expression(res) ::= expression(e1) MINUS expression(t2). { res = e1-t2; }
expression(res) ::= NUMBER(n). { res = n; }
expression(res) ::= IDENT(n). { res = (n * 0) + 99; }
我没有使用IDENT,而是尝试了VALUE,字符串,...甚至SQLite/parser.y file都没有帮助我。
感谢您的帮助。