Beim Portieren meiner Lexer-Datei von Quex 0.64.8 auf 0.67.4 lief ich in einige Probleme mit dem String-Akku. Die Themen ich wie folgt aussehen:Probleme bei der Portierung von Lexer String-Akkumulator auf neue Version von Quex
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
Ich nehme an, es ist die doppelt unterstrichen Accumulator__clear
, dass die Ursache des Problems ist. Vielleicht muss ich einen neuen Switch zu Quex liefern oder vielleicht hat sich die API in der neueren Version geändert. So oder so bin ich ratlos, wie man das Problem beheben kann .
Und Beispiel aus meiner Lexer (.QX), die das Problem erzeugt:
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();
}
}
Jede Hilfe dieses Problems Festsetzung würde sehr geschätzt werden.
Mit freundlichen Grüßen, Patrik J