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)