Wir schreiben einen Compiler in OCaml für unsere eigene domänenspezifische Sprache. Bis jetzt haben wir funktionierende Scanner, Parser und Ast.OCaml: Wie Scanner und Parser zu testen?
Was ist der beste Weg, um Scanner/Parser zu diesem Zeitpunkt zu testen? Ich weiß, dass es möglich ist, eine Sequenz von Token an den Parser/Scanner zu übergeben und festzustellen, ob sie vom Scanner/Parser akzeptiert/abgelehnt wird. (z. B. echo "FLOAT ID" | menhir --interpret --interpret-show-cst parser.mly
).
Aber gibt es eine Möglichkeit, das tatsächlich in unserer eigenen Sprache geschriebene Programm an den Scanner/Parser zu übergeben und festzustellen, ob es akzeptiert wird?
Ich muss hinzufügen, dass ich sehr neu zu OCaml bin und ich sehr wenig über Compiler weiß.
Können Sie Lexing.from_channel oder Lexing.from_string nicht verwenden? _val from_string: Zeichenfolge -> lexbuf Erstellen Sie einen Lexer-Puffer, der aus der angegebenen Zeichenfolge liest. Der Lesevorgang beginnt mit dem ersten Zeichen in der Zeichenfolge. Eine End-of-Input-Bedingung wird generiert, wenn das Ende der Zeichenfolge erreicht ist. – Lhooq
Können Sie uns bitte ein Beispiel geben? – fomkatya