首页 > 解决方案 > 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

解决方案


textX 默认不假设匹配应该在单词边界上进行。要解决您的问题,您可以定义关键字以匹配单词边界,例如:

Keyword: /\bis\b/;

或使用可以在通话中打开的自动关键字功能。autokwd=Truemetamodel_from_file/str


推荐阅读