def parseSynExp(self, s): parse = Parser(util.StringFileAdapter(s)) parse.recurLimit = 50 ast = parse.parseSubSeq() if parse.errs: result = "Parsing errors:\n" for e in parse.errs: result += e.longMsg() + "\n" result += "\nTotal: " + str(len(parse.errs)) + " errors\n" raise AnimError(result) check = Checker(self.world) sem = check.handleExp(ast) if check.errs: result = "Checking errors:\n" for e in check.errs: result += e.longMsg() + "\n" result += "\nTotal: " + str(len(check.errs)) + " errors\n" raise AnimError(result) return sem
def parsePremise(self, s): parse = Parser(util.StringFileAdapter(s)) parse.recurLimit = 50 try: ast = parse.parsePremise() if parse.errs: result = "Parsing errors:\n" for e in parse.errs: result += e.longMsg() + "\n" result += "\nTotal: " + str(len(parse.errs)) + " errors\n" raise AnimError(result) check = Checker(self.world) sem = check.checkPremise(ast) if check.errs: result = "Checking errors:\n" for e in check.errs: result += e.longMsg() + "\n" result += "\nTotal: " + str(len(check.errs)) + " errors\n" raise AnimError(result) return sem except Exception as e: raise AnimError(str(e))