Hallo... ich bin dabei einen boost::spirit Ausdruck unter Python zu implementieren und Versuche eine eigentlich sehr simple Grammatik mittels pyparsing zu formulieren... das klappt aber nicht: er parst den ersten Ausdruck (logisch, strings beliebiger Länge) bis zu Ende und kommt dann nicht weiter. Er geht nicht alle Pfade durch, ob er einen Match erhält.
Code: Alles auswählen
ident = MatchFirst( Group( CaselessLiteral( 's' ) + Word( nums, exact=2 ) + CaselessLiteral('e') + Word( nums, exact=2 ) ) )
grammar = OneOrMore( Word( printables ) ) + ident + OneOrMore( Word( printables ) )
Prinzipiell soll nur ein Identifier im String gesucht wird, der in der ersten Zeile beschrieben ist: z.B. s00e00
Alles davor möchte ich als einen Ausdruck bekommen, und alles danach auch. Die Frage ist: wie mache ich das? Hat jemand eine Idee wo das Problem ist?