baykus <baykusde...@gmail.com> writes: > Hi > > I am looking for one of those experimental languages that might be > combination of python+basic. Now thta sounds weird and awkward I know. > The reason I am asking is that I always liked how I could reference- > call certain line number back in the days. It would be interesting to > get similar functionality in Python.
I am currently working on such a "Python-Basic" programming language. Here is the current implementation: -------------- basic.py ---------------- class GotoLine(Exception): pass def goto(newlno): raise GotoLine(newlno) def run(program): lno = 0 env = { 'goto': goto } try: while lno <= max(program): try: if lno in program: exec program[lno] in env lno += 1 except GotoLine, g: lno, = g.args except Exception: print "? Syntax error in line", lno print "OK." ---------------------------------------- Example of use ============== marigold:junk arno$ python -i basic.py >>> program = { ... 5: "# REM Python-Basic example program", ... 6: "# REM ----------------------------", ... 10: "i = 0", ... 20: "print 'Hello, world', i", ... 30: "i = i + 1", ... 40: "if i < 10: goto(20)", ... 50: "name = raw_input('What is your name? ')", ... 60: "print 'Welcome,', name", ... 70: "gosub(80)" ... } >>> run(program) Hello, world 0 Hello, world 1 Hello, world 2 Hello, world 3 Hello, world 4 Hello, world 5 Hello, world 6 Hello, world 7 Hello, world 8 Hello, world 9 What is your name? Arnaud Welcome, Arnaud ? Syntax error in line 70 OK. >>> As you can see, I haven't implemented gosub() yet. -- Arnaud -- http://mail.python.org/mailman/listinfo/python-list