相关疑难解决方法(0)

互动式蚂蚁

我正在尝试使用antlr编写一种简单的交互式(使用System.in作为源代码)语言,但我遇到了一些问题。我在网上找到的示例都是按行周期使用的,例如:

while(readline)
  result = parse(line)
  doStuff(result)
Run Code Online (Sandbox Code Playgroud)

但是,如果我写的是pascal / smtp / etc之类的东西,并且带有“第一行”,看起来像X需求,该怎么办?我知道可以在doStuff中检查它,但是从逻辑上讲,它是语法的一部分。

还是将命令分成多行怎么办?我可以试试

while(readline)
  lines.add(line)
  try
    result = parse(lines)
    lines = []
    doStuff(result)
  catch
    nop
Run Code Online (Sandbox Code Playgroud)

但是与此同时,我也隐藏了真正的错误。

或者我可以每次重新分析所有行,但是:

  1. 会很慢
  2. 有些指令我不想运行两次

可以使用ANTLR完成此操作吗?

java parsing antlr

4
推荐指数
1
解决办法
1874
查看次数

标签 统计

antlr ×1

java ×1

parsing ×1