【发布时间】:2011-08-06 06:01:38
【问题描述】:
我正在尝试解析一个 txt 文件,该文件表示要在递归下降解析器中使用的语法。 txt 文件看起来像这样:
SPRIME ::= 表达式
Expr ::= 期限 Expr'
Expr' ::= + 术语 Expr' | - 期限Expr' | e
为了隔离左侧并将右侧拆分为单独的生产规则,我取每一行并调用:
String[] firstSplit = line.split("::=");
String LHS = firstSplit[0];
String productionRules = firstSplit[1].split("|");
但是,当我调用第二个拆分方法时,我没有返回一个由“|”分隔的字符串数组字符,而是右侧每个单独字符的数组,包括“|”。例如,如果我正在解析 Expr' 规则并打印 productionRules 数组,它将如下所示:
“+”
“术语”
“Expr”
""
"|"
我真正想要的应该是这样的:
- Term Expr'
有人知道我做错了什么吗?
【问题讨论】: