예제 #1
0
파일: listener.py 프로젝트: crcx/parable
    print('Parable Listener, (c) 2013-2016 Charles Childers')
    print('------------------------------------------------')
    print('.s       Display Stack')
    print('bye      Exit Listener')
    print('words    Display a list of all named items')
    print('------------------------------------------------\n')

    readline.set_completer(completer)
    readline.parse_and_bind("tab: complete")

    parable.prepare_slices()
    parable.prepare_dictionary()
    if os.path.exists('parable.snapshot'):
        init_from_snapshot(open('parable.snapshot').read())
    else:
        parable.parse_bootstrap(open('stdlib.p').readlines())

    evaluate("[ \"-\"   `9000 ] '.s' :")
    evaluate("[ \"-\"   `9001 ] 'bye' :")
    evaluate("[ \"-\"   `9002 ] 'words' :")
    evaluate("[ \"s-\"  `9003 ] 'include' :")

    try:
        home = expanduser("~")
        src = home + "/.parable/on_startup.p"
        parable.parse_bootstrap(open(src).readlines())
    except:
        pass

    while 1 == 1:
        try:
예제 #2
0
    options = [x for x in parable.dictionary_names if x.startswith(text)]
    try:
        return options[state]
    except IndexError:
        return None


if __name__ == '__main__':
    (width, height) = getTerminalSize()

    readline.set_completer(completer)
    readline.parse_and_bind("tab: complete")

    parable.prepare_slices()
    parable.prepare_dictionary()
    parable.parse_bootstrap(open('stdlib.p').readlines())

    try:
        home = expanduser("~")
        src = home + "/.parable/on_startup.p"
        parable.parse_bootstrap(open(src).readlines())
    except:
        pass

    while 1 == 1:
        display(height, width)

        try:
            src = get_input()
        except:
            sys.stdout.write("\n")
예제 #3
0
def opcode_include_file():
    import os
    name = parable.slice_to_string(parable.stack_pop())
    if os.path.exists(name):
        source = open(name).readlines()
        parable.parse_bootstrap(source)
예제 #4
0
파일: amoeba.py 프로젝트: crcx/amoeba
                i += 1
            new = new + '"'
        else:
            new = new + " " + token
        i += 1
    return new


def evaluate(s):
    parable.interpret(parable.compile(s, parable.request_slice()))

if __name__ == '__main__':
    print 'Amoeba, Copyright (c) 2013-2016 Charles Childers\n'
    parable.prepare_slices()
    parable.prepare_dictionary()
    parable.parse_bootstrap(open('stdlib.p').readlines())
    parable.parse_bootstrap(open('amoeba.p').readlines())

    while 1 == 1:
        sys.stdout.write("\nok ")
        sys.stdout.flush()

        src = sys.stdin.readline()

        if len(src) > 1:
            t = rewrite(src)
            print 'translate>> ' + t
            slice = parable.request_slice()
            parable.interpret(parable.compile(t, slice), opcodes)

        for e in parable.errors:
예제 #5
0
파일: repl.py 프로젝트: crcx/parable
def opcode_include_file():
    import os
    name = parable.slice_to_string(parable.stack_pop())
    if os.path.exists(name):
        source = open(name).readlines()
        parable.parse_bootstrap(source)
예제 #6
0
def load_files(files):
    for i in files:
        if os.path.exists(i) and i != "./gen-snapshot.py" and i != "gen-snapshot.py" :
            parable.parse_bootstrap(open(i).readlines())
예제 #7
0
def prepare():
    parable.prepare_slices()
    parable.prepare_dictionary()
    parable.parse_bootstrap(open('stdlib.p').readlines())