Syntax trees: ======= recovery_ast_constructor/input.sol ======= PragmaDirective Source: "pragma solidity >=0.0.0;" ContractDefinition "Error1" Source: "contract Error1 {\n constructor() public {\n balances[tx.origin] = ; // missing RHS.\n }\n\n // Without error recovery we stop due to the above error.\n // Error recovery however recovers at the above ';'\n // There should be an AST for the above, albeit with error\n // nodes.\n\n // This function parses properly and should give AST info.\n function five() public view returns(uint) {\n return 5;\n }\n}" FunctionDefinition "" - public Source: "constructor() public {\n balances[tx.origin] = ; // missing RHS.\n }" ParameterList Source: "()" ParameterList Source: "" Block Source: "{\n balances[tx.origin] = ; // missing RHS.\n }" FunctionDefinition "five" - public - const Source: "function five() public view returns(uint) {\n return 5;\n }" ParameterList Source: "()" ParameterList Source: "(uint)" VariableDeclaration "" Type: uint256 Source: "uint" ElementaryTypeName uint Source: "uint" Block Source: "{\n return 5;\n }" Return Source: "return 5" Literal, token: [no token] value: 5 Type: int_const 5 Source: "5"