我在使用 JAVA 解析器生成器 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"]" 时,输出为:
显式值 b
显式值 c
显式值 c