Avez-vous déjà créé votre propre langue? e? y a-t-il? ,,,,,Oh oui.
attendez! Ne retournez pas dans le navigateur! C'est interessant? Cet article! ,,Oui. Merci beaucoup. Encore une fois, cette fois, "j'ai essayé de créer ma propre langue" C'est la première fois. ~~ Eh bien, je viens d'écrire un article à ce sujet. ~~ Alors allons-y maintenant!
J'écris un programme (bien sûr). À ce moment-là, cela m'est soudainement venu à l'esprit. "Si vous pouvez instruire votre PC dans une langue, pouvez-vous faire de même dans votre propre langue?" Quand j'y pense maintenant, c'était quelque chose que j'oublierais immédiatement, mais puisque je suis une personne étrange, "Si oui, faisons-le!" Je pensais que.
Utilisez python 3.8.5 Parser etc.: Tout fait par moi-même (<-praise!)
--Je veux spécifier le type -Je veux utiliser {} au lieu de (). J'aime personnellement la forme. ――Pour l'instant, la définition de la fonction est laissée. Mais je veux y arriver. Parce que c'est toujours la première fois.
Oh, j'ai oublié de l'écrire, mais je le poste sur Github. URL:https://github.com/pythonmaster1027/Omega-version0.0.5 De plus, je suis nouveau sur Python. Je ne suis pas doué pour écrire du code. Pas mal. Il existe également un type interactif. URL:https://github.com/pythonmaster1027/Omega-version0.0.1
import sys
import os
from main import *
class Fread:
def __init__(self):
self.opf = open(str(sys.argv[1]), "r", encoding="utf_8")
def run(self):
opf2 = self.opf.readlines()
for inp in opf2:
m = Main(inp)
m.serf()
import sys
from reanp import *
import os
from collections import defaultdict
global d, x, y
class Main:
def __init__(self, inp):
self.inp = inp
self.dict = {}
self.d = defaultdict(list)
self.inp = self.inp.split ("//") [0] # // Supprimer
self.inp = self.inp.split ("#") [0] Supprimer # #
def serf(self):
if self.inp.startswith("def ") or self.inp.startswith(" "):
self.inp = self.inp.replace(" ", "")
self.inp = self.inp.replace(";", "")
print(self.inp)
self.run()
else:
self.run()
#Traitement lors de l'impression d'une chaîne de caractères
def run(self):
if self.inp.startswith("print{") and "}" in self.inp and '"' in self.inp:
self.inp = self.inp.replace("print{", "")
self.inp = self.inp.replace("}", "")
self.inp = self.inp.replace('"', "")
print(self.inp)
#Traitement pour la définition de variable
elif "=" in self.inp:
if self.inp.startswith("int "):
self.inp = self.inp.replace ("int", "") # Supprimer un int
self.inp = self.inp.replace(" ", "")
self.x = self.inp.split("=")[0]
self.y = eval(self.inp.split("=")[-1])
self.dict[self.x] = self.y
f = open("sys\\var.oms", "a", encoding="utf_8")
f.write(str(self.dict)+"\n")
f.close()
if self.inp.startswith("void "):
self.inp = self.inp.replace("void", "")
self.inp = self.inp.replace(" ", "")
#Traitement lors de l'impression de variables
elif self.inp.startswith("print{") and "}" in self.inp:
self.inp = self.inp.replace("print{", "")
self.inp = self.inp.replace("}", "")
r = Read(self.inp)
r.run()
elif self.inp == "\n":
pass
elif self.inp == "exit{}":
sys.exit(0)
else:
print("Err:No funcsion Error")
from ast import literal_eval
from pprint import pprint
class Read:
def __init__(self, inp):
self.f = open("sys\\var.oms", "r", encoding="utf_8")
self.r = self.f.readlines () # liste
self.inp = inp
def run(self):
inp = self.inp
v = Vpri()
v.run(inp)
self.f.close()
class Vpri:
#inp = nom de la variable à imprimer
def run(self, inp):
fil_data = open("sys\\var.oms", encoding="utf_8")
cov = open("sys\\varconp.oms", "w", encoding="utf_8")
inp = inp.replace("\n", "")
pour ligne dans fil_data: # Données lues ligne par ligne
line = line.replace("{", "").replace("}", "").replace("'", "").replace(" ", "")
#line = line.rstrip()
s = line.split (":") [0] # nom de variable
i = line.split (":") [-1] # Données affectées aux variables
cov.write(s + "," + inp +"\n")
if inp == s:
print(i)
break
else:
pass
fil_data.close()
cov.close()
@echo off
read.py %1
C'est dangomushi. Merci d'avoir regardé.
Recommended Posts