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: ClassOperation( Initialization { comments: CommentGroup { comments: [], }, new: Keyword { value: "new", position: 30, }, class: Identifier( Identifier { position: 34, value: "Foo", }, ), generics: None, arguments: ArgumentListExpression { comments: CommentGroup { comments: [], }, left_parenthesis: 37, arguments: CommaSeparated { inner: [], commas: [], }, right_parenthesis: 38, }, }, ), }, ), semicolon: 39, }, ), Expression( ExpressionStatement { comments: CommentGroup { comments: [], }, expression: AssignmentOperation( Assignment { comments: CommentGroup { comments: [], }, left: Variable( Variable { position: 45, name: "$b", }, ), equals: 48, right: ArithmeticOperation( Positive { comments: CommentGroup { comments: [], }, plus: 50, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "1", position: 51, }, ), ), }, ), }, ), semicolon: 52, }, ), Expression( ExpressionStatement { comments: CommentGroup { comments: [], }, expression: AssignmentOperation( Assignment { comments: CommentGroup { comments: [], }, left: Variable( Variable { position: 58, name: "$c", }, ), equals: 61, right: BitwiseOperation( Not { comments: CommentGroup { comments: [], }, not: 63, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "2", position: 64, }, ), ), }, ), }, ), semicolon: 65, }, ), Expression( ExpressionStatement { comments: CommentGroup { comments: [], }, expression: AssignmentOperation( Assignment { comments: CommentGroup { comments: [], }, left: Variable( Variable { position: 71, name: "$d", }, ), equals: 74, right: ArithmeticOperation( PreDecrement { comments: CommentGroup { comments: [], }, decrement: 76, right: Variable( Variable { position: 78, name: "$b", }, ), }, ), }, ), semicolon: 80, }, ), Expression( ExpressionStatement { comments: CommentGroup { comments: [], }, expression: AssignmentOperation( Assignment { comments: CommentGroup { comments: [], }, left: Variable( Variable { position: 86, name: "$e", }, ), equals: 89, right: ArithmeticOperation( PreIncrement { comments: CommentGroup { comments: [], }, increment: 91, right: Variable( Variable { position: 93, name: "$d", }, ), }, ), }, ), semicolon: 95, }, ), ], right_brace: 97, }, }, ), ], eof: 99, }