Example #1
0
def _test():
    import CodeBlock
    import Converters
    import HeaderJar

    header_jar = HeaderJar.HeaderJar()
    Session.begin(header_jar)

    Converters.add(Converters.WcsConv())

    tk = TupleAndKeywords()
    tk.add_parameter(
        Argument.Argument(Types.Type((
            "int",
            "*",
        ), 1, "FundamentalType"), "foo"))
    tk.add_parameter(
        Argument.Argument(Types.Type((
            "double",
            "&",
        ), 2, "FundamentalType"), "bar"))
    tk.add_parameter(
        Argument.Argument(
            Types.Type((
                "long unsigned int",
                "&",
                "const",
            ), 3, "FundamentalType"), "xyz"))
    tk.add_parameter(
        Argument.Argument(Types.Type((
            "X",
            "const",
            "&",
        ), 4, "Class"), "x"))
    tk.add_parameter(
        Argument.Argument(Types.Type((
            "Y",
            "*",
        ), 5, "Class"), "y"))
    tk.add_parameter(Argument.Argument(Types.Type(("Z", ), 6, "Class"), "z"))
    tk.add_parameter(
        Argument.Argument(Types.Type(("bool", ), 7, "FundamentalType"), "b"))
    tk.add_parameter(
        Argument.Argument(
            Types.Type((
                "wchar_t",
                "const",
                "*",
            ), 8, "PointerType"), "str"))

    print(tk.get_fmt_specifier())
    print(tk.get_keywords())
    print(tk.build_function_signature_parameter_list())

    from Module import PythonNamer
    namer = PythonNamer()

    print(tk.build_parser_idecl(namer=namer))
    _print_empty_line()

    block = CodeBlock.CodeBlock()
    tk.write_args_parsing_code(block, namer, True, "return nullptr;", "<TEST>")

    print(block.flush())
    _print_empty_line()
    _print_empty_line()

    tk = TupleAndKeywords()
    tk.add_parameter(
        Argument.Argument(Types.Type((
            "int",
            "*",
        ), 1, "FundamentalType"), "foo", "nullptr"))
    tk.add_parameter(
        Argument.Argument(Types.Type((
            "double",
            "&",
        ), 2, "FundamentalType"), "bar", "PI"))
    tk.add_parameter(
        Argument.Argument(
            Types.Type((
                "long unsigned int",
                "&",
                "const",
            ), 3, "FundamentalType"), "xyz", "MAXINT"))
    tk.add_parameter(
        Argument.Argument(Types.Type((
            "X",
            "const",
            "&",
        ), 4, "Class"), "x", "_x"))
    tk.add_parameter(
        Argument.Argument(Types.Type((
            "Y",
            "*",
        ), 5, "Class"), "y", "_py"))
    tk.add_parameter(
        Argument.Argument(Types.Type(("Z", ), 6, "Class"), "z", "Z(1990)"))
    tk.add_parameter(
        Argument.Argument(Types.Type(("bool", ), 7, "FundamentalType"), "b",
                          "true"))
    tk.add_parameter(
        Argument.Argument(
            Types.Type((
                "wchar_t",
                "const",
                "*",
            ), 8, "PointerType"), "str", 'L"Hello world!"'))
    tk.write_args_parsing_code(block, namer, True, "return nullptr;", "<TEST>")

    print(block.flush())

    integer = Types.Type(("int", ), 99, "FundamentalType")
    Converters.add(Converters.ListConv(integer))

    tk = TupleAndKeywords()
    tk.add_parameter(
        Argument.Argument(
            Types.Type((
                "std::vector<int>",
                "const",
                "&",
            ), 0, "Class"), "vi", "_vi"))
    tk.write_args_parsing_code(block, namer, True, "return nullptr;", "<TEST>")

    print(block.flush())

    K = Types.Type((
        "wchar_t",
        "const",
        "*",
    ), 111, "PointerType")
    V = Types.Type((
        "wxColour",
        "*",
    ), 112, "PointerType")
    Converters.add(Converters.DictConv(K, V))

    tk = TupleAndKeywords()
    tk.add_parameter(
        Argument.Argument(
            Types.Type((
                "std::map<wchar_t const *, wxColour *>",
                "&",
            ), 0, "Class"), "m"))
    tk.write_args_parsing_code(block, namer, True, "return nullptr;", "<TEST>")

    print(block.flush())