[PYTHON] Ich habe meine eigene Sprache gemacht (2)

Es ist Zeit für deine eigene Sprache

Es war in letzter Zeit zu kalt und ich bin im Begriff zu sterben ...

Ich habe es wieder geschafft

Ja, ich habe es aktualisiert. Die wichtigsten Änderungen sind

Klicken Sie hier für eine solche Omega-Version 0.1.0 (Github) ->https://github.com/pythonmaster1027/Omega-version0.1.0

Torima-Code

Dateihierarchie

(Beliebiges Verzeichnis)
 ├ main.py
 └ Omega.bat

Es gibt sehr wenig Code.

main.py


import os
import sys

class Start:#Ich möchte, dass du anfängst

    def __init__(self):#Initialisieren
        try:
            self.f = open(sys.argv[1], "r", encoding="utf_8")
        
        except IndexError:
            print("Bitte geben Sie den Dateinamen an")
            sys.exit()
        
        except FileNotFoundError:
            print("Datei nicht gefunden")
            print("So lösen Sie: Machen Sie den Dateipfad zum vollständigen Pfad")
            sys.exit()
        
        self.r = self.f.readlines()
        self.re = self.f.read()
        self.dic1 = {}

    def run(self):#Ich möchte, dass du rennst

        if "class Main{\n" in self.r:
            for line in self.r:
                line = line.replace("    ", "").replace(" ", "").split("//")[0]#line = self.Programm Zeile für Zeile von f lesen
                
                #print
                if "print" and '"' in line:
                    pr = line.replace("print", "").replace("{", "").replace("}", "").replace('"', "")
                    print(pr)
                
                #Variablendefinition
                elif line.startswith("int") or line.startswith("str"):
                    self.var = line.replace('\n', "")
                    varname = self.var.split("=")[0]#Variablennamen
                    if line.startswith("int"):
                        try:
                            self.ele = eval(self.var.split("=")[-1].replace("int", ""))#Element vom Typ int
                        except NameError:
                            print("Err: NameErr")
                            self.ele = "Not int"
                    elif line.startswith("str"):
                        self.ele = self.var.split("=")[-1].replace("str", "")#Element vom Typ int
                    self.dic1[varname] = self.ele
                    
                #Drucken, der eine Variable als Argument angibt
                elif "print" in line:
                    line = line.replace("print", "").replace("{", "").replace("}", "").replace("\n", "")
                    print(self.dic1[line])

                elif line in "\n":
                    pass
        else:
            print("Err:Klasse[Main]Nicht gefunden")
            sys.exit()

#Definition der Ausführungsfunktion
def main():
    s = Start()
    s.run()

#Ausführungsabteilung
if __name__ == '__main__':
    main()

Python-Code, das war's. Nur. Als nächstes Omega.bat.

Omega.bat


@echo off
main.py %1

Zusammenfassung

Diese Sprache besteht eigentlich nur aus 2 Dateien. Es ist erstaunlich, dass Sie mit nur zwei Dateien eine Sprache erstellen können. Als nächstes möchte ich auch die Funktionsdefinition implementieren.

Recommended Posts

Ich habe meine eigene Sprache gemacht. (1)
Ich habe meine eigene Sprache gemacht (2)
Ich habe meine eigene AML gemacht
Ich habe meinen eigenen primitiven statischen Site-Generator erstellt
Ich habe meinen eigenen Parallel Link Roboter (Software Edition) gemacht
Ich habe meinen eigenen Parallelverbindungsroboter gebaut (mechanische Ausgabe)
[Python] Ich habe meine eigene Bibliothek erstellt, die dynamisch importiert werden kann
Python> Ich habe einen Testcode für meine eigene externe Datei erstellt
Ich mache mein eigenes aws cli
Ich habe mein eigenes Filter-Plug-In für Ansibles Textanalyse erstellt
Ich habe mein eigenes Recherchetool mit der Gesetzes-API [Smart Roppo] erstellt.
[C Sprache] Meine Lokomotive ist zu langsam ~ Ich habe einen Sl-Befehl gegeben ~
Ich habe meinen Hund "Monaka Bot" mit Line Bot gemacht
〇✕ Ich habe ein Spiel gemacht
Ich habe einen Ansible-Installer gemacht
Ich habe versucht, meinen eigenen Datensatz mit Chainer Trainer zu lernen
Ich habe meine eigene Django Middleware erstellt, damit ich von überall auf Anforderungsinformationen zugreifen kann
Heap-Sortierung in C-Sprache
Ich habe einen Blackjack mit Python gemacht!
Ich habe versucht, meine eigene Python-Baseballbibliothek bei Packaging & PyPI zu veröffentlichen
Ich habe einen Python-Text gemacht
Ich habe zum ersten Mal eine Überwachungskamera mit Raspberry PI gemacht.
Ich habe versucht, 100 Sprachverarbeitung klopfen 2020
Als ich einen Discord Bot gemacht habe, haben meine Klassenkameraden meinen Computer zerstört
Ich habe einen Zwietrachtbot gemacht
Ich habe COVID19_simulator mit JupyterLab erstellt
Ich habe Word2Vec mit Pytorch gemacht
Ich habe mit Python einen Blackjack gemacht.
Ich habe Wordcloud mit Python gemacht.
Ich habe ein Drehbuch gemacht, um bei meinem Koshien Hallo zu sagen
Ich habe mein eigenes neuronales 3-Layer-Forward-Propagation-Netzwerk erstellt und versucht, die Berechnung genau zu verstehen.
Ich habe eine C ++ - Lernseite erstellt
Ich habe einen Line-Bot mit Python gemacht!
Ich habe ein CUI-basiertes Übersetzungsskript erstellt (2)
Ich habe einen Wikipedia Gacha Bot gemacht
Ich habe versucht, 100 Sprachverarbeitung klopfen 2020: Kapitel 3
Ich habe mit Python eine Lotterie gemacht.
Ich habe ein CUI-basiertes Übersetzungsskript erstellt
VIM-Einstellung (Bearbeiten meines eigenen Memos)
Ich habe ein Angular Starter Kit gemacht
Ich habe versucht, 100 Sprachverarbeitung klopfen 2020: Kapitel 1
Ich habe mit Python einen Daemon erstellt
Ich habe versucht, 100 Sprachverarbeitung zu klopfen 2020: Kapitel 2
Ich habe versucht, 100 Sprachverarbeitung zu klopfen 2020: Kapitel 4
Ich habe versucht, Linux auf meinem Mac zu installieren
Ich habe Alpine Linux in Larkbox eingefügt und es zu meinem Heimserver gemacht
Ich habe versucht, die Genauigkeit meines eigenen neuronalen Netzwerks zu verbessern
Ich habe eine Art einfaches Bildverarbeitungswerkzeug in der Sprache Go erstellt.
Ich dachte: "Mein Router für virtuelle Maschinen kann nicht so schnell sein."
Ich habe go Sprache für API und die minimale Konfiguration der Reaktion für die Front gemacht