import pgf import sys # import sets # import readline # import locale sys.stdout.write("loading...") sys.stdout.flush(); gr1 = pgf.readPGF("../haskell/tests/basic.pgf") gr2 = pgf.bootNGF("../haskell/tests/basic.pgf", "./basic.ngf") gr3 = pgf.readNGF("./basic.ngf") sys.stdout.write("done") # source_lang = gr.languages["ParseEng"] # target_lang = gr.languages["ParseBul"] # # we = pgf.readExpr("UttImpSg PPos (ImpVP (UseV try_V))") # print source_lang.linearize(we) # # sys.stdout.write("start cat: "+gr.startCat+"\n\n") # # class Completer(): # def __init__(self, lang): # self.gr = lang # # def complete(self, prefix, state): # if state == 0: # line = readline.get_line_buffer() # line = line[0:readline.get_begidx()] # self.i = source_lang.complete(line, prefix=prefix) # self.tokens = sets.Set() # # if len(self.tokens) > 50: # return None # # while True: # try: # (p,t,c) = self.i.next() # if t not in self.tokens: # self.tokens.add(t) # return t # except StopIteration: # return None # # completer = Completer(source_lang) # readline.set_completer(completer.complete) # readline.parse_and_bind("tab: complete") # locale.setlocale(locale.LC_CTYPE, "") # # while True: # try: # line = raw_input("> "); # except EOFError: # sys.stdout.write("\n") # readline.set_completer(None) # break # except KeyboardInterrupt: # sys.stdout.write("\n") # readline.set_completer(None) # break # # try: # for (p,e) in source_lang.parse(line, n=1): # sys.stdout.write("["+str(p)+"] "+str(e)+"\n") # print target_lang.linearize(e) # except pgf.ParseError as e: # print e.message