30 Stimmen

Schwierigkeiten, Kommentare im C-Stil in Flex/Lex zu erhalten

Ich möchte eine Regel in Flex machen, um einen C-Stil Kommentar wie /* */ zu konsumieren

Ich habe Folgendes

c_comment "/*"[\n.]*"*/"

Aber es wird nie ein Treffer erzielt. Irgendeine Idee, warum? wenn Sie mehr von meinem Code benötigen, lassen Sie mich bitte wissen, und ich werde die ganze Sache einreichen. Danke an jeden, der antwortet.

1voto

David Given Punkte 12710

Ein praktisches Beispiel findet sich in das Flex-Handbuch die auch die schwierigsten Fälle abdeckt:

<INITIAL>"/*"         BEGIN(IN_COMMENT);
<IN_COMMENT>"*/"      BEGIN(INITIAL);
<IN_COMMENT>[^*\n]+   // eat comment in chunks
<IN_COMMENT>"*"       // eat the lone star
<IN_COMMENT>\n        yylineno++;

1voto

TayebDIAB Punkte 11

Ein weiteres Beispiel:

"/*"([^*]*|(\*+[^/]))*"*/"

0voto

Andrey Punkte 9

Das Arbeitsbeispiel ist:

\/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+\/

die gefunden wurden in ostermiller.org

0voto

lindyang Punkte 1

Das Leerzeichen und den Zeilenumbruch ignorieren

"/*"
  (
    "/"*
      (
        "*"*
        [^*/]
        "/"*
      )*
    "*"*
  )*
"*/"

Kenneth C. Louden - Compilerbau_ Prinzipien und Praxis (1997) Abschnitt 2.2.3

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X