Parse int oder double mit boost spirit (lonest_d)

8

Ich suche nach einer Möglichkeit, eine Zeichenkette als int oder double zu analysieren, der Parser sollte beide Alternativen ausprobieren und diejenige auswählen, die dem längsten Teil des Eingabestroms entspricht.

Es gibt eine veraltete Direktive (lonest_d), die genau das tut, wonach ich suche:

%Vor%

... da es veraltet ist, gibt es noch andere Alternativen? Wenn es notwendig ist, eine semantische Aktion zu implementieren, um das gewünschte Verhalten zu erreichen, hat jemand einen Vorschlag?

    
Hugo Corrá 07.11.2012, 00:21
quelle

1 Antwort

13

Wechseln Sie zuerst zu Spirit V2 - das den klassischen Geist seit Jahren ersetzt.

Zweitens müssen Sie sicherstellen, dass ein int bevorzugt wird. Standardmäßig kann ein Double alle Integer gleich gut parsen, daher müssen Sie stattdessen strict_real_policies verwenden:

%Vor%

Jetzt können Sie einfach

angeben %Vor%

Siehe

quelle