Exemple #1
0
def gen(dependentdir, inputdir, lang, outputdir):
    syspath = "./hub_call_client/gen/"
    c_suffix = ""
    if lang == 'ts':
        sys.path.append("./struct/ts")
        sys.path.append("./tools/ts")
        sys.path.append("./enum/ts")
        syspath += "ts/"
        c_suffix = "ts"
    sys.path.append(syspath)
    import gencaller
    sys.path.remove(syspath)

    if not os.path.isdir(outputdir):
        os.mkdir(outputdir)

    defmodulelist = []
    for filename in os.listdir(dependentdir):
        fname = os.path.splitext(filename)[0]
        fex = os.path.splitext(filename)[1]
        if fex != '.juggle':
            continue

        file = open(dependentdir + '//' + filename, 'r')
        genfilestr = file.readlines()

        module, enum, struct = jparser.parser(genfilestr)
        checkAndPretreatCommon(fname, module, enum, struct, defmodulelist)

    lexical_tree = []
    for filename in os.listdir(inputdir):
        fname = os.path.splitext(filename)[0]
        fex = os.path.splitext(filename)[1]
        if fex != '.juggle':
            continue

        file = open(inputdir + '//' + filename, 'r')
        genfilestr = file.readlines()

        module, enum, struct = jparser.parser(genfilestr)
        modules = checkAndPretreat(fname, module, enum, struct, defmodulelist,
                                   "hub_call_client")
        lexical_tree.append((fname, modules, enum, struct))

    for fname, modules, enum, struct in lexical_tree:
        global_argv.quote_file_list = []
        callercode = gencaller.gencaller(fname, modules, enum, struct)
        file = open(outputdir + '//' + fname + '_caller.' + c_suffix, 'w')
        file.write(callercode)
        file.close()
Exemple #2
0
def gen(inputdir, outputdir):
        defmodulelist = []

        if not os.path.isdir(outputdir):
                os.mkdir(outputdir)
        if not os.path.isdir(outputdir + '//caller'):
                os.mkdir(outputdir + '//caller')
        if not os.path.isdir(outputdir + '//module'):
                os.mkdir(outputdir + '//module')
                
        for filename in os.listdir(inputdir):
                fname = os.path.splitext(filename)[0]
                fex = os.path.splitext(filename)[1]
                if fex == '.juggle':
                        file = open(inputdir + '//' + filename, 'r')
                        genfilestr = file.readlines()

                        keydict = jparser.parser(genfilestr)
                                
                        for module_name, funcs in keydict.items():
                                if module_name in defmodulelist:
                                        raise 'redefined module %s' % module_name

                                defmodulelist.append(module_name)
                                
                                callercode = gencaller.gencaller(module_name, funcs)
                                file = open(outputdir + '//caller//' + module_name + 'caller.js', 'w')
                                file.write(callercode)
                                file.close

                                modulecode = genmodule.genmodule(module_name, funcs)
                                file = open(outputdir + '//module//' + module_name + 'module.js', 'w')
                                file.write(modulecode)
                                file.close
Exemple #3
0
def gen(inputdir, outputdir):
        defmodulelist = []

        if not os.path.isdir(outputdir):
                os.mkdir(outputdir)
        if not os.path.isdir(outputdir + '\\caller'):
                os.mkdir(outputdir + '\\caller')
        if not os.path.isdir(outputdir + '\\module'):
                os.mkdir(outputdir + '\\module')
                
        for filename in os.listdir(inputdir):
                fname = os.path.splitext(filename)[0]
                fex = os.path.splitext(filename)[1]
                if fex == '.juggle':
                        file = open(inputdir + '\\' + filename, 'r')
                        genfilestr = file.readlines()

                        keydict = jparser.parser(genfilestr)
                                
                        for module_name, funcs in keydict.items():
                                if module_name in defmodulelist:
                                        raise 'redefined module %s' % module_name

                                defmodulelist.append(module_name)
                                
                                callercode = gencaller.gencaller(module_name, funcs)
                                file = open(outputdir + '\\caller\\' + module_name + 'caller.h', 'w')
                                file.write(callercode)
                                file.close

                                modulecode = genmodule.genmodule(module_name, funcs)
                                file = open(outputdir + '\\module\\' + module_name + 'module.h', 'w')
                                file.write(modulecode)
                                file.close
Exemple #4
0
def gen(inputdir, lang, outputdir):
    defmodulelist = []

    syspath = "./hub_call_client/gen/"
    h_suffix = ""
    if lang == 'c++':
        sys.path.append("./enum/c++")
        syspath += "c++/"
        h_suffix = "hpp"
    if lang == 'csharp':
        sys.path.append("./enum/csharp")
        syspath += "csharp/"
        h_suffix = "cs"
    if lang == 'js':
        sys.path.append("./enum/js")
        syspath += "js/"
        h_suffix = "js"
    sys.path.append(syspath)
    import genmodule
    sys.path.remove(syspath)

    if not os.path.isdir(outputdir):
        os.mkdir(outputdir)

    for filename in os.listdir(inputdir):
        fname = os.path.splitext(filename)[0]
        fex = os.path.splitext(filename)[1]
        if fex != '.juggle':
            continue

        file = open(inputdir + '//' + filename, 'r')
        genfilestr = file.readlines()

        module, enum = jparser.parser(genfilestr)
        print module
        print enum
        modules = {}
        for module_name, module_info in module.items():
            if module_name in defmodulelist:
                raise 'redefined module %s' % module_name

            if module_info["module_type"] != "hub_call_client":
                raise ('%s has wrong module type %s' %
                       (module_name, module_info["module_type"]))

            defmodulelist.append(module_name)

            modules[module_name] = module_info["method"]
        for enum_name, enums in enum.items():
            if enum_name in defmodulelist:
                raise 'redefined enum %s' % enum_name
            defmodulelist.append(enum_name)

        modulecode = genmodule.genmodule(fname, modules, enum)
        file = open(outputdir + '//' + fname + '_module.' + h_suffix, 'w')
        file.write(modulecode)
        file.close()