単純な "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 ファイルでさえ役に立ちませんでした。
ご協力いただきありがとうございます。