from nltk import *

def get_parser(file, trace = 0):
    g = parse.GrammarFile(file)
    p = g.earley_parser(trace = trace)
    return p

def do_parse(sentence, parser, margin = 0):
    s = list(tokenize.whitespace(sentence))
    trees = parser.get_parse_list(s)
    for tree in trees: print(tree.pprint(margin = margin))

def get_grammar(file):
    g = parse.GrammarFile(file)
    return g

def do_semantics(sentence, grammar, trace = 0):
    r = sem.text_interpret([sentence], grammar, syntrace = trace)
    for pair in r[sentence]:
        (tree, interp) = pair
        print tree
        print interp
