spirit::symbols: geparsten string rausfinden?
-
Mal eine Frage an die spirit profis:
Ich versuche den nabialek_trick in meiner Grammatik einzubauen, allerdings brauch ich neben der Rule in der semantik action auch noch den geparsten string als Rückgabewert, ich möchte nämlich sowas in der Art machen:
boost::spirit::symbols<Rule,Char> table; Rule content; Rule element = '<' >> table //die zurückgegebene rule aus der table in content speichern [ set_rest<Rule>(content) ] //den geparsten string als tagnamen speichern, das geht so leider nicht [ element.name=phoenix::construct_<String>(phoenix::arg1,phoenix::arg2) ] >>'>' >>content//die gespeicherte regel hier nutzen >>'</' >>f_str_p(element.name)//tagnamen hier wieder nutzen >>'>';weis vielleicht jemand, wie man elegant an diese Information kommen kann?
//edit okay, kommentare in [] kicken bb tags. gut zu wissen

-
ich hab jetzt mal ne temporäre lösung gefunden, die aber nicht sonderlich gut ist:
Rule name=*(/*auswahl der gültigen zeichen*/) ... table [ set_rest<Rule>(content) ] & name [ element.name=phoenix::construct_<String>(phoenix::arg1,phoenix::arg2) ]
-
Hmm ist das Spirit 2.0?
Kannst du mal die ganze Rule zeigen? (Nur aus Interesse)
-
Mr. N schrieb:
Kannst du mal die ganze Rule zeigen? (Nur aus Interesse)
das ist 1.804, und die echte rule isn ticken komplexer, das hier ist sozusagen die entschlackte version(inklusive eines operatorfehlers &&->&).
Desweiteren ist das ganze ziemlich ungetestet, weil ich das ganze mehrmals umbaue, aber das da oben ist die Lösung, die mir jetzt so nach lesen der doku einfiel.