Je l'ai écrit en Python. C'est sale parce qu'il est vaincu. Je ne suis pas familier avec Python, mais c'est un niveau de Yoshi parce que le jeu de la vie a fonctionné.
https://github.com/sonota88/vm2gol-v2-python
J'ai créé un compilateur simple pour mon propre langage avec Ruby
Version de base: environ tag: 45
L'assembleur / VM a été supprimé du port. Utilisez la version Ruby.
Étant donné que la quantité de tokenizer n'est pas si grande jusqu'à présent, je l'ai écrite dans le même fichier que l'analyseur, mais après tout, j'ai senti que je devais le diviser.
La version portée ne sera pas maintenue continuellement à l'avenir, mais elle sera terminée lorsque vous en aurez envie, alors n'hésitez pas à essayer les corrections qui pourraient être incluses dans la version Ruby à l'avenir.
Je pensais faire en sorte que la grammaire de la partie du langage de haut niveau ressemble à Ruby, et cette fois j'en ai essayé une partie.
Changer func
en def
, changer{...}
en ... end
, changer le caractère de début du commentaire de ligne en#
, et ainsi de suite. Cela semble suspect comme ci-dessous. Quelque chose comme «var» ou «set» demeure.
def calc_next_gen(current_val, count)
#Vie de nouvelle génération et mort de la cellule d'intérêt
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
Je suis méfiant, mais quand je vérifie la grammaire avec ruby -c test / *. Vg.txt
, il dit OK.
Quand je le lance sur Ruby, je pense que j'obtiendrai une erreur ... Je l'ai essayé et ça s'est terminé normalement. Au début, cela semblait surprenant, mais il semble qu'il n'y ait pas d'erreur d'exécution car seule la méthode est définie (non exécutée). Alors c'est tout.
J'essaye de le porter dans différentes langues.
Recommended Posts