module [0, 0] - [2, 0]
function_definition [0, 0] - [1, 11]
name: identifier [0, 4] - [0, 8]
parameters: parameters [0, 8] - [0, 54]
identifier [0, 9] - [0, 14]
typed_parameter [0, 16] - [0, 27]
identifier [0, 16] - [0, 22]
type: type [0, 24] - [0, 27]
identifier [0, 24] - [0, 27]
default_parameter [0, 29] - [0, 38]
name: identifier [0, 29] - [0, 34]
value: integer [0, 37] - [0, 38]
typed_default_parameter [0, 40] - [0, 53]
name: identifier [0, 40] - [0, 44]
type: type [0, 46] - [0, 49]
identifier [0, 46] - [0, 49]
value: integer [0, 52] - [0, 53]
body: block [1, 4] - [1, 11]
expression_statement [1, 4] - [1, 11]
call [1, 4] - [1, 11]
function: identifier [1, 4] - [1, 9]
arguments: argument_list [1, 9] - [1, 11]
Maybe it's possible to homogenize all this.
If I have this code:
I got the following abstract tree:
My question is: Why is the first parameter and
typed_parameterdoes not have anamefield likedefault_parameterandtyped_default_parameter.Or in the other way, why
default_parameterandtyped_default_parameterneed anamefield ?Is there any reason to this design ?
Maybe it's possible to homogenize all this.