2009-05-29 3 views

Antwort

1

Vom spirit introduction:

Expression Vorlagen ermöglichen es uns, die Syntax von Extended Backus-Normalform (EBNF) vollständig in C++ zu nähern.

So können Sie fast Schreib Ebene EBNF, keine Notwendigkeit für einen Übersetzer.

ich mit dem Geist nicht so vertraut bin zu wissen, wie genau die Syntax ist anders, aber wenn die Unterschiede von Geist C++ EBNF und echten EBNF minor sind ein einfaches sed Skript ausreichen.
Wenn Sie nicht Recht haben, könnten Sie einen Spirit-Parser schreiben, der EBNF versteht und dann den AST verwendet, um C++ - Code zu erstellen, der eine Geistdarstellung dieses AST darstellt.

+2

Für große EBNFs (http://grammatica.percederberg.net/grammar/asn1/asn1.grammar), auch wenn es fast identisch ist, ist es immer noch ein Schmerz. Es ist nicht notwendig, einen zu haben, aber es wäre hilfreich. – chila

+1

Wenn deine Grammatik so groß ist, willst du wahrscheinlich Spirit dafür nicht benutzen;) –

+0

@Bill: warum nicht? –