Example #1
0
  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    
Example #2
0
  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))