code: func (p *parser) parseProgram() *ast.Program {
  	result := ast.NewProgram(p.next().Pos, p.next().Line)
  
  	for p.isStatement() {
  		result.AddStatement(p.parseStatement())
  	}
  
  	return result
  }
docs: // program : statement*