tinypy: can now run from shell and use command line parameters.

git-svn-id: svn://kolibrios.org@2073 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
jaeger
2011-08-18 21:08:16 +00:00
parent c4601c7bd9
commit c27ead6711
4 changed files with 14 additions and 27 deletions

View File

@@ -1,7 +1,7 @@
export MENUETDEV=../../libraries/menuetlibc export MENUETDEV=../../libraries/menuetlibc
OUTFILE = tpmain OUTFILE = tpmain
OBJS = tpmain.o kolibri_init.o kolibri_fs.o kolibri_gui.o kolibri_dbg.o OBJS = tpmain.o kolibri_init.o kolibri_fs.o kolibri_gui.o kolibri_dbg.o
CFLAGS = -I. CFLAGS = -I. -mpreferred-stack-boundary=2 -mincoming-stack-boundary=2
include $(MENUETDEV)/makefiles/Makefile_for_program include $(MENUETDEV)/makefiles/Makefile_for_program
kolibri_dbg.o: fasm_modules/kolibri_dbg.s kolibri_dbg.o: fasm_modules/kolibri_dbg.s
fasm fasm_modules/kolibri_dbg.s fasm fasm_modules/kolibri_dbg.s

View File

@@ -15,7 +15,6 @@ def _import(name):
return MODULES[name] return MODULES[name]
py = name+".py" py = name+".py"
tpc = name+".tpc" tpc = name+".tpc"
print("CP")
if exists(py): if exists(py):
if not exists(tpc) or mtime(py) > mtime(tpc): if not exists(tpc) or mtime(py) > mtime(tpc):
s = load(py) s = load(py)
@@ -43,7 +42,6 @@ def import_fname(fname,name):
return g return g
def tinypy(): def tinypy():
print("tinypy called")
return import_fname(ARGV[0],'__main__') return import_fname(ARGV[0],'__main__')
def main(src,dest): def main(src,dest):
@@ -52,5 +50,4 @@ def main(src,dest):
save(dest,r) save(dest,r)
if __name__ == '__main__': if __name__ == '__main__':
print("Running main")
main(ARGV[1],ARGV[2]) main(ARGV[1],ARGV[2])

View File

@@ -1,25 +1,16 @@
#include "tp.c" #include "tp.c"
/* INCLUDE */ /* INCLUDE */
const char header[]="TinyPy for kolibriOS"; const char header[]="TinyPy for kolibriOS";
const int argc = 2;
extern _stdcall void kolibri_dbg_init(tp_vm *tp); extern _stdcall void kolibri_dbg_init(tp_vm *tp);
void main(void) { void main(int argc, const char *argv[]) {
char *argv[2]={"tpmain", "test.py"};
CONSOLE_INIT(header);
con_printf("TinyPy console, version 1.1.\n");
con_printf("Enter program file:");
if (!(argv[1] = malloc(256)))
con_printf("Memory error\n");
con_gets(argv[1], 256);
argv[1][strlen(argv[1]) - 1] = '\0';
con_printf("Running file %s\n", argv[1]);
tp_vm *tp = tp_init(argc, argv); tp_vm *tp = tp_init(argc, argv);
kolibri_dbg_init(tp); kolibri_dbg_init(tp);
kolibri_init(tp); kolibri_init(tp);
CONSOLE_INIT(header);
/* INIT */ /* INIT */
tp_call(tp,"py2bc","tinypy",tp_None); tp_call(tp,"py2bc","tinypy",tp_None);
con_printf("Done");
tp_deinit(tp); tp_deinit(tp);
kol_exit(); kol_exit();
return; return;

View File

@@ -84,12 +84,7 @@ TP_FNC, TP_DATA.
- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> ᮯணࠬ<E0AEA3>; - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> ᮯணࠬ<E0AEA3>;
- ᨭ⠪<E1A8AD><E2A0AA><EFBFBD><EFBFBD><EFBFBD> "<22><><EFBFBD><EFBFBD><EFBFBD>" <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFA2AB><EFBFBD><EFBFBD> ᯨ᪮<E1AFA8> <20><><E1ABAE>३, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - ᨭ⠪<E1A8AD><E2A0AA><EFBFBD><EFBFBD><EFBFBD> "<22><><EFBFBD><EFBFBD><EFBFBD>" <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFA2AB><EFBFBD><EFBFBD> ᯨ᪮<E1AFA8> <20><><E1ABAE>३, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
odd_squares = [a*a for a in range(100) if a%2]; odd_squares = [a*a for a in range(100) if a%2];
- <20><><EFBFBD><EFBFBD>ࠪ⨢<E0A0AA><E2A8A2><EFBFBD> <20><><EFBFBD><EFBFBD> - <20><><EFBFBD><EFBFBD>ࠪ⨢<E0A0AA><E2A8A2><EFBFBD> <20><><EFBFBD><EFBFBD>.
- <20><><EFBFBD><E0A5A4><EFBFBD> <20><><EFBFBD><E0A0AC><20><>१ ARGV
<20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> menuetlibc <20><><EFBFBD><EFBFBD><E6A5A4><EFBFBD><><E0A0A7><EFBFBD><EFBFBD> <20><><EFBFBD><E0A0AC><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>
<20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0AEA2><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>᪥ TinyPy <20><><EFBFBD><EFBFBD><E5AEA4><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<20><><EFBFBD><><E4A0A9> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, ⠪<><E2A0AA> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E0A0AC><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>.
<20> <20><><EFBFBD><EFBFBD>筮, <20><> 墠⠥<E5A2A0> <20><EFBFBD><E1ADAE><EFBFBD><EFBFBD><> Python - <20><><EFBFBD> <20><EFBFBD><E2A0AD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20> <20><><EFBFBD><EFBFBD>筮, <20><> 墠⠥<E5A2A0> <20><EFBFBD><E1ADAE><EFBFBD><EFBFBD><> Python - <20><><EFBFBD> <20><EFBFBD><E2A0AD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
@@ -116,11 +111,15 @@ if __name__=="__main__":
math.square(12) math.square(12)
<20><><EFBFBD><EFBFBD> <20><EFBFBD><><E1AAAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0AEA2><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> math.py <20> <20><><EFBFBD><EFBFBD>-<2D><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC> <20><><EFBFBD><EFBFBD> <20><EFBFBD><><E1AAAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0AEA2><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> math.py <20> <20><><EFBFBD><EFBFBD>-<2D><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC>
py2bc.py, <20><><EFBFBD><><EFBFBD> <20><><EFBFBD> <20> Python, ⠪ <20> <20> TinyPy. <20> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><EFBFBD> py2bc.py, <20><><EFBFBD><><EFBFBD> <20><><EFBFBD> <20> Python, ⠪ <20> <20> TinyPy. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> shell <EFBFBD> <20><EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ᨢ ARGV=[0, 'math.py', 'math.tpc'], ⠪ <20><><EFBFBD> <20><><EFBFBD><E0A5A4><EFBFBD> # tinypy py2bc.py math.py math.tpc
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><><20><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
prog.py <20><> TinyPy. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "from module import function" <20><><EFBFBD><EFBFBD> <20><> <EFBFBD><EFBFBD> <20><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> prog.py <20><> TinyPy.
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
# tinypy prog.py
144
<20><><EFBFBD><EFBFBD><EFBFBD><E7A0AD>: ᨭ⠪<E1A8AD><E2A0AA><EFBFBD> "from module import function" <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0A6A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
3.2 <20><><EFBFBD><20><> C. 3.2 <20><><EFBFBD><20><> C.