如何通过解析器正常处理自动完成?
如果我们举一个例子,我将以下内容传递给解析器:
"int i=2"
然后,自动完成选项可能包括:
"int i=2,"
"int i=2;"
自动完成应该是解析器的一部分吗?
如果没有,那么在基于事件的解析器的情况下,我猜测解析器将在解析器的状态机中发出包含可能的分支的id的事件。然后,自动完成模块将知道每个这样的状态要打印什么。
对于基于树的解析器,解析器必须返回一个树结构,该树结构以某种方式包含那些可用的分支。
这是怎么做到的?当需要自动完成时,哪种类型的解析器最适合处理命令字符串?