柠檬的“你好世界”解析器

时间:2012-05-21 22:18:45

标签: php pear lexer parser-generator lemon

我现在努力工作几个小时,为柠檬解析器(相应的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都没有帮助我。

感谢您的帮助。

0 个答案:

没有答案