提升精神:解析反馈 - 替换parse_info中的信息

时间:2016-04-15 10:19:54

标签: parsing boost boost-spirit boost-spirit-qi

我使用提升精神实现了一个语法。它用于解析命令行语言,以便向一个软件发出命令。用户键入这些命令。解析器对于该语言的一小部分来说相当不错。

当用户键入文本时,我想在用户点击回车键以执行命令之前向用户提供简单的反馈。例如,如果命令行表示分析完成的完整命令,我想更改颜色。当用户点击密钥时,我不想接受无效密钥,而是希望发出哔哔声而不接受密钥。

我的想法是在每次按键时将命令字符串提交给解析器,并使用解析过程中的反馈来确定一个短语是完全解析还是完全有效解析直到输入结束,或者用错误解析

我在网上做了一些搜索,发现parse_info曾经是精神经典中的parse返回,但现在解析只返回一个bool。指示成功状态,但如果输入表达式解析到输入的结尾但解析器只需要更多输入,则我没有指示这些情况。 parse_info似乎包含了我需要的所有信息。

任何人都可以解释在解析表达式后找到这些信息的一种相当简单的方法。

非常感谢, 卡勒姆。

1 个答案:

答案 0 :(得分:2)

启动迭代器通过引用传递。所以,实际上信息更丰富:如果解析结果是"成功"你可以随时看到正确消耗了多少输入甚至。 (布尔$timeout(function() { $scope.gridApi.cellNav.scrollToFocus( $scope.termGridOptions.data[0], $scope.termGridOptions.columnDefs[0] ); }); )。

演习:

true