Ich habe es in Python geschrieben. Es ist schmutzig, weil es besiegt ist. Ich bin nicht mit Python vertraut, aber es ist ein Level von Yoshi, weil das Lebensspiel funktioniert hat.
https://github.com/sonota88/vm2gol-v2-python
Ich habe mit Ruby einen einfachen Compiler für meine eigene Sprache erstellt
Basisversion: um Tag: 45
Der Assembler / die VM wurde vom Port entfernt. Verwenden Sie die Ruby-Version.
Da die Menge an Tokenizer bisher nicht so groß ist, habe ich sie in dieselbe Datei wie der Parser geschrieben, aber schließlich hatte ich das Gefühl, ich sollte sie teilen.
Die portierte Version wird in Zukunft nicht mehr kontinuierlich gewartet, ist jedoch beendet, wenn Sie Lust haben, sie zu erstellen. Probieren Sie daher die Korrekturen aus, die möglicherweise in Zukunft in der Ruby-Version enthalten sind.
Ich habe darüber nachgedacht, die Grammatik des Hochsprache-Teils wie Ruby aussehen zu lassen, und diesmal habe ich einen Teil davon ausprobiert.
Ändern Sie "func" in "def", ändern Sie "{...}" in "... end", ändern Sie das Startzeichen des Zeilenkommentars in "#" und so weiter. Es sieht verdächtig aus wie unten. So etwas wie "var" oder "set" bleibt noch übrig.
def calc_next_gen(current_val, count)
#Leben und Tod der interessierenden Zelle der nächsten Generation
var next_val = 0;
case
when (current_val == 0)
case
when (count == 3)
set next_val = 1;
end
when (0 == 0)
case
when (count == 2)
set next_val = 1;
when (count == 3)
set next_val = 1;
end
end
return next_val;
end
Ich bin misstrauisch, aber wenn ich die Grammatik mit ruby -c test / *. Vg.txt
überprüfe, heißt es OK.
Wenn ich es auf Ruby ausführe, wird wahrscheinlich ein Fehler angezeigt ... Ich habe es versucht und es endete normal. Anfangs schien es überraschend, aber es scheint, dass es keinen Laufzeitfehler gibt, da nur die Methode definiert (nicht ausgeführt) wird. Das war's.
Ich versuche es in verschiedene Sprachen zu portieren.
Recommended Posts