def write_enums(writer, describe=False):
    writer.writeln("#ifndef _H_SPICE_ENUMS")
    writer.writeln("#define _H_SPICE_ENUMS")
    writer.newline()

    # Define enums
    for t in ptypes.get_named_types():
        if isinstance(t, ptypes.EnumBaseType):
            t.c_define(writer)
            if describe:
                t.c_describe(writer)

    write_channel_type_enum(writer)
    if (describe):
        write_channel_type_enum(writer, True)

    for c in ptypes.get_named_types():
        if not isinstance(c, ptypes.ChannelType):
            continue
        write_channel_enums(writer, c, False, False)
        if describe:
            write_channel_enums(writer, c, False, describe)
        write_channel_enums(writer, c, True, False)
        if describe:
            write_channel_enums(writer, c, True, describe)

    writer.writeln("#endif /* _H_SPICE_ENUMS */")
Example #2
0
def write_enums(writer, describe=False):
    writer.writeln("#ifndef _H_SPICE_ENUMS")
    writer.writeln("#define _H_SPICE_ENUMS")
    writer.newline()

    # Define enums
    for t in ptypes.get_named_types():
        if isinstance(t, ptypes.EnumBaseType):
            t.c_define(writer)
            if describe:
                t.c_describe(writer)

    write_channel_type_enum(writer)
    if (describe):
        write_channel_type_enum(writer, True)

    for c in ptypes.get_named_types():
        if not isinstance(c, ptypes.ChannelType):
            continue
        write_channel_enums(writer, c, False, False)
        if describe:
            write_channel_enums(writer, c, False, describe)
        write_channel_enums(writer, c, True, False)
        if describe:
            write_channel_enums(writer, c, True, describe)

    writer.writeln("#endif /* _H_SPICE_ENUMS */")
Example #3
0
def write_enums(writer):
    writer.writeln("#ifndef _H_SPICE_ENUMS")
    writer.writeln("#define _H_SPICE_ENUMS")
    writer.newline()
    writer.comment("Generated from %s, don't edit" %
                   writer.options["source"]).newline()
    writer.newline()

    # Define enums
    for t in ptypes.get_named_types():
        if isinstance(t, ptypes.EnumBaseType):
            t.c_define(writer)

    i = 0
    writer.begin_block("enum")
    for c in proto.channels:
        enum = codegen.prefix_underscore_upper("CHANNEL", c.name.upper())
        if c.value == i:
            writer.writeln("%s," % enum)
            i = i + 1
        else:
            writer.writeln("%s = %s," % (enum, c.value))
            i = c.value + 1
    writer.newline()
    writer.writeln("SPICE_END_CHANNEL")
    writer.end_block(semicolon=True)
    writer.newline()

    for c in ptypes.get_named_types():
        if not isinstance(c, ptypes.ChannelType):
            continue
        write_channel_enums(writer, c, False)
        write_channel_enums(writer, c, True)

    writer.writeln("#endif /* _H_SPICE_ENUMS */")
def write_enums(writer):
    writer.writeln("#ifndef _H_SPICE_ENUMS")
    writer.writeln("#define _H_SPICE_ENUMS")
    writer.newline()
    writer.comment("Generated from %s, don't edit" % writer.options["source"]).newline()
    writer.newline()

    # Define enums
    for t in ptypes.get_named_types():
        if isinstance(t, ptypes.EnumBaseType):
            t.c_define(writer)

    i = 0;
    writer.begin_block("enum")
    for c in proto.channels:
        enum = codegen.prefix_underscore_upper("CHANNEL", c.name.upper())
        if c.value == i:
            writer.writeln("%s," % enum)
            i = i + 1
        else:
            writer.writeln("%s = %s," % (enum, c.value))
            i = c.value + 1
    writer.newline()
    writer.writeln("SPICE_END_CHANNEL")
    writer.end_block(semicolon=True)
    writer.newline()

    for c in ptypes.get_named_types():
        if not isinstance(c, ptypes.ChannelType):
            continue
        write_channel_enums(writer, c, False)
        write_channel_enums(writer, c, True)

    writer.writeln("#endif /* _H_SPICE_ENUMS */")
Example #5
0
def generate_declarations():
    writer = codegen.CodeWriter()
    writer.public_suffix = options.suffix
    writer.write(license)

    # all types
    for t in ptypes.get_named_types():
        if isinstance(t, ptypes.StructType):
            generate_declaration(t, writer)
        if isinstance(t, ptypes.ChannelType):
            for m in t.client_messages + t.server_messages:
                generate_declaration(m.message_type, writer)

    content = writer.getvalue()
    write_content(options.generated_declaration_file, content,
                  options.keep_identical_file)