/programs/develop/tinypy/tinypy/Makefile |
---|
1,7 → 1,7 |
export MENUETDEV=../../libraries/menuetlibc |
OUTFILE = tpmain |
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 |
kolibri_dbg.o: fasm_modules/kolibri_dbg.s |
fasm fasm_modules/kolibri_dbg.s |
/programs/develop/tinypy/tinypy/py2bc.py |
---|
15,7 → 15,6 |
return MODULES[name] |
py = name+".py" |
tpc = name+".tpc" |
print("CP") |
if exists(py): |
if not exists(tpc) or mtime(py) > mtime(tpc): |
s = load(py) |
43,7 → 42,6 |
return g |
def tinypy(): |
print("tinypy called") |
return import_fname(ARGV[0],'__main__') |
def main(src,dest): |
52,5 → 50,4 |
save(dest,r) |
if __name__ == '__main__': |
print("Running main") |
main(ARGV[1],ARGV[2]) |
/programs/develop/tinypy/tinypy/tpmain.c |
---|
1,25 → 1,16 |
#include "tp.c" |
/* INCLUDE */ |
const char header[]="TinyPy for kolibriOS"; |
const int argc = 2; |
extern _stdcall void kolibri_dbg_init(tp_vm *tp); |
void main(void) { |
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]); |
void main(int argc, const char *argv[]) { |
tp_vm *tp = tp_init(argc, argv); |
kolibri_dbg_init(tp); |
kolibri_init(tp); |
CONSOLE_INIT(header); |
/* INIT */ |
tp_call(tp,"py2bc","tinypy",tp_None); |
con_printf("Done"); |
tp_deinit(tp); |
kol_exit(); |
return; |
/programs/develop/tinypy/tp_kolibri.txt |
---|
84,13 → 84,8 |
- ¨â¥à â®àë ¨ á®¯à®£à ¬¬; |
- á¨â ªá¨ç¥áª¨© "á å à" ¤«ï ®¡ê¥¨ï ᯨ᪮¢ ¨ á«®¢ ३, ¯®¤®¡¨¥ |
odd_squares = [a*a for a in range(100) if a%2]; |
- ¨â¥à ªâ¨¢ ï ª®á®«ì |
- ¯¥à¥¤ ç ¯ à ¬¥â஢ ç¥à¥§ ARGV |
- ¨â¥à ªâ¨¢ ï ª®á®«ì. |
¡¨¡«¨®â¥ª¥ menuetlibc ¯à®æ¥¤ãà à §¡®à ¯ à ¬¥â஢ ª®¬ ¤®© áâப¨ ¯®ª |
¥ ¤ ¯â¨à®¢ ¤«ï ®«¨¡à¨, ¯®í⮬㠯ਠ§ ¯ã᪥ TinyPy ¯à¨å®¤¨âáï ¢¢®¤¨âì |
¨¬ï ä ©« ¢àãçãî, â ª¦¥ ¥«ì§ï ¯¥à¥¤ ¢ âì ¯ à ¬¥âàë ¢ ª®¬ ¤®© áâப¥. |
ª®¥ç®, ¥ å¢ â ¥â ®á®¢®© ᨫë Python - ¥£® áâ ¤ à⮩ ¡¨¡«¨®â¥ª¨. |
3. áè¨à¥¨¥ TinyPy. |
116,12 → 111,16 |
math.square(12) |
ç «¥ 㦮 ᪮¬¯¨«¨à®¢ âì ¬®¤ã«ì math.py ¢ ¡ ©â-ª®¤ ¯à¨ ¯®¬®é¨ ¯à®£à ¬¬ë |
py2bc.py, ® à ¡®â ¥â ª ª ¢ Python, â ª ¨ ¢ TinyPy. ¯®á«¥¤¥¬ á«ãç ¥ 㦮 |
㪠§ âì £«®¡ «ìë© ¬ áᨢ ARGV=[0, 'math.py', 'math.tpc'], â ª ª ª ¯¥à¥¤ âì |
¯ à ¬¥âàë ç¥à¥§ ª®¬ ¤ãî áâப㠯®ª ¥«ì§ï. ®á«¥ í⮣® ¬®¦® § ¯ãáâ¨âì |
prog.py ¨§ TinyPy. ¨â ªá¨á "from module import function" ¯®ª ¥ |
¯®¤¤¥à¦¨¢ ¥âáï. |
py2bc.py, ® à ¡®â ¥â ª ª ¢ Python, â ª ¨ ¢ TinyPy. ¯ã᪠¥¬ shell ¨ ¢ë¯®«ï¥¬ ª®¬ ¤ã |
# tinypy py2bc.py math.py math.tpc |
®á«¥ í⮣® ¬®¦® § ¯ãáâ¨âì prog.py ¨§ TinyPy. |
# tinypy prog.py |
144 |
¬¥ç ¨¥: á¨â ªá¨á "from module import function" ¯®ª ¥ ¯®¤¤¥à¦¨¢ ¥âáï. |
3.2 ®¤ã«¨ C. |
ਬ¥à ᮧ¤ ¨ï ¬®¤ã«¥© C ¬®¦® ¯®á¬®âà¥âì ¢ ª â «®£¥ modules/kolibri. ª¨¥ |