textx - TextX 如何定义单词之间的边界?
问题描述
考虑以下由 3 个规则组成的示例。
型号:id_1=Ident '是' id_2=Ident;
关键字:'是';
标识:!关键字标识;
似乎 TextX 无法解析 id_2 以“is”开头的输入,例如“Tom is isolated”。我收到以下错误:None:1:7: error: Expected Not at position ../test.txt:(1, 7) => 'Tom is* isolated'。为什么会这样?不应该将“孤立”视为与“是”不同的一个词吗?如果 id_2 不以“is”开头,TextX 可以解析输入。
有没有办法解决这个问题?
谢谢!
解决方案
textX 默认不假设匹配应该在单词边界上进行。要解决您的问题,您可以定义关键字以匹配单词边界,例如:
Keyword: /\bis\b/;
或使用可以在通话中打开的自动关键字功能。autokwd=True
metamodel_from_file/str
推荐阅读
- linux - 试图运行 sh 脚本并得到 docker-compose not installed 错误?
- c# - 从进程中读取 UDP 连接信息?
- python - 如何在方法链中组合 pandas 索引列?
- c++ - 如何在不同类的构造函数的参数中声明对象?(C++)
- python - 无法识别代码中的错误,我的数据集文件或目录无法打开?
- autohotkey - 如何防止 Alt Up 消息到达 AutoHotkey 中的浏览器窗口
- javascript - 安装时不推荐使用 Npm 安装错误
- python - 开始通话时间和结束通话时间的Python水平图表
- android - ScrollView 在添加边距/填充时会导致滚动,即使内容不需要额外空间
- python - How to solve module problem in Windows 10?