=============================================================================== No parameters =============================================================================== func one() int {} ------------------------------------------------------------------------------- (source_file (function_definition name: (identifier) parameters: (parameters) return_type: (primitive_type) body: (block))) =============================================================================== 1 parameter =============================================================================== func one(x int) int {} ------------------------------------------------------------------------------- (source_file (function_definition name: (identifier) parameters: (parameters (parameter (identifier) (primitive_type))) return_type: (primitive_type) body: (block))) =============================================================================== 1 parameter with trailing comma =============================================================================== func one( x int, ) int {} ------------------------------------------------------------------------------- (source_file (function_definition name: (identifier) parameters: (parameters (parameter (identifier) (primitive_type))) return_type: (primitive_type) body: (block))) =============================================================================== 2 parameters =============================================================================== func one(x int, y int) int {} ------------------------------------------------------------------------------- (source_file (function_definition name: (identifier) parameters: (parameters (parameter (identifier) (primitive_type)) (parameter (identifier) (primitive_type))) return_type: (primitive_type) body: (block))) =============================================================================== 2 parameters with trailing comma =============================================================================== func one( x int, y int, ) int {} ------------------------------------------------------------------------------- (source_file (function_definition name: (identifier) parameters: (parameters (parameter (identifier) (primitive_type)) (parameter (identifier) (primitive_type))) return_type: (primitive_type) body: (block))) =============================================================================== [Error] No space between parameter name and type =============================================================================== func one(xint) int {} ------------------------------------------------------------------------------- (source_file (function_definition name: (identifier) parameters: (parameters (ERROR (identifier))) return_type: (primitive_type) body: (block)))