コード例 #1
0
ファイル: loxigen.py プロジェクト: macauleycheng/aos-loxigen
def build_ir(ofinputs_by_version):
    classes = []
    enums = []
    for wire_version, ofinputs in ofinputs_by_version.items():
        version = OFVersions.from_wire(wire_version)
        ofprotocol = loxi_ir.build_protocol(version, ofinputs)
        loxi_globals.ir[version] = ofprotocol

    loxi_globals.unified = loxi_ir.build_unified_ir(loxi_globals.ir)
コード例 #2
0
def build_ir(ofinputs_by_version):
    classes = []
    enums = []
    for wire_version, ofinputs in ofinputs_by_version.items():
        version = OFVersions.from_wire(wire_version)
        ofprotocol = loxi_ir.build_protocol(version, ofinputs)
        loxi_globals.ir[version] = ofprotocol

    loxi_globals.unified = loxi_ir.build_unified_ir(loxi_globals.ir)
コード例 #3
0
ファイル: cmdline.py プロジェクト: shushen/loxigen
def version_list_normalize(vlist):
    """
    Normalize the version list and return as an array
    """
    out_list = []
    # @fixme Map to OF version references
    if vlist.find(',') > 0:
        vlist = vlist.split(',')
    else:
        vlist = vlist.split()
    vlist.sort()
    for ver in vlist:
        try:
            out_list.append(OFVersions.from_string(ver))
        except KeyError:
            sys.stderr.write("Bad version input, %s" % str(ver))
            sys.exit(1)
    return out_list
コード例 #4
0
ファイル: cmdline.py プロジェクト: Sovietaced/loxigen
def version_list_normalize(vlist):
    """
    Normalize the version list and return as an array
    """
    out_list = []
    # @fixme Map to OF version references
    if vlist.find(',') > 0:
        vlist = vlist.split(',')
    else:
        vlist = vlist.split()
    vlist.sort()
    for ver in vlist:
        try:
            out_list.append(OFVersions.from_string(ver))
        except KeyError:
            sys.stderr.write("Bad version input, %s" % str(ver))
            sys.exit(1)
    return out_list
コード例 #5
0
}


def make_gen(name, version):
    fn = getattr(py_gen.codegen, "generate_" + name)
    return lambda out, name: fn(out, name, version)


def static(template_name):
    return lambda out, name: py_gen.util.render_template(out, template_name)


targets = {
    prefix + '/__init__.py': static('toplevel_init.py'),
    prefix + '/pp.py': static('pp.py'),
    prefix + '/generic_util.py': static('generic_util.py'),
}

for version, subdir in versions.items():
    targets['%s/%s/__init__.py' % (prefix, subdir)] = make_gen('init', version)
    for module in modules[version]:
        filename = '%s/%s/%s.py' % (prefix, subdir, module)
        targets[filename] = make_gen(module, OFVersions.from_wire(version))


def generate(install_dir):
    py_gen.codegen.init()
    for (name, fn) in targets.items():
        with template_utils.open_output(install_dir, name) as outfile:
            fn(outfile, os.path.basename(name))
コード例 #6
0
ファイル: lang_python.py プロジェクト: FernandoFarias/loxigen
    1: ["action", "common", "const", "message", "util"],
    2: ["action", "common", "const", "instruction", "message", "util"],
    3: ["action", "common", "const", "instruction", "message", "oxm", "util"],
    4: ["action", "action_id", "common", "const", "instruction", "instruction_id", "message", "meter_band", "oxm", "bsn_tlv", "util"],
}

def make_gen(name, version):
    fn = getattr(py_gen.codegen, "generate_" + name)
    return lambda out, name: fn(out, name, version)

def static(template_name):
    return lambda out, name: py_gen.util.render_template(out, template_name)

targets = {
    prefix+'/__init__.py': static('toplevel_init.py'),
    prefix+'/pp.py': static('pp.py'),
    prefix+'/generic_util.py': static('generic_util.py'),
}

for version, subdir in versions.items():
    targets['%s/%s/__init__.py' % (prefix, subdir)] = make_gen('init', version)
    for module in modules[version]:
        filename = '%s/%s/%s.py' % (prefix, subdir, module)
        targets[filename] = make_gen(module, OFVersions.from_wire(version))

def generate(install_dir):
    py_gen.codegen.init()
    for (name, fn) in targets.items():
        with template_utils.open_output(install_dir, name) as outfile:
            fn(outfile, os.path.basename(name))