DefinitionTree { definitions: [ Function( FunctionDefinition { comments: CommentGroup { comments: [], }, attributes: [], function: Keyword { value: "function", position: 0, }, name: Identifier { position: 9, value: "q", }, templates: None, parameters: FunctionLikeParameterListDefinition { comments: CommentGroup { comments: [], }, left_parenthesis: 10, parameters: CommaSeparated { inner: [], commas: [], }, right_parenthesis: 11, }, return_type: FunctionLikeReturnTypeDefinition { colon: 12, type_definition: Void( Keyword { value: "void", position: 14, }, ), }, body: BlockStatement { comments: CommentGroup { comments: [], }, left_brace: 19, statements: [ Expression( ExpressionStatement { comments: CommentGroup { comments: [], }, expression: AssignmentOperation( Assignment { comments: CommentGroup { comments: [], }, left: Variable( Variable { position: 25, name: "$a", }, ), equals: 28, right: ArithmeticOperation( Exponentiation { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "2", position: 30, }, ), ), pow: 32, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "2", position: 35, }, ), ), }, ), }, ), semicolon: 36, }, ), Expression( ExpressionStatement { comments: CommentGroup { comments: [], }, expression: AssignmentOperation( Assignment { comments: CommentGroup { comments: [], }, left: Variable( Variable { position: 43, name: "$b", }, ), equals: 46, right: TernaryOperation( Ternary { comments: CommentGroup { comments: [], }, condition: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "1", position: 48, }, ), ), question: 50, if_true: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "2", position: 52, }, ), ), colon: 54, if_false: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "3", position: 56, }, ), ), }, ), }, ), semicolon: 57, }, ), Expression( ExpressionStatement { comments: CommentGroup { comments: [], }, expression: AssignmentOperation( Assignment { comments: CommentGroup { comments: [], }, left: Variable( Variable { position: 64, name: "$c", }, ), equals: 67, right: TernaryOperation( Ternary { comments: CommentGroup { comments: [], }, condition: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "1", position: 69, }, ), ), question: 71, if_true: TernaryOperation( Ternary { comments: CommentGroup { comments: [], }, condition: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "2", position: 73, }, ), ), question: 75, if_true: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "3", position: 77, }, ), ), colon: 79, if_false: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "4", position: 81, }, ), ), }, ), colon: 83, if_false: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "5", position: 85, }, ), ), }, ), }, ), semicolon: 86, }, ), Expression( ExpressionStatement { comments: CommentGroup { comments: [], }, expression: AssignmentOperation( Assignment { comments: CommentGroup { comments: [], }, left: Variable( Variable { position: 93, name: "$d", }, ), equals: 96, right: TernaryOperation( ShortTernary { comments: CommentGroup { comments: [], }, condition: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "1", position: 98, }, ), ), question_colon: 100, if_false: TernaryOperation( ShortTernary { comments: CommentGroup { comments: [], }, condition: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "2", position: 103, }, ), ), question_colon: 105, if_false: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "3", position: 108, }, ), ), }, ), }, ), }, ), semicolon: 109, }, ), Expression( ExpressionStatement { comments: CommentGroup { comments: [], }, expression: AssignmentOperation( Assignment { comments: CommentGroup { comments: [], }, left: Variable( Variable { position: 116, name: "$e", }, ), equals: 119, right: CoalesceOperation( Coalesce { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "1", position: 121, }, ), ), double_question: 123, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "2", position: 126, }, ), ), }, ), }, ), semicolon: 127, }, ), Expression( ExpressionStatement { comments: CommentGroup { comments: [], }, expression: AssignmentOperation( Assignment { comments: CommentGroup { comments: [], }, left: Variable( Variable { position: 134, name: "$f", }, ), equals: 137, right: CoalesceOperation( Coalesce { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "1", position: 139, }, ), ), double_question: 141, right: CoalesceOperation( Coalesce { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "2", position: 144, }, ), ), double_question: 146, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "3", position: 149, }, ), ), }, ), }, ), }, ), semicolon: 150, }, ), ], right_brace: 152, }, }, ), ], eof: 154, }