0
私は、JavaパーサジェネレータCUPを使用するといくつかの問題があります。なぜ、誰かが助けてくれるのか分かりません。ここでパーサジェネレータCUPで間違った出力
カップファイルである:
import java_cup.runtime.*;
/* Terminals (tokens returned by the scanner). */
terminal FCONST;
terminal IDENTIFIER;
terminal STRING_DEFINITION;
terminal ASSIGN;
terminal OPEN_SQUARE_BRACKET;
terminal CLOSE_SQUARE_BRACKET;
/* Non-terminals */
non terminal program;
non terminal explicit_value;
non terminal const_array_list_value;
/* Top level rules */
program ::=
FCONST IDENTIFIER ASSIGN explicit_value
;
explicit_value ::=
OPEN_SQUARE_BRACKET const_array_list_value CLOSE_SQUARE_BRACKET
|
STRING_DEFINITION:e
{:
System.out.printf("explicit_value %s \n", e);
:}
;
const_array_list_value ::=
explicit_value
|
const_array_list_value explicit_value
;
及び "CONST AAA = [" A " "B"、 "C" を" 解析、出力は次のとおり
explicit_valueのB
explicit_value
C explicit_valueのC
バグの説明や証拠はありますか?また、私はこれがあなた自身の質問であることを知っていますが、バイソンで解決することはカップで解決しません。 –
私はそれがカップのバグだとは分かりませんが、バイソンを使うと正しい出力が得られ、文法はカップのように同じです – esrrhs