在将我的词法分析器文件从 Quex 0.64.8 移植到 0.67.4 时,我遇到了字符串累加器的一些问题。我得到的问题如下所示:
Severity Code Description Project File Line Suppression State
Error C3861 'ecmascript_lexer_Accumulator__clear': identifier not found (compiling source file C:\Users\Patrikj\Work\git\ecmascript_build_vc14_x64\generated\ecmascript_lexer.cpp) ktes C:\Users\Patrikj\Work\git\ecmascript\ecmascript.qx 107
我想Accumulator__clear
问题的原因是双下划线。也许我需要为 Quex 提供一个新的开关,或者 API 在新版本中发生了变化。无论哪种方式,我都不知道如何解决这个问题。
以及来自我的词法分析器(.qx)的示例,它产生了问题:
mode StringHelper : EOF
<inheritable: only>
{
on_exit {
/// All 3 rows using the accumulator generates an error similiar to the one mentioned above
if(self.accumulator.text.begin != self.accumulator.text.end)
self_send(TOK_STRLITPART);
self_accumulator_flush(TOK_QUOTE);
self_accumulator_clear();
}
}
任何解决此问题的帮助将不胜感激。
最好的问候,帕特里克 J