Ich möchte Ihnen eine Frage über Flex, das Programm zum Parsen von Code stellen. Angenommen ich habe eine Anweisung wie dieser, in der ein Teil Regeln:Frage in Flex (Parser)
"=" BEGIN(attribution);
<attribution>{var_name} { fprintf(yyout, "="); ECHO; }
<attribution>";" BEGIN(INITIAL);
{var_name} ist ein regulärer Ausdruck, der den Namen einer Variable übereinstimmt, und alles, was ich tun möchte, ist am Ausgang alle Zuschreibung kopieren Anweisungen wie a = 3; oder b = a;
Meine Regel kann jedoch nicht mit fprintf das linke Mitglied der Attribution schreiben, sondern nur = 3; oder = a;
Eine Lösung für das könnte sein, dass, nachdem ich die Übereinstimmung "=" und ich bin in der Attribution-Status, um 2 Positionen zurück gehen, um auch den linken Operand zu bekommen. Wie kann ich das in Flex?
Flex ist kein Parser. Es ist ein Lexer-Generator. –