我正在评估使用不同格式的 nc程序作为输入跟踪工具移动的可能性。 使用词法分析器将不同的程序类型标记为元图层,其中只存在统一的工具和点等似乎是个好主意。
但是,
其他信息
答案 0 :(得分:1)
创建词法分析器可能是标记化输入命令流的有用方法。通常可以通过为词法分析器生成一组或正则表达式来生成词法分析器。然后,词法分析器将使用这些表达式匹配您的输入字符串,并返回匹配的文本和匹配的标记。对于词法分析器,JFlex是一个合理的选择。
EBNF用于创建解析器,可能是也可能不是您需要的解析器。解析器通常构建在词法分析器之上,以便从令牌流中创建语法树。词法分析器将不具有诸如"规则A必须后跟令牌B或C"之类的规则,但解析器将是。 java有许多不同的解析器生成器,每个生成器都有优缺点。 ANTLR是一个稳定的,你可能会考虑。
为了支持多种格式,你可能需要生成不同的词法分析器或解析器(如果你沿着那条路线走下去),并将文本与正确的语言词法分析器匹配。