Beispiel #1
0
def main():
    usage = textwrap.dedent("""\
    %prog [input file]

    If no input file is provided STDIN is used by default.
    """)
    parser = optparse.OptionParser(usage=usage)
    parser.add_option('-i', '--input',
                      dest='file',
                      help='Input file. Defaults to standard input.')
    parser.add_option('-c', '--coredump', action='store_true', dest='coredump',
                      help='Print coredump to standard output.')
    parser.add_option('-d', '--disasm', action='store_true', dest='disasm',
                      help='Print disassembled code to standard output.')
    parser.add_option('-t', '--trace', action='store_true', dest='trace',
                      help='Print execution trace.')
    options, args = parser.parse_args()

    if options.file is not None:
        text = open(options.file).read()
    else:
        text = sys.stdin.read()

    assembler = BytecodeAssembler(AssemblerLexer(text))
    assembler.parse()
    vm = VM(assembler, trace=options.trace)
    vm.execute()

    if options.coredump:
        vm.coredump()

    if options.disasm:
        vm.disassemble()
Beispiel #2
0
 def _get_vm(self, text):
     from tinypie.lexer import AssemblerLexer
     from tinypie.assembler import BytecodeAssembler
     from tinypie.vm import VM
     assembler = BytecodeAssembler(AssemblerLexer(text))
     assembler.parse()
     vm = VM(assembler)
     return vm
    def _get_parser(self, text):
        from tinypie.lexer import AssemblerLexer
        from tinypie.assembler import BytecodeAssembler

        parser = BytecodeAssembler(AssemblerLexer(text))
        return parser