Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 2072 → Rev 2073

/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. ’ ª¨¥