Boost::Spirit (Qi) Verständnisprobleme
-
hallo, ich habe folgenden (simplen) Code zum Parsen eines (noch simpleren :-)) Insert-Statements geschrieben, da ich mich ein wenig in Boost::Spirit einarbeiten möchte.
Bisher habe ich mit ANTLR Parser geschrieben, jedoch ist der C-Generator nicht wirklich brauchbar und somit dachte ich, Spirit wäre vielleicht eine tolle Alternative, da direkt in C++ integrierbar.
Mein Problem ist nun, das ich nicht verstehe, warum obiger Code das Statement nicht erkennt.
Kann es daran liegen, das der Skipparser (space) eventuell dem Parser nur ein einziges Token liefert, also
select*fromscott.emp
?
-
TheGrudge schrieb:
Bisher habe ich mit ANTLR Parser geschrieben, jedoch ist der C-Generator nicht wirklich brauchbar und somit dachte ich, Spirit wäre vielleicht eine tolle Alternative, da direkt in C++ integrierbar.
Mein Problem ist nun, das ich nicht verstehe, warum obiger Code das Statement nicht erkennt.
Wenn Du einen Skipper mit einem rule<> Objekt verwenden willst, mußt Du den Skipper-Typ explizit vorgeben:
rule<Iterator, space_type> identifier, table_def, select_stmt, column_spec, quoted_str;Du mußt keinen Attribut-Typ angeben, wenn die rule<> keinen Wert erzeugen soll.
HTH
Regards Hartmut