code: func Parse(t Tokens) (ast.Node, error) {
  	p := makeParser(t)
  	expr, err := p.parse(maxPrecedence)
  	if err != nil {
  		return nil, err
  	}
  
  	if p.peek().kind != tokenEndOfFile {
  		return nil, MakeStaticError(fmt.Sprintf("Did not expect: %v", p.peek()), p.peek().loc)
  	}
  
  	addContext(expr, &topLevelContext, anonymous)
  
  	return expr, nil
  }
docs: // ---------------------------------------------------------------------------
  // Parse parses a slice of tokens into a parse tree.