Python简易小语言

Python简易小语言
目录原代码这是IDE这是解释器fileml.py数学库dm.py窗口库cjpwin.py(bl.py)语法一.计算二.判断\流程原代码这是IDEimport tkinter as tk from tkinter import filedialog import fileml from tkinter import messagebox import bl al def h(l): t.tag_configure(red_line, foregroundred, font(SimHei, 10, bold)) t.tag_remove(red_line, 1.0, tk.END) st f{l}.0 e f{l 1}.0 - 1c t.tag_add(red_line, st, e) def allmain1(): global cccccc global rcode global al lst[] kkkkk0 codet.get(1.0,tk.END) rcodecode.split(\n) #fileml.all2([start()]) t2.delete(1.0,tk.END) bl.to2(rcode) for i in range(0, len(rcode)-1, 1): try: lst[rcode[i]] cccccfileml.all2(lst) t2.insert(tk.END,str(ccccc)\n) bl.to(ccccc) t.tag_remove(red_line, f{i1}.0, f{i2}.0 - 1c) except Exception as e: m f第{i1}行执行出错\n{str(e)} messagebox.showerror(执行错误, m) h(i1) print(e) #n() hjklint(bl.get())-2 kkkkkhjkl for i in range(0, kkkkk, 1): for i in range(0, len(rcode)-1, 1): try: lst[rcode[i]] cccccfileml.all2(lst) bl.to(ccccc) t2.insert(1.0,str(ccccc)\n) t.tag_remove(red_line, f{i1}.0, f{i2}.0 - 1c) except Exception as e: h(i1) t2.insert(1.0,al) #n() kkkkkkkkkk-1 t2.insert(1.0,al) al def save(): codet.get(1.0,tk.END) rcodecode.split(\n) spfiledialog.asksaveasfile(defaultextension.txt,filetypes [(txt,*.txt),(all,*.*),(cp,*.cp)]) if sp: for i in range(0, len(rcode)-1, 1): sp.write(rcode[i]\n) def op(): spfiledialog.askopenfilename(filetypes [(all,*.*)]) if sp: with open(sp,r)as f: t.delete(1.0,tk.END) t.insert(1.0,f.read()) def b(): codet.get(1.0,tk.END) rcodecode.split(\n) for i in range(0, len(rcode)-1, 1): lstrcode[i] byq.byq(lst) w1 tk.Tk() w1.title(cjp) w1.geometry(700x800) mentk.Menu(w1) ffftk.Menu(men,tearoff0) men.add_cascade(labelfile,menufff) fff.add_command(labelrun,commandallmain1) fff.add_command(labelopen,commandop) fff.add_command(labelsave,commandsave) w1.config(menumen) t tk.Text(w1,height10) t.pack() t2 tk.Text(w1,height10) t2.pack() w1.mainloop()这是解释器fileml.pyimport math import dm import cjpwin import bl import os import time import diskcache as dc gogo 0 zizi0 ifft1 nnnnn{} run_py{} jaNone cache_dir ./fileml cache dc.Cache(os.path.join(cache_dir, diskcache), size_limit6e9) def replace_vars(template_str, var_dict): return template_str.format(**var_dict) def all2(x): global ifft, nnnnn,ja nnnnn_hash hash(tuple(sorted(nnnnn.items()))) if nnnnn else 0 mylist x realc mylist[0] realc replace_vars(realc, nnnnn) realcs realc.split(() realcsz realcs[1].replace(),) if ifft1: if realcs[0] add: sz int(realcsz) return dm.fun1(sz) if realcs[0] jc: sz int(realcsz) return dm.fun2(sz) if realcs[0] window: list3realcsz.split(,) cjpwin.windows(list3[0],list3[1],list3[2]) return 0 if realcs[0] keep: cjpwin.keep(realcsz) return 0 if realcs[0] loop: sz int(realcsz) return sz if realcs[0] fz: nnnnn[realcsz]bl.get() if realcs[0] get: return nnnnn[realcsz] if realcs[0] print: return realcsz if realcs[0] : cvcvrealcsz.split(,) if cvcv[0]cvcv[1]: ifft1 else: ifft0 if realcs[0] : cvcvrealcsz.split(,) if cvcv[0]cvcv[1]: ifft1 else: ifft0 if realcs[0] : cvcvrealcsz.split(,) if cvcv[0]cvcv[1]: ifft1 else: ifft0 if realcs[0] textwindow: list3realcsz.split(,) cjpwin.t(list3[0],list3[1],list3[2],list3[3]) if realcs[0] : list3realcsz.split(,) return dm.f1(int(list3[0]),int(list3[1])) if realcs[0] -: list3realcsz.split(,) return dm.f2(int(list3[0]),int(list3[1])) if realcs[0] *: list3realcsz.split(,) return dm.f3(int(list3[0]),int(list3[1])) if realcs[0] /: list3realcsz.split(,) return dm.f4(int(list3[0]),int(list3[1])) if realcs[0] py: return exec(realcsz,globals(),run_py) if ifft0: if realcs[0] end: ifft1数学库dm.pydef fun1(a): t 0 for i in range(1, a1): t i return t def fun2(b): t 1 for i in range(1, b1): t * i return t def f1(a, b): return a b def f2(a, b): return a - b def f3(a, b): return a * b def f4(a, b): return a / b窗口库cjpwin.pyimport tkinter as tk wid{} def windows(name,title,gge): w1b tk.Toplevel() w1b.title(title) ggeegge.replace(,) w1b.geometry(ggee) wid[name] w1b def windows(name,title,gge): w1b tk.Toplevel() w1b.title(title) ggeegge.replace(,) w1b.geometry(ggee) wid[name] w1b def keep(name): w1bwid[name] w1b.mainloop() def save(): codet.get(1.0,tk.END) rcodecode.split(\n) spfiledialog.asksaveasfile(defaultextension.txt,filetypes [(txt,*.txt),(all,*.*),(cp,*.cp)]) if sp: for i in range(0, len(rcode)-1, 1): sp.write(rcode[i]\n) def op(): spfiledialog.askopenfilename(filetypes [(all,*.*)]) if sp: with open(sp,r)as f: t.delete(1.0,tk.END) t.insert(1.0,f.read()) def t(a,b,c,d): w1 tk.Toplevel() w1.title(b) w1.geometry(c) mentk.Menu(w1) ffftk.Menu(men,tearoff0) men.add_cascade(labelfile,menufff) fff.add_command(labelopen,commandop) fff.add_command(labelsave,commandsave) w1.config(menumen) t tk.Text(w1,heightint(d)) t.pack() wid[a]w1(bl.py)n0 n10 n20 def to(b): global n n b def get(): return n def to1(b): global n1 n1 b def get1(): return n1 def to2(b): global n2 n2 b def get2(): return n2语法一.计算add(a)实意从1加到ajca实意从1乘到aab实意a,b相加-ab实意a减b*ab实意a乘b/ab实意a除bfz(a)get(a)实意:命值在a变量上二.判断\流程(a,b)当a等于b执行到下个end(反之跳到下个end( )(a,b)当a大于等于b执行到下个end反之跳到下个end(a,b)当a小于等于b执行到下个end反之跳到下个end!(a,b)当a不等于b执行到下个end反之跳到下个endloopa再重复执行a次不写报错。必放最后一行不用缩进空白窗口代码window(a,a,100x100)keep(a)有些bug不喜勿喷版本/支持的语言cjavapythonp(现在这版)xxvcjp(非公开版vvv社区