Ich schaffe einen Parse-Baum, die Ausdrücke ähnlich wieUnary Und Binary Minus in Parse-Baum
3 - 4 * 8
oder
8 * -5
oder
-(10 * 1)
Ich brauche eine Möglichkeit, zwischen dem unären und dem binären Minus zu unterscheiden. Die Art, wie meine Grammatik läuft, ist jetzt das binäre Minus, aber ich denke daran, das zu ändern und eine Flag-Variable hinzuzufügen, die die letzte Variable enthält.
Ex: wenn es hält 5 5 - 6
Die Flagge ist und wenn es minus und die Flagge sieht eine Zahl die überspringen einstellige und auf binäre gehen.
Allerdings bin ich nicht sicher, wie dies in C++ würde
Jede Hilfe sehr zu schätzen, zu implementieren.
Dank
Haben Sie eine Art und Weise bedeuten, sie zu unterscheiden, wie Sie das Parsen tun, oder einen Weg, um sie in der Parse zu unterscheiden Baum? In der Parse-Struktur ist es trivial - haben Sie nur separate "UNARY_MINUS" - und "BINARY_MINUS" -Operatoren. Wenn Sie meinen, während Sie analysieren, tritt ein unäres Minus auf, wenn Sie einen Operanden und keinen Operator erwarten. –
In meinem Parser möchte ich zwischen a-5 und 4 -5 unterscheiden. Mein nächster Teil konvertiert die Blätter dieses Baums in einen AST-Baum (der funktioniert), aber mein Parser sieht alles als binäres Minus (4 - 5). – Dfranc3373