Porté un compilateur de langage homebrew naïf sur Python


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

Source de portage

J'ai créé un compilateur simple pour mon propre langage avec Ruby

Version de base: environ tag: 45

Note

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.

Autres greffes

J'essaye de le porter dans différentes langues.

Recommended Posts

Porté un compilateur de langage homebrew naïf sur Python
Introduction au langage Python
Essayez de créer un module Python en langage C
Une route vers Python intermédiaire
Essayez de sélectionner une langue
Utilisez un langage de script pour une vie C ++ confortable-OpenCV-Port Python vers C ++ -
Introduction à Protobuf-c (langage C ⇔ Python)
Python pour passer d'une autre langue
5 façons de créer un chatbot Python
Porté du langage R de "Sazae-san's Janken Data Analysis" vers Python
[Python] Comment rendre une classe itérable
Super Introduction Arithmétique Bit Python
Je veux créer un environnement Python
[Python] Comment inverser une chaîne de caractères
Comment obtenir stacktrace en python
Notez que le serveur d'exécution de Django est moss en Python 2.7.11 fourni avec Homebrew
J'ai essayé un langage fonctionnel avec Python
Exemple de calcul parallèle Python porté en F #
Python en tant que langage fortement typé dynamiquement
Ajouter un environnement virtuel Python à VSCode
Comment exécuter des scripts Maya Python
3. Traitement du langage naturel avec Python 1-2. Comment créer un corpus: Aozora Bunko
J'ai fait un module en langage C qui filtre les images chargées par Python
Langage C pour voir et se souvenir de la partie 3 Appelez le langage C depuis Python (argument) c = a + b
Envoyer un message de Slack à un serveur Python
[Python] Compréhension de liste Différentes façons de créer une liste
Modifier Excel à partir de Python pour créer un tableau croisé dynamique
Comment lire un fichier CSV avec Python 2/3
Envoyer un message à LINE avec Python (LINE Notify)
Une personne inexpérimentée en Python essaie de frapper 100 traitement du langage 14-16
Comment ouvrir un navigateur Web à partir de python
[Python] La route du serpent (4) Numpy
Comment effacer un taple dans une liste (Python)
Comment incorporer des variables dans des chaînes python
Est-ce que sys.settrace, une fonctionnalité géniale de python, est un autre langage?
[Python] La route du serpent (6) Manipuler les pandas
Je veux créer une fenêtre avec Python
Comment créer un fichier JSON en Python
Essayez de dessiner une courbe de vie avec python
Je veux faire un jeu avec Python
Écriture de journaux dans un fichier CSV (Python, langage C)
Je voulais installer Python 3.4.3 avec Homebrew + pyenv
Comment générer un objet Python à partir de JSON
Essayez de créer un code de "décryptage" en Python
Une manière intelligente de chronométrer le traitement avec Python
Comment ajouter un chemin de recherche de module Python
Étapes pour développer une application Web en Python
Décidez d'une mission de laboratoire avec Python (fiction)
[Introduction à Python3, Jour 23] Chapitre 12 Devenir un Paisonista (12.1 à 12.6)
Remarque Python: lors de l'attribution d'une valeur à une chaîne
Pourquoi Python doit-il écrire un deux-points?
Étapes pour créer un bot Twitter avec Python
Pour ajouter un module à python que vous mettez dans Julialang
Comment notifier les canaux Discord en Python
Une personne inexpérimentée en Python essaie de frapper 100 traitement du langage 07-09
Exporter la version Python3 OpenCV KeyPoint dans un fichier