Esempio n. 1
0
def semex_add(ctx, args):
    """
    Adds a semex to the context's list of semexes.

    Args:
        ctx (context.Context)
        args (kct.argparse.Namepsace)
        args.name (str) - used to refer to the semex
        args.semex-str (str) - the semex in string form. A valid argument to
            semex.parser.compile_regex

    Returns: None
    """
    from vinge.semex.parser import compile_regex, RegexParseException
    from vinge.semex.ast_to_semex import ast_to_semex
    name = args.name
    # argparse gives us an array of strings as the semex-str. We want a string
    semex_str = ' '.join(getattr(args, 'semex-str'))
    try:
        semex_ast = compile_regex(semex_str)
        semex = ast_to_semex(ctx.graph, ctx.transition, ctx.transition_op, semex_ast)
        # Add to the context
        ctx.add_semex(name, semex)
        pp('Successfully added path set')
    except RegexParseException, rpe:
        error("Error parsing path set (semex) '%s': %s"%(semex_str, rpe.message))
def do_ast_to_semex(ast):
    return ast_to_semex(graph, transition, transition_op, ast)