1

我花了几个小时尽力为解析简单的“hello + world”的柠檬解析器(分别是 PEAR 的 PHP_LexerGenerator)创建一个 y 文件。

我使用了这个(德语)教程,是的,有一个计算器教程很好,但最后,我想解析一些更复杂的东西(使用“变量”)。

这种“语言”解析/标记“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、string、... 甚至SQLite/parser.y 文件都没有帮助我。

谢谢你的帮助。

4

0 回答 0