Frage

Ich habe eine interpretierte Programmiersprache entwickelt. Es wird dringend empfohlen, basierend auf C. Das Problem ist, ich möchte eine foreach Richtlinie hinzufügen und haben keine Ahnung, wie.

Ich bin mit Bison und Flex als Parser und Lexer Generator.

War es hilfreich?

Lösung

In der Grammatik, dann würden Sie einen Ausdruck mögen, die in etwa wie folgt lautet:

foreach := foreach ( name in name ) { statements }

Wenn Sie diese analysieren, sollten Sie in der Lage sein, es in einer while-Schleife in Ihrem AST mit einer zusätzlichen Anweisung direkt zu übersetzen, die eine Variable am Anfang zuweist.

Das scheint mir der einfachste Weg, es zu tun, aber wahrscheinlich Einschränkungen haben mit mehreren iterable Datentypen (zum Beispiel eine Liste gegen ein Array). In diesem Fall können Sie Konsolidierung aller Iterables zu berücksichtigen, so dass sie eine konsistente Methode haben das nächste Element zu erhalten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top