[PYTHON] J'ai fait ma propre langue (2)

Il est temps pour votre propre langue

Il a fait trop froid ces derniers temps et je suis sur le point de mourir ...

Je l'ai fait à nouveau

Oui, je l'ai mis à jour. Les principaux changements sont

Cliquez ici pour une telle version 0.1.0 d'Omega (Github) ->https://github.com/pythonmaster1027/Omega-version0.1.0

Code Torima

Hiérarchie des fichiers

(Annuaire arbitraire)
 ├ main.py
 └ Omega.bat

Il y a très peu de code.

main.py


import os
import sys

class Start:#Je veux que tu commences

    def __init__(self):#Initialiser
        try:
            self.f = open(sys.argv[1], "r", encoding="utf_8")
        
        except IndexError:
            print("Veuillez spécifier le nom du fichier")
            sys.exit()
        
        except FileNotFoundError:
            print("Fichier non trouvé")
            print("Pour résoudre: Faites du chemin du fichier le chemin complet")
            sys.exit()
        
        self.r = self.f.readlines()
        self.re = self.f.read()
        self.dic1 = {}

    def run(self):#Je veux que tu coures

        if "class Main{\n" in self.r:
            for line in self.r:
                line = line.replace("    ", "").replace(" ", "").split("//")[0]#line = self.Programme lu ligne par ligne à partir de f
                
                #print
                if "print" and '"' in line:
                    pr = line.replace("print", "").replace("{", "").replace("}", "").replace('"', "")
                    print(pr)
                
                #Définition variable
                elif line.startswith("int") or line.startswith("str"):
                    self.var = line.replace('\n', "")
                    varname = self.var.split("=")[0]#Nom de variable
                    if line.startswith("int"):
                        try:
                            self.ele = eval(self.var.split("=")[-1].replace("int", ""))#élément de type int
                        except NameError:
                            print("Err: NameErr")
                            self.ele = "Not int"
                    elif line.startswith("str"):
                        self.ele = self.var.split("=")[-1].replace("str", "")#élément de type int
                    self.dic1[varname] = self.ele
                    
                #Impression qui spécifie une variable comme argument
                elif "print" in line:
                    line = line.replace("print", "").replace("{", "").replace("}", "").replace("\n", "")
                    print(self.dic1[line])

                elif line in "\n":
                    pass
        else:
            print("Err:classe[Main]Pas trouvé")
            sys.exit()

#Définition de la fonction d'exécution
def main():
    s = Start()
    s.run()

#Département d'exécution
if __name__ == '__main__':
    main()

code python, c'est tout. Seulement. Ensuite, Omega.bat.

Omega.bat


@echo off
main.py %1

Sommaire

Cette langue est en fait composée de seulement 2 fichiers. C'est incroyable de pouvoir créer une langue avec seulement deux fichiers. Ensuite, je voudrais également implémenter la définition de fonction.

Recommended Posts

J'ai fait ma propre langue. (1)
J'ai fait ma propre langue (2)
J'ai fait ma propre AML
J'ai créé mon propre générateur de site statique primitif
J'ai créé mon propre robot de liaison parallèle (édition logicielle)
J'ai fait mon propre robot à liaison parallèle (édition mécanique)
[Python] J'ai créé ma propre bibliothèque qui peut être importée dynamiquement
Python> J'ai créé un code de test pour mon propre fichier externe
Je crée mon propre cli aws
J'ai créé mon propre plug-in de filtre pour l'analyse de texte d'Ansible
J'ai créé mon propre outil de recherche à l'aide de l'API Law [Smart Roppo]
[Langage C] Ma locomotive est trop lente ~ J'ai fait une commande sl ~
J'ai fait mon chien "Monaka Bot" avec Line Bot
〇✕ J'ai fait un jeu
J'ai créé un installateur Ansible
J'ai essayé d'apprendre mon propre ensemble de données en utilisant Chainer Trainer
J'ai créé mon propre middleware Django afin de pouvoir accéder aux informations de demande de n'importe où
Tri de tas fait en langage C
J'ai fait un blackjack avec du python!
J'ai essayé de publier ma propre bibliothèque de baseball Python sur Packaging & PyPI
J'ai fait un texte Python
J'ai fait une caméra de surveillance avec Raspberry PI pour la première fois.
J'ai essayé 100 traitements linguistiques Knock 2020
Quand j'ai créé un Discord Bot, mes camarades de classe ont détruit mon ordinateur
J'ai fait un robot discord
J'ai créé COVID19_simulator avec JupyterLab
J'ai créé Word2Vec avec Pytorch
J'ai fait un blackjack avec Python.
J'ai créé wordcloud avec Python.
J'ai fait un script pour dire bonjour à mon Koshien
J'ai créé mon propre réseau de neurones à propagation directe à 3 couches et j'ai essayé de comprendre le calcul en profondeur.
J'ai créé un site d'apprentissage C ++
J'ai fait un Line-bot avec Python!
J'ai créé un script de traduction basé sur CUI (2)
J'ai fait un wikipedia gacha bot
J'ai essayé 100 traitements linguistiques Knock 2020: Chapitre 3
J'ai fait une loterie avec Python.
J'ai créé un script de traduction basé sur CUI
paramètre vim (modification de mon propre mémo)
J'ai fait un kit de démarrage angulaire
J'ai essayé 100 traitements linguistiques Knock 2020: Chapitre 1
J'ai créé un démon avec Python
J'ai essayé 100 traitements linguistiques Knock 2020: Chapitre 2
J'ai essayé 100 traitements linguistiques Knock 2020: Chapitre 4
J'ai essayé d'installer Linux sur mon Mac
J'ai mis Alpine Linux dans Larkbox et en ai fait mon serveur domestique
J'ai essayé d'améliorer la précision de mon propre réseau neuronal
J'ai fait une sorte d'outil de traitement d'image simple en langage Go.
Je l'ai fait penser "Mon routeur de machine virtuelle ne peut pas être aussi rapide"
J'ai fait go language pour api et la configuration minimum de react pour le front