code: func parseVariableDefinitions(parser *Parser) ([]*ast.VariableDefinition, error) {
  	variableDefinitions := []*ast.VariableDefinition{}
  	if !peek(parser, lexer.PAREN_L) {
  		return variableDefinitions, nil
  	}
  	if vdefs, err := reverse(parser,
  		lexer.PAREN_L, parseVariableDefinition, lexer.PAREN_R,
  		true,
  	); err != nil {
  		return variableDefinitions, err
  	} else {
  		for _, vdef := range vdefs {
  			variableDefinitions = append(variableDefinitions, vdef.(*ast.VariableDefinition))
  		}
  	}
  	return variableDefinitions, nil
  }
docs: /**
   * VariableDefinitions : ( VariableDefinition+ )
   */