예제 #1
0
def main():
    parser = OptionParser(usage="%prog [options] filename",
                          description="Python to JavaScript compiler.")

    parser.add_option("--output",
                      action="store",
                      dest="output",
                      help="write output to OUTPUT")

    parser.add_option("-i",
                      "--include-builtins",
                      action="store_true",
                      dest="include_builtins",
                      default=False,
                      help="include py-builtins.js library in the output")

    parser.add_option(
        "-I",
        "--import-builtins",
        action="store_true",
        dest="import_builtins",
        default=False,
        help="call load('py-builtins.js') to source the standard library")

    parser.add_option(
        "-N",
        "--no-include",
        action="store_true",
        dest="no_builtins",
        default=False,
        help=
        "Do not include attempt to load py-builtins.js. The generated javascript code will not run by itself, unless this library is included"
    )

    options, args = parser.parse_args()

    if options.include_builtins + options.import_builtins + options.no_builtins <> 1 and len(
            args) == 1:
        print "You must specify either the -i, -I or -N mode!"
    elif len(args) == 1:
        filename = args[0]

        if options.output:
            output = open(options.output, "w")
        else:
            output = sys.stdout

        if options.include_builtins:
            builtins = open(path_library).read()
            output.write("  Standard library  ".center(80, "#") + "\n")
            output.write(builtins)
            output.write("  User code  ".center(80, "#") + "\n")
        elif options.import_builtins:
            output.write('load("%s");\n' % path_library)

        c = Compiler()
        c.append_string(open(filename).read())
        output.write(str(c))
    else:
        parser.print_help()
예제 #2
0
파일: pyjs.py 프로젝트: Epictetus/pyjaco
def main():
    parser = OptionParser(usage="%prog [options] filename",
                          description="Python to JavaScript compiler.")

    parser.add_option("--output",
                      action = "store",
                      dest   = "output",
                      help   = "write output to OUTPUT")

    parser.add_option("-i", "--include-builtins",
                      action  = "store_true",
                      dest    = "include_builtins",
                      default = False,
                      help    = "include py-builtins.js library in the output")

    parser.add_option("-I", "--import-builtins",
                      action  = "store_true",
                      dest    = "import_builtins",
                      default = False,
                      help    = "call load('py-builtins.js') to source the standard library")

    parser.add_option("-N", "--no-include",
                      action  = "store_true",
                      dest    = "no_builtins",
                      default = False,
                      help    = "Do not include attempt to load py-builtins.js. The generated javascript code will not run by itself, unless this library is included")

    options, args = parser.parse_args()

    if options.include_builtins + options.import_builtins + options.no_builtins <> 1 and len(args) == 1:
        print "You must specify either the -i, -I or -N mode!"
    elif len(args) == 1:
        filename = args[0]

        if options.output:
            output = open(options.output, "w")
        else:
            output = sys.stdout

        if options.include_builtins:
            builtins = open(path_library).read()
            output.write("  Standard library  ".center(80, "#") + "\n")
            output.write(builtins)
            output.write("  User code  ".center(80, "#") + "\n")
        elif options.import_builtins:
            output.write('load("%s");\n' % path_library)

        c = Compiler()
        c.append_string(open(filename).read())
        output.write(str(c))
    else:
        parser.print_help()
예제 #3
0
파일: pyjs.py 프로젝트: stjordanis/pyjaco
def compile_file(infile, outfile, options):
    '''Compile a single python file object to a single javascript output file
    object'''
    if options.builtins == "include":
        builtins = BuiltinGenerator().generate_builtins()

        outfile.write("/*%s*/\n" % "  Standard library  ".center(76, "*"))
        outfile.write(builtins)
        outfile.write("/*%s*/\n" % "  User code  ".center(76, "*"))
    elif options.builtins == "import":
        outfile.write('load("py-builtins.js");\n')

    c = Compiler()
    c.append_string(infile.read())
    outfile.write(str(c))
예제 #4
0
파일: pyjs.py 프로젝트: MechanisM/pyjaco
def compile_file(infile, outfile, options):
    '''Compile a single python file object to a single javascript output file
    object'''
    if options.builtins == "include":
        builtins = BuiltinGenerator().generate_builtins()

        outfile.write("/*%s*/\n" % "  Standard library  ".center(76, "*"))
        outfile.write(builtins)
        outfile.write("/*%s*/\n" % "  User code  ".center(76, "*"))
    elif options.builtins == "import":
        outfile.write('load("py-builtins.js");\n')

    c = Compiler()
    c.append_string(infile.read())
    outfile.write(str(c))
예제 #5
0
파일: dependence.py 프로젝트: neoel/towel
 def compile(self):
     c = Compiler()
     c.append_raw(c.compile_module(self.code, 'test.py', name=self.fullname))
     
     return str(c)
예제 #6
0
import sys
from pyjaco import Compiler
from time import time
from jsmin import jsmin

time1 = time()
code = open("tojs.py", "r")
compiler = Compiler()
compiler.append_string(code.read())
js = jsmin(str(compiler))
time2 = time()
print js
print "time: " + str(time2-time1)