YaccLexTools:Gplex - 如何使其不区分大小写

时间:2018-04-18 16:53:10

标签: c# yacc lex

我使用的是最新版本的YaccLexTools(0.2.2),其中包括GPLEX 1.2.1。

我正在尝试定义一个不区分大小写的令牌。

然而,这似乎不是一件容易的事。没有默认解决方案有效: 1.使%选项无外壳 - GPLEX不理解它。 2.使用Regex?i:选项也不起作用。例如。 Second (?i:(s|sec|second) Seconds (?i:seconds)

目前我正在使用一种非常普通的解决方法:

Seconds         ([sS][eE][cC][oO][nN][dD][sS])

但长期来看这似乎是不可行的,或者说不是切实可行的解决方案。

是否有任何正确的方法可以全局或按令牌使GPLEX不区分大小写?

谢谢,拉德克

1 个答案:

答案 0 :(得分:0)

我找到了一个有效的解决方案。它全局应用不区分大小写。它有点hacky但到目前为止是唯一有效的。

您需要手动编辑csproj文件。

  1. 找到以:

    开头的行

    <Exec Command="$(GplexTool) &quot;/out:

  2. &quot;/caseInsensitive&quot;之后添加字符串$(GplexTool),如下所示:

    <Exec Command="$(GplexTool) &quot;/caseInsensitive&quot; &quot;/out:

  3. 重复所有事件。

  4. 重建项目。
  5. 这应该可以解决问题。