--- source: tests/e2e.rs assertion_line: 30 expression: "std::str::from_utf8(&output.stdout).unwrap()" input_file: examples/foo --- [ Function { ident: Ident( "main", ), params: [], declaration: [ Declaration { ident: Ident( "five", ), value: Sum { leading: Product { leading: Unary { minus: 0, atom: NumLit( NumLit( 5, None, ), ), }, trailing: [], }, trailing: [], }, }, Declaration { ident: Ident( "eight", ), value: Sum { leading: Product { leading: Unary { minus: 0, atom: NumLit( NumLit( 3, None, ), ), }, trailing: [], }, trailing: [ TrailingProduct { add_or_sub: Plus, product: Product { leading: Unary { minus: 0, atom: Ident( Ident( "five", ), ), }, trailing: [], }, }, ], }, }, ], body: Sum { leading: Product { leading: Unary { minus: 0, atom: FnCall( FnCall { ident: Ident( "add", ), args: [ Sum { leading: Product { leading: Unary { minus: 0, atom: Ident( Ident( "five", ), ), }, trailing: [], }, trailing: [], }, Sum { leading: Product { leading: Unary { minus: 0, atom: Ident( Ident( "eight", ), ), }, trailing: [], }, trailing: [], }, ], }, ), }, trailing: [], }, trailing: [], }, }, Function { ident: Ident( "add", ), params: [ Ident( "x", ), Ident( "y", ), ], declaration: [], body: Sum { leading: Product { leading: Unary { minus: 0, atom: Ident( Ident( "x", ), ), }, trailing: [], }, trailing: [ TrailingProduct { add_or_sub: Plus, product: Product { leading: Unary { minus: 0, atom: Ident( Ident( "y", ), ), }, trailing: [], }, }, ], }, }, ]