From 0d6c258068f38763594ab9882e6127ae40c65477 Mon Sep 17 00:00:00 2001 From: 0rphon <59403052+0rphon@users.noreply.github.com> Date: Mon, 14 Feb 2022 17:25:57 -0800 Subject: [PATCH 001/174] save progress --- cover.bat | 12 + parser/src/parser/type_.rs | 2 +- test.bat | 3 + .../parser/expression/unary/negate.leo.out | 21 + .../parser/parser/statement/assign.leo.out | 3035 +++++++++++++++++ .../parser/statement/assign_fail.leo.out | 17 + .../parser/statement/console_fail.leo.out | 6 + .../parser/statement/definition.leo.out | 129 + .../parser/statement/definition_fail.leo.out | 1 + tests/parser/expression/unary/negate.leo | 3 + tests/parser/statement/assign.leo | 159 + tests/parser/statement/assign_fail.leo | 30 + tests/parser/statement/console_fail.leo | 8 + tests/parser/statement/definition.leo | 5 + tests/parser/statement/definition_fail.leo | 2 + 15 files changed, 3432 insertions(+), 1 deletion(-) create mode 100644 cover.bat create mode 100644 test.bat create mode 100644 tests/expectations/parser/parser/statement/assign_fail.leo.out create mode 100644 tests/expectations/parser/parser/statement/console_fail.leo.out create mode 100644 tests/parser/statement/assign_fail.leo create mode 100644 tests/parser/statement/console_fail.leo diff --git a/cover.bat b/cover.bat new file mode 100644 index 0000000000..bab6ec621b --- /dev/null +++ b/cover.bat @@ -0,0 +1,12 @@ +set CLEAR_LEO_TEST_EXPECTATIONS= +cargo clean +cd parser +set RUSTFLAGS=-Cinstrument-coverage +cargo +nightly build +set LLVM_PROFILE_FILE=../target/out/leo_coverage-%%p-%%m.profraw +cargo +nightly test -- test::parser_tests --exact --nocapture +grcov ../target/out -s . --binary-path ../target/debug/ -t html --branch --ignore-not-existing -o ../target/debug/coverage/ +cd .. +del default.profraw +set RUSTFLAGS= +set LLVM_PROFILE_FILE= \ No newline at end of file diff --git a/parser/src/parser/type_.rs b/parser/src/parser/type_.rs index 37470530ce..53f11e4c9e 100644 --- a/parser/src/parser/type_.rs +++ b/parser/src/parser/type_.rs @@ -53,7 +53,7 @@ impl ParserContext<'_> { Token::U32 => IntegerType::U32, Token::U64 => IntegerType::U64, Token::U128 => IntegerType::U128, - _ => return None, + _ => return None, // todo 0rphon: unreachable }) } diff --git a/test.bat b/test.bat new file mode 100644 index 0000000000..7057d199df --- /dev/null +++ b/test.bat @@ -0,0 +1,3 @@ +set CLEAR_LEO_TEST_EXPECTATIONS=1 +cargo test --package leo-parser --lib -- test::parser_tests --exact --nocapture +set CLEAR_LEO_TEST_EXPECTATIONS= \ No newline at end of file diff --git a/tests/expectations/parser/parser/expression/unary/negate.leo.out b/tests/expectations/parser/parser/expression/unary/negate.leo.out index 649b722072..03766862d2 100644 --- a/tests/expectations/parser/parser/expression/unary/negate.leo.out +++ b/tests/expectations/parser/parser/expression/unary/negate.leo.out @@ -122,3 +122,24 @@ outputs: col_stop: 4 path: "" content: "-!x" + - Value: + Implicit: + - "-5" + - span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 3 + path: "" + content: "-5" + - Value: + Integer: + - I8 + - "-5" + - span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 5 + path: "" + content: "-5i8" diff --git a/tests/expectations/parser/parser/statement/assign.leo.out b/tests/expectations/parser/parser/statement/assign.leo.out index eb3d7ef675..b0ccc8ac1b 100644 --- a/tests/expectations/parser/parser/statement/assign.leo.out +++ b/tests/expectations/parser/parser/statement/assign.leo.out @@ -418,3 +418,3038 @@ outputs: col_stop: 15 path: "" content: "x.0[0][..] = y;" + - Assign: + operation: Assign + assignee: + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":2,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x.y = y;\\\"}\"}" + accesses: + - Member: "{\"name\":\"y\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":3,\\\"col_stop\\\":4,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x.y = y;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 4 + path: "" + content: x.y = y; + value: + Identifier: "{\"name\":\"y\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":7,\\\"col_stop\\\":8,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x.y = y;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 8 + path: "" + content: x.y = y; + - Assign: + operation: Assign + assignee: + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":2,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x.0.y[0].1.y[..][0][1..5][0..3] = y;\\\"}\"}" + accesses: + - Tuple: + - value: "0" + - span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 4 + path: "" + content: "x.0.y[0].1.y[..][0][1..5][0..3] = y;" + - Member: "{\"name\":\"y\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":5,\\\"col_stop\\\":6,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x.0.y[0].1.y[..][0][1..5][0..3] = y;\\\"}\"}" + - ArrayIndex: + Value: + Implicit: + - "0" + - span: + line_start: 1 + line_stop: 1 + col_start: 7 + col_stop: 8 + path: "" + content: "x.0.y[0].1.y[..][0][1..5][0..3] = y;" + - Tuple: + - value: "1" + - span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 11 + path: "" + content: "x.0.y[0].1.y[..][0][1..5][0..3] = y;" + - Member: "{\"name\":\"y\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":12,\\\"col_stop\\\":13,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x.0.y[0].1.y[..][0][1..5][0..3] = y;\\\"}\"}" + - ArrayRange: + - ~ + - ~ + - ArrayIndex: + Value: + Implicit: + - "0" + - span: + line_start: 1 + line_stop: 1 + col_start: 18 + col_stop: 19 + path: "" + content: "x.0.y[0].1.y[..][0][1..5][0..3] = y;" + - ArrayRange: + - Value: + Implicit: + - "1" + - span: + line_start: 1 + line_stop: 1 + col_start: 21 + col_stop: 22 + path: "" + content: "x.0.y[0].1.y[..][0][1..5][0..3] = y;" + - Value: + Implicit: + - "5" + - span: + line_start: 1 + line_stop: 1 + col_start: 24 + col_stop: 25 + path: "" + content: "x.0.y[0].1.y[..][0][1..5][0..3] = y;" + - ArrayRange: + - Value: + Implicit: + - "0" + - span: + line_start: 1 + line_stop: 1 + col_start: 27 + col_stop: 28 + path: "" + content: "x.0.y[0].1.y[..][0][1..5][0..3] = y;" + - Value: + Implicit: + - "3" + - span: + line_start: 1 + line_stop: 1 + col_start: 30 + col_stop: 31 + path: "" + content: "x.0.y[0].1.y[..][0][1..5][0..3] = y;" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 32 + path: "" + content: "x.0.y[0].1.y[..][0][1..5][0..3] = y;" + value: + Identifier: "{\"name\":\"y\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":35,\\\"col_stop\\\":36,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x.0.y[0].1.y[..][0][1..5][0..3] = y;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 36 + path: "" + content: "x.0.y[0].1.y[..][0][1..5][0..3] = y;" + - Assign: + operation: Add + assignee: + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":2,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x += expr;\\\"}\"}" + accesses: [] + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 2 + path: "" + content: x += expr; + value: + Identifier: "{\"name\":\"expr\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":6,\\\"col_stop\\\":10,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x += expr;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 10 + path: "" + content: x += expr; + - Assign: + operation: Add + assignee: + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":2,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x += ();\\\"}\"}" + accesses: [] + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 2 + path: "" + content: x += (); + value: + TupleInit: + elements: [] + span: + line_start: 1 + line_stop: 1 + col_start: 6 + col_stop: 8 + path: "" + content: x += (); + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 8 + path: "" + content: x += (); + - Assign: + operation: Add + assignee: + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":2,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x += x+y;\\\"}\"}" + accesses: [] + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 2 + path: "" + content: x += x+y; + value: + Binary: + left: + Identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":6,\\\"col_stop\\\":7,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x += x+y;\\\"}\"}" + right: + Identifier: "{\"name\":\"y\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":8,\\\"col_stop\\\":9,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x += x+y;\\\"}\"}" + op: Add + span: + line_start: 1 + line_stop: 1 + col_start: 6 + col_stop: 9 + path: "" + content: x += x+y; + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 9 + path: "" + content: x += x+y; + - Assign: + operation: Add + assignee: + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":2,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x += x();\\\"}\"}" + accesses: [] + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 2 + path: "" + content: x += x(); + value: + Call: + function: + Identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":6,\\\"col_stop\\\":7,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x += x();\\\"}\"}" + arguments: [] + span: + line_start: 1 + line_stop: 1 + col_start: 6 + col_stop: 9 + path: "" + content: x += x(); + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 9 + path: "" + content: x += x(); + - Assign: + operation: Add + assignee: + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":2,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x[0] += y;\\\"}\"}" + accesses: + - ArrayIndex: + Value: + Implicit: + - "0" + - span: + line_start: 1 + line_stop: 1 + col_start: 3 + col_stop: 4 + path: "" + content: "x[0] += y;" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 5 + path: "" + content: "x[0] += y;" + value: + Identifier: "{\"name\":\"y\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":9,\\\"col_stop\\\":10,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x[0] += y;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 10 + path: "" + content: "x[0] += y;" + - Assign: + operation: Add + assignee: + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":2,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x[0u32] += y;\\\"}\"}" + accesses: + - ArrayIndex: + Value: + Integer: + - U32 + - "0" + - span: + line_start: 1 + line_stop: 1 + col_start: 3 + col_stop: 7 + path: "" + content: "x[0u32] += y;" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 8 + path: "" + content: "x[0u32] += y;" + value: + Identifier: "{\"name\":\"y\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":12,\\\"col_stop\\\":13,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x[0u32] += y;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 13 + path: "" + content: "x[0u32] += y;" + - Assign: + operation: Add + assignee: + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":2,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x.0 += y;\\\"}\"}" + accesses: + - Tuple: + - value: "0" + - span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 4 + path: "" + content: x.0 += y; + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 4 + path: "" + content: x.0 += y; + value: + Identifier: "{\"name\":\"y\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":8,\\\"col_stop\\\":9,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x.0 += y;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 9 + path: "" + content: x.0 += y; + - Assign: + operation: Add + assignee: + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":2,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x[1..2][0] += y;\\\"}\"}" + accesses: + - ArrayRange: + - Value: + Implicit: + - "1" + - span: + line_start: 1 + line_stop: 1 + col_start: 3 + col_stop: 4 + path: "" + content: "x[1..2][0] += y;" + - Value: + Implicit: + - "2" + - span: + line_start: 1 + line_stop: 1 + col_start: 6 + col_stop: 7 + path: "" + content: "x[1..2][0] += y;" + - ArrayIndex: + Value: + Implicit: + - "0" + - span: + line_start: 1 + line_stop: 1 + col_start: 9 + col_stop: 10 + path: "" + content: "x[1..2][0] += y;" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 11 + path: "" + content: "x[1..2][0] += y;" + value: + Identifier: "{\"name\":\"y\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":15,\\\"col_stop\\\":16,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x[1..2][0] += y;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 16 + path: "" + content: "x[1..2][0] += y;" + - Assign: + operation: Add + assignee: + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":2,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x[..2][0] += y;\\\"}\"}" + accesses: + - ArrayRange: + - ~ + - Value: + Implicit: + - "2" + - span: + line_start: 1 + line_stop: 1 + col_start: 5 + col_stop: 6 + path: "" + content: "x[..2][0] += y;" + - ArrayIndex: + Value: + Implicit: + - "0" + - span: + line_start: 1 + line_stop: 1 + col_start: 8 + col_stop: 9 + path: "" + content: "x[..2][0] += y;" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 10 + path: "" + content: "x[..2][0] += y;" + value: + Identifier: "{\"name\":\"y\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":14,\\\"col_stop\\\":15,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x[..2][0] += y;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 15 + path: "" + content: "x[..2][0] += y;" + - Assign: + operation: Add + assignee: + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":2,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x[2..][0] += y;\\\"}\"}" + accesses: + - ArrayRange: + - Value: + Implicit: + - "2" + - span: + line_start: 1 + line_stop: 1 + col_start: 3 + col_stop: 4 + path: "" + content: "x[2..][0] += y;" + - ~ + - ArrayIndex: + Value: + Implicit: + - "0" + - span: + line_start: 1 + line_stop: 1 + col_start: 8 + col_stop: 9 + path: "" + content: "x[2..][0] += y;" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 10 + path: "" + content: "x[2..][0] += y;" + value: + Identifier: "{\"name\":\"y\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":14,\\\"col_stop\\\":15,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x[2..][0] += y;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 15 + path: "" + content: "x[2..][0] += y;" + - Assign: + operation: Add + assignee: + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":2,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x[..][0] += y;\\\"}\"}" + accesses: + - ArrayRange: + - ~ + - ~ + - ArrayIndex: + Value: + Implicit: + - "0" + - span: + line_start: 1 + line_stop: 1 + col_start: 7 + col_stop: 8 + path: "" + content: "x[..][0] += y;" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 9 + path: "" + content: "x[..][0] += y;" + value: + Identifier: "{\"name\":\"y\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":13,\\\"col_stop\\\":14,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x[..][0] += y;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 14 + path: "" + content: "x[..][0] += y;" + - Assign: + operation: Add + assignee: + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":2,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x.0[0][..][0] += y;\\\"}\"}" + accesses: + - Tuple: + - value: "0" + - span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 4 + path: "" + content: "x.0[0][..][0] += y;" + - ArrayIndex: + Value: + Implicit: + - "0" + - span: + line_start: 1 + line_stop: 1 + col_start: 5 + col_stop: 6 + path: "" + content: "x.0[0][..][0] += y;" + - ArrayRange: + - ~ + - ~ + - ArrayIndex: + Value: + Implicit: + - "0" + - span: + line_start: 1 + line_stop: 1 + col_start: 12 + col_stop: 13 + path: "" + content: "x.0[0][..][0] += y;" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 14 + path: "" + content: "x.0[0][..][0] += y;" + value: + Identifier: "{\"name\":\"y\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":18,\\\"col_stop\\\":19,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x.0[0][..][0] += y;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 19 + path: "" + content: "x.0[0][..][0] += y;" + - Assign: + operation: Add + assignee: + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":2,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x.y += y;\\\"}\"}" + accesses: + - Member: "{\"name\":\"y\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":3,\\\"col_stop\\\":4,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x.y += y;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 4 + path: "" + content: x.y += y; + value: + Identifier: "{\"name\":\"y\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":8,\\\"col_stop\\\":9,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x.y += y;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 9 + path: "" + content: x.y += y; + - Assign: + operation: Add + assignee: + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":2,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x.0.y[0].1.y[..][0][1..5][0..3][0] += y;\\\"}\"}" + accesses: + - Tuple: + - value: "0" + - span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 4 + path: "" + content: "x.0.y[0].1.y[..][0][1..5][0..3][0] += y;" + - Member: "{\"name\":\"y\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":5,\\\"col_stop\\\":6,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x.0.y[0].1.y[..][0][1..5][0..3][0] += y;\\\"}\"}" + - ArrayIndex: + Value: + Implicit: + - "0" + - span: + line_start: 1 + line_stop: 1 + col_start: 7 + col_stop: 8 + path: "" + content: "x.0.y[0].1.y[..][0][1..5][0..3][0] += y;" + - Tuple: + - value: "1" + - span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 11 + path: "" + content: "x.0.y[0].1.y[..][0][1..5][0..3][0] += y;" + - Member: "{\"name\":\"y\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":12,\\\"col_stop\\\":13,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x.0.y[0].1.y[..][0][1..5][0..3][0] += y;\\\"}\"}" + - ArrayRange: + - ~ + - ~ + - ArrayIndex: + Value: + Implicit: + - "0" + - span: + line_start: 1 + line_stop: 1 + col_start: 18 + col_stop: 19 + path: "" + content: "x.0.y[0].1.y[..][0][1..5][0..3][0] += y;" + - ArrayRange: + - Value: + Implicit: + - "1" + - span: + line_start: 1 + line_stop: 1 + col_start: 21 + col_stop: 22 + path: "" + content: "x.0.y[0].1.y[..][0][1..5][0..3][0] += y;" + - Value: + Implicit: + - "5" + - span: + line_start: 1 + line_stop: 1 + col_start: 24 + col_stop: 25 + path: "" + content: "x.0.y[0].1.y[..][0][1..5][0..3][0] += y;" + - ArrayRange: + - Value: + Implicit: + - "0" + - span: + line_start: 1 + line_stop: 1 + col_start: 27 + col_stop: 28 + path: "" + content: "x.0.y[0].1.y[..][0][1..5][0..3][0] += y;" + - Value: + Implicit: + - "3" + - span: + line_start: 1 + line_stop: 1 + col_start: 30 + col_stop: 31 + path: "" + content: "x.0.y[0].1.y[..][0][1..5][0..3][0] += y;" + - ArrayIndex: + Value: + Implicit: + - "0" + - span: + line_start: 1 + line_stop: 1 + col_start: 33 + col_stop: 34 + path: "" + content: "x.0.y[0].1.y[..][0][1..5][0..3][0] += y;" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 35 + path: "" + content: "x.0.y[0].1.y[..][0][1..5][0..3][0] += y;" + value: + Identifier: "{\"name\":\"y\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":39,\\\"col_stop\\\":40,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x.0.y[0].1.y[..][0][1..5][0..3][0] += y;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 40 + path: "" + content: "x.0.y[0].1.y[..][0][1..5][0..3][0] += y;" + - Assign: + operation: Sub + assignee: + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":2,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x -= expr;\\\"}\"}" + accesses: [] + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 2 + path: "" + content: x -= expr; + value: + Identifier: "{\"name\":\"expr\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":6,\\\"col_stop\\\":10,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x -= expr;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 10 + path: "" + content: x -= expr; + - Assign: + operation: Sub + assignee: + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":2,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x -= ();\\\"}\"}" + accesses: [] + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 2 + path: "" + content: x -= (); + value: + TupleInit: + elements: [] + span: + line_start: 1 + line_stop: 1 + col_start: 6 + col_stop: 8 + path: "" + content: x -= (); + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 8 + path: "" + content: x -= (); + - Assign: + operation: Sub + assignee: + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":2,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x -= x+y;\\\"}\"}" + accesses: [] + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 2 + path: "" + content: x -= x+y; + value: + Binary: + left: + Identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":6,\\\"col_stop\\\":7,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x -= x+y;\\\"}\"}" + right: + Identifier: "{\"name\":\"y\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":8,\\\"col_stop\\\":9,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x -= x+y;\\\"}\"}" + op: Add + span: + line_start: 1 + line_stop: 1 + col_start: 6 + col_stop: 9 + path: "" + content: x -= x+y; + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 9 + path: "" + content: x -= x+y; + - Assign: + operation: Sub + assignee: + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":2,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x -= x();\\\"}\"}" + accesses: [] + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 2 + path: "" + content: x -= x(); + value: + Call: + function: + Identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":6,\\\"col_stop\\\":7,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x -= x();\\\"}\"}" + arguments: [] + span: + line_start: 1 + line_stop: 1 + col_start: 6 + col_stop: 9 + path: "" + content: x -= x(); + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 9 + path: "" + content: x -= x(); + - Assign: + operation: Sub + assignee: + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":2,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x[0] -= y;\\\"}\"}" + accesses: + - ArrayIndex: + Value: + Implicit: + - "0" + - span: + line_start: 1 + line_stop: 1 + col_start: 3 + col_stop: 4 + path: "" + content: "x[0] -= y;" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 5 + path: "" + content: "x[0] -= y;" + value: + Identifier: "{\"name\":\"y\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":9,\\\"col_stop\\\":10,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x[0] -= y;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 10 + path: "" + content: "x[0] -= y;" + - Assign: + operation: Sub + assignee: + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":2,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x[0u32] -= y;\\\"}\"}" + accesses: + - ArrayIndex: + Value: + Integer: + - U32 + - "0" + - span: + line_start: 1 + line_stop: 1 + col_start: 3 + col_stop: 7 + path: "" + content: "x[0u32] -= y;" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 8 + path: "" + content: "x[0u32] -= y;" + value: + Identifier: "{\"name\":\"y\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":12,\\\"col_stop\\\":13,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x[0u32] -= y;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 13 + path: "" + content: "x[0u32] -= y;" + - Assign: + operation: Sub + assignee: + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":2,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x.0 -= y;\\\"}\"}" + accesses: + - Tuple: + - value: "0" + - span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 4 + path: "" + content: x.0 -= y; + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 4 + path: "" + content: x.0 -= y; + value: + Identifier: "{\"name\":\"y\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":8,\\\"col_stop\\\":9,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x.0 -= y;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 9 + path: "" + content: x.0 -= y; + - Assign: + operation: Sub + assignee: + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":2,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x[1..2][0] -= y;\\\"}\"}" + accesses: + - ArrayRange: + - Value: + Implicit: + - "1" + - span: + line_start: 1 + line_stop: 1 + col_start: 3 + col_stop: 4 + path: "" + content: "x[1..2][0] -= y;" + - Value: + Implicit: + - "2" + - span: + line_start: 1 + line_stop: 1 + col_start: 6 + col_stop: 7 + path: "" + content: "x[1..2][0] -= y;" + - ArrayIndex: + Value: + Implicit: + - "0" + - span: + line_start: 1 + line_stop: 1 + col_start: 9 + col_stop: 10 + path: "" + content: "x[1..2][0] -= y;" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 11 + path: "" + content: "x[1..2][0] -= y;" + value: + Identifier: "{\"name\":\"y\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":15,\\\"col_stop\\\":16,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x[1..2][0] -= y;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 16 + path: "" + content: "x[1..2][0] -= y;" + - Assign: + operation: Sub + assignee: + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":2,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x[..2][0] -= y;\\\"}\"}" + accesses: + - ArrayRange: + - ~ + - Value: + Implicit: + - "2" + - span: + line_start: 1 + line_stop: 1 + col_start: 5 + col_stop: 6 + path: "" + content: "x[..2][0] -= y;" + - ArrayIndex: + Value: + Implicit: + - "0" + - span: + line_start: 1 + line_stop: 1 + col_start: 8 + col_stop: 9 + path: "" + content: "x[..2][0] -= y;" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 10 + path: "" + content: "x[..2][0] -= y;" + value: + Identifier: "{\"name\":\"y\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":14,\\\"col_stop\\\":15,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x[..2][0] -= y;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 15 + path: "" + content: "x[..2][0] -= y;" + - Assign: + operation: Sub + assignee: + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":2,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x[2..][0] -= y;\\\"}\"}" + accesses: + - ArrayRange: + - Value: + Implicit: + - "2" + - span: + line_start: 1 + line_stop: 1 + col_start: 3 + col_stop: 4 + path: "" + content: "x[2..][0] -= y;" + - ~ + - ArrayIndex: + Value: + Implicit: + - "0" + - span: + line_start: 1 + line_stop: 1 + col_start: 8 + col_stop: 9 + path: "" + content: "x[2..][0] -= y;" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 10 + path: "" + content: "x[2..][0] -= y;" + value: + Identifier: "{\"name\":\"y\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":14,\\\"col_stop\\\":15,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x[2..][0] -= y;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 15 + path: "" + content: "x[2..][0] -= y;" + - Assign: + operation: Sub + assignee: + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":2,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x[..][0] -= y;\\\"}\"}" + accesses: + - ArrayRange: + - ~ + - ~ + - ArrayIndex: + Value: + Implicit: + - "0" + - span: + line_start: 1 + line_stop: 1 + col_start: 7 + col_stop: 8 + path: "" + content: "x[..][0] -= y;" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 9 + path: "" + content: "x[..][0] -= y;" + value: + Identifier: "{\"name\":\"y\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":13,\\\"col_stop\\\":14,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x[..][0] -= y;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 14 + path: "" + content: "x[..][0] -= y;" + - Assign: + operation: Sub + assignee: + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":2,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x.0[0][..][0] -= y;\\\"}\"}" + accesses: + - Tuple: + - value: "0" + - span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 4 + path: "" + content: "x.0[0][..][0] -= y;" + - ArrayIndex: + Value: + Implicit: + - "0" + - span: + line_start: 1 + line_stop: 1 + col_start: 5 + col_stop: 6 + path: "" + content: "x.0[0][..][0] -= y;" + - ArrayRange: + - ~ + - ~ + - ArrayIndex: + Value: + Implicit: + - "0" + - span: + line_start: 1 + line_stop: 1 + col_start: 12 + col_stop: 13 + path: "" + content: "x.0[0][..][0] -= y;" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 14 + path: "" + content: "x.0[0][..][0] -= y;" + value: + Identifier: "{\"name\":\"y\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":18,\\\"col_stop\\\":19,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x.0[0][..][0] -= y;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 19 + path: "" + content: "x.0[0][..][0] -= y;" + - Assign: + operation: Sub + assignee: + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":2,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x.y -= y;\\\"}\"}" + accesses: + - Member: "{\"name\":\"y\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":3,\\\"col_stop\\\":4,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x.y -= y;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 4 + path: "" + content: x.y -= y; + value: + Identifier: "{\"name\":\"y\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":8,\\\"col_stop\\\":9,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x.y -= y;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 9 + path: "" + content: x.y -= y; + - Assign: + operation: Sub + assignee: + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":2,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x.0.y[0].1.y[..][0][1..5][0..3][0] -= y;\\\"}\"}" + accesses: + - Tuple: + - value: "0" + - span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 4 + path: "" + content: "x.0.y[0].1.y[..][0][1..5][0..3][0] -= y;" + - Member: "{\"name\":\"y\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":5,\\\"col_stop\\\":6,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x.0.y[0].1.y[..][0][1..5][0..3][0] -= y;\\\"}\"}" + - ArrayIndex: + Value: + Implicit: + - "0" + - span: + line_start: 1 + line_stop: 1 + col_start: 7 + col_stop: 8 + path: "" + content: "x.0.y[0].1.y[..][0][1..5][0..3][0] -= y;" + - Tuple: + - value: "1" + - span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 11 + path: "" + content: "x.0.y[0].1.y[..][0][1..5][0..3][0] -= y;" + - Member: "{\"name\":\"y\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":12,\\\"col_stop\\\":13,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x.0.y[0].1.y[..][0][1..5][0..3][0] -= y;\\\"}\"}" + - ArrayRange: + - ~ + - ~ + - ArrayIndex: + Value: + Implicit: + - "0" + - span: + line_start: 1 + line_stop: 1 + col_start: 18 + col_stop: 19 + path: "" + content: "x.0.y[0].1.y[..][0][1..5][0..3][0] -= y;" + - ArrayRange: + - Value: + Implicit: + - "1" + - span: + line_start: 1 + line_stop: 1 + col_start: 21 + col_stop: 22 + path: "" + content: "x.0.y[0].1.y[..][0][1..5][0..3][0] -= y;" + - Value: + Implicit: + - "5" + - span: + line_start: 1 + line_stop: 1 + col_start: 24 + col_stop: 25 + path: "" + content: "x.0.y[0].1.y[..][0][1..5][0..3][0] -= y;" + - ArrayRange: + - Value: + Implicit: + - "0" + - span: + line_start: 1 + line_stop: 1 + col_start: 27 + col_stop: 28 + path: "" + content: "x.0.y[0].1.y[..][0][1..5][0..3][0] -= y;" + - Value: + Implicit: + - "3" + - span: + line_start: 1 + line_stop: 1 + col_start: 30 + col_stop: 31 + path: "" + content: "x.0.y[0].1.y[..][0][1..5][0..3][0] -= y;" + - ArrayIndex: + Value: + Implicit: + - "0" + - span: + line_start: 1 + line_stop: 1 + col_start: 33 + col_stop: 34 + path: "" + content: "x.0.y[0].1.y[..][0][1..5][0..3][0] -= y;" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 35 + path: "" + content: "x.0.y[0].1.y[..][0][1..5][0..3][0] -= y;" + value: + Identifier: "{\"name\":\"y\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":39,\\\"col_stop\\\":40,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x.0.y[0].1.y[..][0][1..5][0..3][0] -= y;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 40 + path: "" + content: "x.0.y[0].1.y[..][0][1..5][0..3][0] -= y;" + - Assign: + operation: Mul + assignee: + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":2,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x *= expr;\\\"}\"}" + accesses: [] + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 2 + path: "" + content: x *= expr; + value: + Identifier: "{\"name\":\"expr\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":6,\\\"col_stop\\\":10,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x *= expr;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 10 + path: "" + content: x *= expr; + - Assign: + operation: Mul + assignee: + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":2,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x *= ();\\\"}\"}" + accesses: [] + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 2 + path: "" + content: x *= (); + value: + TupleInit: + elements: [] + span: + line_start: 1 + line_stop: 1 + col_start: 6 + col_stop: 8 + path: "" + content: x *= (); + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 8 + path: "" + content: x *= (); + - Assign: + operation: Mul + assignee: + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":2,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x *= x+y;\\\"}\"}" + accesses: [] + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 2 + path: "" + content: x *= x+y; + value: + Binary: + left: + Identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":6,\\\"col_stop\\\":7,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x *= x+y;\\\"}\"}" + right: + Identifier: "{\"name\":\"y\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":8,\\\"col_stop\\\":9,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x *= x+y;\\\"}\"}" + op: Add + span: + line_start: 1 + line_stop: 1 + col_start: 6 + col_stop: 9 + path: "" + content: x *= x+y; + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 9 + path: "" + content: x *= x+y; + - Assign: + operation: Mul + assignee: + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":2,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x *= x();\\\"}\"}" + accesses: [] + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 2 + path: "" + content: x *= x(); + value: + Call: + function: + Identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":6,\\\"col_stop\\\":7,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x *= x();\\\"}\"}" + arguments: [] + span: + line_start: 1 + line_stop: 1 + col_start: 6 + col_stop: 9 + path: "" + content: x *= x(); + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 9 + path: "" + content: x *= x(); + - Assign: + operation: Mul + assignee: + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":2,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x[0] *= y;\\\"}\"}" + accesses: + - ArrayIndex: + Value: + Implicit: + - "0" + - span: + line_start: 1 + line_stop: 1 + col_start: 3 + col_stop: 4 + path: "" + content: "x[0] *= y;" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 5 + path: "" + content: "x[0] *= y;" + value: + Identifier: "{\"name\":\"y\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":9,\\\"col_stop\\\":10,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x[0] *= y;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 10 + path: "" + content: "x[0] *= y;" + - Assign: + operation: Mul + assignee: + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":2,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x[0u32] *= y;\\\"}\"}" + accesses: + - ArrayIndex: + Value: + Integer: + - U32 + - "0" + - span: + line_start: 1 + line_stop: 1 + col_start: 3 + col_stop: 7 + path: "" + content: "x[0u32] *= y;" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 8 + path: "" + content: "x[0u32] *= y;" + value: + Identifier: "{\"name\":\"y\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":12,\\\"col_stop\\\":13,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x[0u32] *= y;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 13 + path: "" + content: "x[0u32] *= y;" + - Assign: + operation: Mul + assignee: + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":2,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x.0 *= y;\\\"}\"}" + accesses: + - Tuple: + - value: "0" + - span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 4 + path: "" + content: x.0 *= y; + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 4 + path: "" + content: x.0 *= y; + value: + Identifier: "{\"name\":\"y\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":8,\\\"col_stop\\\":9,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x.0 *= y;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 9 + path: "" + content: x.0 *= y; + - Assign: + operation: Mul + assignee: + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":2,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x[1..2][0] *= y;\\\"}\"}" + accesses: + - ArrayRange: + - Value: + Implicit: + - "1" + - span: + line_start: 1 + line_stop: 1 + col_start: 3 + col_stop: 4 + path: "" + content: "x[1..2][0] *= y;" + - Value: + Implicit: + - "2" + - span: + line_start: 1 + line_stop: 1 + col_start: 6 + col_stop: 7 + path: "" + content: "x[1..2][0] *= y;" + - ArrayIndex: + Value: + Implicit: + - "0" + - span: + line_start: 1 + line_stop: 1 + col_start: 9 + col_stop: 10 + path: "" + content: "x[1..2][0] *= y;" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 11 + path: "" + content: "x[1..2][0] *= y;" + value: + Identifier: "{\"name\":\"y\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":15,\\\"col_stop\\\":16,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x[1..2][0] *= y;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 16 + path: "" + content: "x[1..2][0] *= y;" + - Assign: + operation: Mul + assignee: + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":2,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x[..2][0] *= y;\\\"}\"}" + accesses: + - ArrayRange: + - ~ + - Value: + Implicit: + - "2" + - span: + line_start: 1 + line_stop: 1 + col_start: 5 + col_stop: 6 + path: "" + content: "x[..2][0] *= y;" + - ArrayIndex: + Value: + Implicit: + - "0" + - span: + line_start: 1 + line_stop: 1 + col_start: 8 + col_stop: 9 + path: "" + content: "x[..2][0] *= y;" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 10 + path: "" + content: "x[..2][0] *= y;" + value: + Identifier: "{\"name\":\"y\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":14,\\\"col_stop\\\":15,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x[..2][0] *= y;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 15 + path: "" + content: "x[..2][0] *= y;" + - Assign: + operation: Mul + assignee: + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":2,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x[2..][0] *= y;\\\"}\"}" + accesses: + - ArrayRange: + - Value: + Implicit: + - "2" + - span: + line_start: 1 + line_stop: 1 + col_start: 3 + col_stop: 4 + path: "" + content: "x[2..][0] *= y;" + - ~ + - ArrayIndex: + Value: + Implicit: + - "0" + - span: + line_start: 1 + line_stop: 1 + col_start: 8 + col_stop: 9 + path: "" + content: "x[2..][0] *= y;" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 10 + path: "" + content: "x[2..][0] *= y;" + value: + Identifier: "{\"name\":\"y\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":14,\\\"col_stop\\\":15,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x[2..][0] *= y;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 15 + path: "" + content: "x[2..][0] *= y;" + - Assign: + operation: Mul + assignee: + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":2,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x[..][0] *= y;\\\"}\"}" + accesses: + - ArrayRange: + - ~ + - ~ + - ArrayIndex: + Value: + Implicit: + - "0" + - span: + line_start: 1 + line_stop: 1 + col_start: 7 + col_stop: 8 + path: "" + content: "x[..][0] *= y;" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 9 + path: "" + content: "x[..][0] *= y;" + value: + Identifier: "{\"name\":\"y\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":13,\\\"col_stop\\\":14,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x[..][0] *= y;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 14 + path: "" + content: "x[..][0] *= y;" + - Assign: + operation: Mul + assignee: + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":2,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x.0[0][..][0] *= y;\\\"}\"}" + accesses: + - Tuple: + - value: "0" + - span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 4 + path: "" + content: "x.0[0][..][0] *= y;" + - ArrayIndex: + Value: + Implicit: + - "0" + - span: + line_start: 1 + line_stop: 1 + col_start: 5 + col_stop: 6 + path: "" + content: "x.0[0][..][0] *= y;" + - ArrayRange: + - ~ + - ~ + - ArrayIndex: + Value: + Implicit: + - "0" + - span: + line_start: 1 + line_stop: 1 + col_start: 12 + col_stop: 13 + path: "" + content: "x.0[0][..][0] *= y;" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 14 + path: "" + content: "x.0[0][..][0] *= y;" + value: + Identifier: "{\"name\":\"y\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":18,\\\"col_stop\\\":19,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x.0[0][..][0] *= y;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 19 + path: "" + content: "x.0[0][..][0] *= y;" + - Assign: + operation: Mul + assignee: + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":2,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x.y *= y;\\\"}\"}" + accesses: + - Member: "{\"name\":\"y\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":3,\\\"col_stop\\\":4,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x.y *= y;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 4 + path: "" + content: x.y *= y; + value: + Identifier: "{\"name\":\"y\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":8,\\\"col_stop\\\":9,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x.y *= y;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 9 + path: "" + content: x.y *= y; + - Assign: + operation: Mul + assignee: + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":2,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x.0.y[0].1.y[..][0][1..5][0..3][0] *= y;\\\"}\"}" + accesses: + - Tuple: + - value: "0" + - span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 4 + path: "" + content: "x.0.y[0].1.y[..][0][1..5][0..3][0] *= y;" + - Member: "{\"name\":\"y\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":5,\\\"col_stop\\\":6,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x.0.y[0].1.y[..][0][1..5][0..3][0] *= y;\\\"}\"}" + - ArrayIndex: + Value: + Implicit: + - "0" + - span: + line_start: 1 + line_stop: 1 + col_start: 7 + col_stop: 8 + path: "" + content: "x.0.y[0].1.y[..][0][1..5][0..3][0] *= y;" + - Tuple: + - value: "1" + - span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 11 + path: "" + content: "x.0.y[0].1.y[..][0][1..5][0..3][0] *= y;" + - Member: "{\"name\":\"y\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":12,\\\"col_stop\\\":13,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x.0.y[0].1.y[..][0][1..5][0..3][0] *= y;\\\"}\"}" + - ArrayRange: + - ~ + - ~ + - ArrayIndex: + Value: + Implicit: + - "0" + - span: + line_start: 1 + line_stop: 1 + col_start: 18 + col_stop: 19 + path: "" + content: "x.0.y[0].1.y[..][0][1..5][0..3][0] *= y;" + - ArrayRange: + - Value: + Implicit: + - "1" + - span: + line_start: 1 + line_stop: 1 + col_start: 21 + col_stop: 22 + path: "" + content: "x.0.y[0].1.y[..][0][1..5][0..3][0] *= y;" + - Value: + Implicit: + - "5" + - span: + line_start: 1 + line_stop: 1 + col_start: 24 + col_stop: 25 + path: "" + content: "x.0.y[0].1.y[..][0][1..5][0..3][0] *= y;" + - ArrayRange: + - Value: + Implicit: + - "0" + - span: + line_start: 1 + line_stop: 1 + col_start: 27 + col_stop: 28 + path: "" + content: "x.0.y[0].1.y[..][0][1..5][0..3][0] *= y;" + - Value: + Implicit: + - "3" + - span: + line_start: 1 + line_stop: 1 + col_start: 30 + col_stop: 31 + path: "" + content: "x.0.y[0].1.y[..][0][1..5][0..3][0] *= y;" + - ArrayIndex: + Value: + Implicit: + - "0" + - span: + line_start: 1 + line_stop: 1 + col_start: 33 + col_stop: 34 + path: "" + content: "x.0.y[0].1.y[..][0][1..5][0..3][0] *= y;" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 35 + path: "" + content: "x.0.y[0].1.y[..][0][1..5][0..3][0] *= y;" + value: + Identifier: "{\"name\":\"y\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":39,\\\"col_stop\\\":40,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x.0.y[0].1.y[..][0][1..5][0..3][0] *= y;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 40 + path: "" + content: "x.0.y[0].1.y[..][0][1..5][0..3][0] *= y;" + - Assign: + operation: Div + assignee: + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":2,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x /= expr;\\\"}\"}" + accesses: [] + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 2 + path: "" + content: x /= expr; + value: + Identifier: "{\"name\":\"expr\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":6,\\\"col_stop\\\":10,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x /= expr;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 10 + path: "" + content: x /= expr; + - Assign: + operation: Div + assignee: + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":2,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x /= ();\\\"}\"}" + accesses: [] + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 2 + path: "" + content: x /= (); + value: + TupleInit: + elements: [] + span: + line_start: 1 + line_stop: 1 + col_start: 6 + col_stop: 8 + path: "" + content: x /= (); + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 8 + path: "" + content: x /= (); + - Assign: + operation: Div + assignee: + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":2,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x /= x+y;\\\"}\"}" + accesses: [] + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 2 + path: "" + content: x /= x+y; + value: + Binary: + left: + Identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":6,\\\"col_stop\\\":7,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x /= x+y;\\\"}\"}" + right: + Identifier: "{\"name\":\"y\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":8,\\\"col_stop\\\":9,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x /= x+y;\\\"}\"}" + op: Add + span: + line_start: 1 + line_stop: 1 + col_start: 6 + col_stop: 9 + path: "" + content: x /= x+y; + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 9 + path: "" + content: x /= x+y; + - Assign: + operation: Div + assignee: + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":2,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x /= x();\\\"}\"}" + accesses: [] + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 2 + path: "" + content: x /= x(); + value: + Call: + function: + Identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":6,\\\"col_stop\\\":7,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x /= x();\\\"}\"}" + arguments: [] + span: + line_start: 1 + line_stop: 1 + col_start: 6 + col_stop: 9 + path: "" + content: x /= x(); + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 9 + path: "" + content: x /= x(); + - Assign: + operation: Div + assignee: + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":2,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x[0] /= y;\\\"}\"}" + accesses: + - ArrayIndex: + Value: + Implicit: + - "0" + - span: + line_start: 1 + line_stop: 1 + col_start: 3 + col_stop: 4 + path: "" + content: "x[0] /= y;" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 5 + path: "" + content: "x[0] /= y;" + value: + Identifier: "{\"name\":\"y\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":9,\\\"col_stop\\\":10,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x[0] /= y;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 10 + path: "" + content: "x[0] /= y;" + - Assign: + operation: Div + assignee: + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":2,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x[0u32] /= y;\\\"}\"}" + accesses: + - ArrayIndex: + Value: + Integer: + - U32 + - "0" + - span: + line_start: 1 + line_stop: 1 + col_start: 3 + col_stop: 7 + path: "" + content: "x[0u32] /= y;" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 8 + path: "" + content: "x[0u32] /= y;" + value: + Identifier: "{\"name\":\"y\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":12,\\\"col_stop\\\":13,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x[0u32] /= y;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 13 + path: "" + content: "x[0u32] /= y;" + - Assign: + operation: Div + assignee: + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":2,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x.0 /= y;\\\"}\"}" + accesses: + - Tuple: + - value: "0" + - span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 4 + path: "" + content: x.0 /= y; + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 4 + path: "" + content: x.0 /= y; + value: + Identifier: "{\"name\":\"y\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":8,\\\"col_stop\\\":9,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x.0 /= y;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 9 + path: "" + content: x.0 /= y; + - Assign: + operation: Div + assignee: + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":2,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x[1..2][0] /= y;\\\"}\"}" + accesses: + - ArrayRange: + - Value: + Implicit: + - "1" + - span: + line_start: 1 + line_stop: 1 + col_start: 3 + col_stop: 4 + path: "" + content: "x[1..2][0] /= y;" + - Value: + Implicit: + - "2" + - span: + line_start: 1 + line_stop: 1 + col_start: 6 + col_stop: 7 + path: "" + content: "x[1..2][0] /= y;" + - ArrayIndex: + Value: + Implicit: + - "0" + - span: + line_start: 1 + line_stop: 1 + col_start: 9 + col_stop: 10 + path: "" + content: "x[1..2][0] /= y;" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 11 + path: "" + content: "x[1..2][0] /= y;" + value: + Identifier: "{\"name\":\"y\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":15,\\\"col_stop\\\":16,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x[1..2][0] /= y;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 16 + path: "" + content: "x[1..2][0] /= y;" + - Assign: + operation: Div + assignee: + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":2,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x[..2][0] /= y;\\\"}\"}" + accesses: + - ArrayRange: + - ~ + - Value: + Implicit: + - "2" + - span: + line_start: 1 + line_stop: 1 + col_start: 5 + col_stop: 6 + path: "" + content: "x[..2][0] /= y;" + - ArrayIndex: + Value: + Implicit: + - "0" + - span: + line_start: 1 + line_stop: 1 + col_start: 8 + col_stop: 9 + path: "" + content: "x[..2][0] /= y;" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 10 + path: "" + content: "x[..2][0] /= y;" + value: + Identifier: "{\"name\":\"y\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":14,\\\"col_stop\\\":15,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x[..2][0] /= y;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 15 + path: "" + content: "x[..2][0] /= y;" + - Assign: + operation: Div + assignee: + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":2,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x[2..][0] /= y;\\\"}\"}" + accesses: + - ArrayRange: + - Value: + Implicit: + - "2" + - span: + line_start: 1 + line_stop: 1 + col_start: 3 + col_stop: 4 + path: "" + content: "x[2..][0] /= y;" + - ~ + - ArrayIndex: + Value: + Implicit: + - "0" + - span: + line_start: 1 + line_stop: 1 + col_start: 8 + col_stop: 9 + path: "" + content: "x[2..][0] /= y;" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 10 + path: "" + content: "x[2..][0] /= y;" + value: + Identifier: "{\"name\":\"y\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":14,\\\"col_stop\\\":15,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x[2..][0] /= y;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 15 + path: "" + content: "x[2..][0] /= y;" + - Assign: + operation: Div + assignee: + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":2,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x[..][0] /= y;\\\"}\"}" + accesses: + - ArrayRange: + - ~ + - ~ + - ArrayIndex: + Value: + Implicit: + - "0" + - span: + line_start: 1 + line_stop: 1 + col_start: 7 + col_stop: 8 + path: "" + content: "x[..][0] /= y;" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 9 + path: "" + content: "x[..][0] /= y;" + value: + Identifier: "{\"name\":\"y\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":13,\\\"col_stop\\\":14,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x[..][0] /= y;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 14 + path: "" + content: "x[..][0] /= y;" + - Assign: + operation: Div + assignee: + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":2,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x.0[0][..][0] /= y;\\\"}\"}" + accesses: + - Tuple: + - value: "0" + - span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 4 + path: "" + content: "x.0[0][..][0] /= y;" + - ArrayIndex: + Value: + Implicit: + - "0" + - span: + line_start: 1 + line_stop: 1 + col_start: 5 + col_stop: 6 + path: "" + content: "x.0[0][..][0] /= y;" + - ArrayRange: + - ~ + - ~ + - ArrayIndex: + Value: + Implicit: + - "0" + - span: + line_start: 1 + line_stop: 1 + col_start: 12 + col_stop: 13 + path: "" + content: "x.0[0][..][0] /= y;" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 14 + path: "" + content: "x.0[0][..][0] /= y;" + value: + Identifier: "{\"name\":\"y\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":18,\\\"col_stop\\\":19,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x.0[0][..][0] /= y;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 19 + path: "" + content: "x.0[0][..][0] /= y;" + - Assign: + operation: Div + assignee: + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":2,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x.y /= y;\\\"}\"}" + accesses: + - Member: "{\"name\":\"y\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":3,\\\"col_stop\\\":4,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x.y /= y;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 4 + path: "" + content: x.y /= y; + value: + Identifier: "{\"name\":\"y\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":8,\\\"col_stop\\\":9,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x.y /= y;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 9 + path: "" + content: x.y /= y; + - Assign: + operation: Div + assignee: + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":2,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x.0.y[0].1.y[..][0][1..5][0..3][0] /= y;\\\"}\"}" + accesses: + - Tuple: + - value: "0" + - span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 4 + path: "" + content: "x.0.y[0].1.y[..][0][1..5][0..3][0] /= y;" + - Member: "{\"name\":\"y\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":5,\\\"col_stop\\\":6,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x.0.y[0].1.y[..][0][1..5][0..3][0] /= y;\\\"}\"}" + - ArrayIndex: + Value: + Implicit: + - "0" + - span: + line_start: 1 + line_stop: 1 + col_start: 7 + col_stop: 8 + path: "" + content: "x.0.y[0].1.y[..][0][1..5][0..3][0] /= y;" + - Tuple: + - value: "1" + - span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 11 + path: "" + content: "x.0.y[0].1.y[..][0][1..5][0..3][0] /= y;" + - Member: "{\"name\":\"y\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":12,\\\"col_stop\\\":13,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x.0.y[0].1.y[..][0][1..5][0..3][0] /= y;\\\"}\"}" + - ArrayRange: + - ~ + - ~ + - ArrayIndex: + Value: + Implicit: + - "0" + - span: + line_start: 1 + line_stop: 1 + col_start: 18 + col_stop: 19 + path: "" + content: "x.0.y[0].1.y[..][0][1..5][0..3][0] /= y;" + - ArrayRange: + - Value: + Implicit: + - "1" + - span: + line_start: 1 + line_stop: 1 + col_start: 21 + col_stop: 22 + path: "" + content: "x.0.y[0].1.y[..][0][1..5][0..3][0] /= y;" + - Value: + Implicit: + - "5" + - span: + line_start: 1 + line_stop: 1 + col_start: 24 + col_stop: 25 + path: "" + content: "x.0.y[0].1.y[..][0][1..5][0..3][0] /= y;" + - ArrayRange: + - Value: + Implicit: + - "0" + - span: + line_start: 1 + line_stop: 1 + col_start: 27 + col_stop: 28 + path: "" + content: "x.0.y[0].1.y[..][0][1..5][0..3][0] /= y;" + - Value: + Implicit: + - "3" + - span: + line_start: 1 + line_stop: 1 + col_start: 30 + col_stop: 31 + path: "" + content: "x.0.y[0].1.y[..][0][1..5][0..3][0] /= y;" + - ArrayIndex: + Value: + Implicit: + - "0" + - span: + line_start: 1 + line_stop: 1 + col_start: 33 + col_stop: 34 + path: "" + content: "x.0.y[0].1.y[..][0][1..5][0..3][0] /= y;" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 35 + path: "" + content: "x.0.y[0].1.y[..][0][1..5][0..3][0] /= y;" + value: + Identifier: "{\"name\":\"y\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":39,\\\"col_stop\\\":40,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x.0.y[0].1.y[..][0][1..5][0..3][0] /= y;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 40 + path: "" + content: "x.0.y[0].1.y[..][0][1..5][0..3][0] /= y;" + - Assign: + operation: Pow + assignee: + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":2,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x **= expr;\\\"}\"}" + accesses: [] + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 2 + path: "" + content: x **= expr; + value: + Identifier: "{\"name\":\"expr\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":7,\\\"col_stop\\\":11,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x **= expr;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 11 + path: "" + content: x **= expr; + - Assign: + operation: Pow + assignee: + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":2,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x **= ();\\\"}\"}" + accesses: [] + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 2 + path: "" + content: x **= (); + value: + TupleInit: + elements: [] + span: + line_start: 1 + line_stop: 1 + col_start: 7 + col_stop: 9 + path: "" + content: x **= (); + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 9 + path: "" + content: x **= (); + - Assign: + operation: Pow + assignee: + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":2,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x **= x+y;\\\"}\"}" + accesses: [] + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 2 + path: "" + content: x **= x+y; + value: + Binary: + left: + Identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":7,\\\"col_stop\\\":8,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x **= x+y;\\\"}\"}" + right: + Identifier: "{\"name\":\"y\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":9,\\\"col_stop\\\":10,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x **= x+y;\\\"}\"}" + op: Add + span: + line_start: 1 + line_stop: 1 + col_start: 7 + col_stop: 10 + path: "" + content: x **= x+y; + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 10 + path: "" + content: x **= x+y; + - Assign: + operation: Pow + assignee: + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":2,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x **= x();\\\"}\"}" + accesses: [] + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 2 + path: "" + content: x **= x(); + value: + Call: + function: + Identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":7,\\\"col_stop\\\":8,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x **= x();\\\"}\"}" + arguments: [] + span: + line_start: 1 + line_stop: 1 + col_start: 7 + col_stop: 10 + path: "" + content: x **= x(); + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 10 + path: "" + content: x **= x(); + - Assign: + operation: Mul + assignee: + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":2,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x[0] *= y;\\\"}\"}" + accesses: + - ArrayIndex: + Value: + Implicit: + - "0" + - span: + line_start: 1 + line_stop: 1 + col_start: 3 + col_stop: 4 + path: "" + content: "x[0] *= y;" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 5 + path: "" + content: "x[0] *= y;" + value: + Identifier: "{\"name\":\"y\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":9,\\\"col_stop\\\":10,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x[0] *= y;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 10 + path: "" + content: "x[0] *= y;" + - Assign: + operation: Mul + assignee: + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":2,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x[0u32] *= y;\\\"}\"}" + accesses: + - ArrayIndex: + Value: + Integer: + - U32 + - "0" + - span: + line_start: 1 + line_stop: 1 + col_start: 3 + col_stop: 7 + path: "" + content: "x[0u32] *= y;" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 8 + path: "" + content: "x[0u32] *= y;" + value: + Identifier: "{\"name\":\"y\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":12,\\\"col_stop\\\":13,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x[0u32] *= y;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 13 + path: "" + content: "x[0u32] *= y;" + - Assign: + operation: Pow + assignee: + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":2,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x.0 **= y;\\\"}\"}" + accesses: + - Tuple: + - value: "0" + - span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 4 + path: "" + content: x.0 **= y; + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 4 + path: "" + content: x.0 **= y; + value: + Identifier: "{\"name\":\"y\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":9,\\\"col_stop\\\":10,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x.0 **= y;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 10 + path: "" + content: x.0 **= y; + - Assign: + operation: Pow + assignee: + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":2,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x[1..2][0] **= y;\\\"}\"}" + accesses: + - ArrayRange: + - Value: + Implicit: + - "1" + - span: + line_start: 1 + line_stop: 1 + col_start: 3 + col_stop: 4 + path: "" + content: "x[1..2][0] **= y;" + - Value: + Implicit: + - "2" + - span: + line_start: 1 + line_stop: 1 + col_start: 6 + col_stop: 7 + path: "" + content: "x[1..2][0] **= y;" + - ArrayIndex: + Value: + Implicit: + - "0" + - span: + line_start: 1 + line_stop: 1 + col_start: 9 + col_stop: 10 + path: "" + content: "x[1..2][0] **= y;" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 11 + path: "" + content: "x[1..2][0] **= y;" + value: + Identifier: "{\"name\":\"y\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":16,\\\"col_stop\\\":17,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x[1..2][0] **= y;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 17 + path: "" + content: "x[1..2][0] **= y;" + - Assign: + operation: Pow + assignee: + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":2,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x[..2][0] **= y;\\\"}\"}" + accesses: + - ArrayRange: + - ~ + - Value: + Implicit: + - "2" + - span: + line_start: 1 + line_stop: 1 + col_start: 5 + col_stop: 6 + path: "" + content: "x[..2][0] **= y;" + - ArrayIndex: + Value: + Implicit: + - "0" + - span: + line_start: 1 + line_stop: 1 + col_start: 8 + col_stop: 9 + path: "" + content: "x[..2][0] **= y;" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 10 + path: "" + content: "x[..2][0] **= y;" + value: + Identifier: "{\"name\":\"y\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":15,\\\"col_stop\\\":16,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x[..2][0] **= y;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 16 + path: "" + content: "x[..2][0] **= y;" + - Assign: + operation: Pow + assignee: + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":2,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x[2..][0] **= y;\\\"}\"}" + accesses: + - ArrayRange: + - Value: + Implicit: + - "2" + - span: + line_start: 1 + line_stop: 1 + col_start: 3 + col_stop: 4 + path: "" + content: "x[2..][0] **= y;" + - ~ + - ArrayIndex: + Value: + Implicit: + - "0" + - span: + line_start: 1 + line_stop: 1 + col_start: 8 + col_stop: 9 + path: "" + content: "x[2..][0] **= y;" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 10 + path: "" + content: "x[2..][0] **= y;" + value: + Identifier: "{\"name\":\"y\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":15,\\\"col_stop\\\":16,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x[2..][0] **= y;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 16 + path: "" + content: "x[2..][0] **= y;" + - Assign: + operation: Pow + assignee: + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":2,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x[..][0] **= y;\\\"}\"}" + accesses: + - ArrayRange: + - ~ + - ~ + - ArrayIndex: + Value: + Implicit: + - "0" + - span: + line_start: 1 + line_stop: 1 + col_start: 7 + col_stop: 8 + path: "" + content: "x[..][0] **= y;" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 9 + path: "" + content: "x[..][0] **= y;" + value: + Identifier: "{\"name\":\"y\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":14,\\\"col_stop\\\":15,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x[..][0] **= y;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 15 + path: "" + content: "x[..][0] **= y;" + - Assign: + operation: Pow + assignee: + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":2,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x.0[0][..][0] **= y;\\\"}\"}" + accesses: + - Tuple: + - value: "0" + - span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 4 + path: "" + content: "x.0[0][..][0] **= y;" + - ArrayIndex: + Value: + Implicit: + - "0" + - span: + line_start: 1 + line_stop: 1 + col_start: 5 + col_stop: 6 + path: "" + content: "x.0[0][..][0] **= y;" + - ArrayRange: + - ~ + - ~ + - ArrayIndex: + Value: + Implicit: + - "0" + - span: + line_start: 1 + line_stop: 1 + col_start: 12 + col_stop: 13 + path: "" + content: "x.0[0][..][0] **= y;" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 14 + path: "" + content: "x.0[0][..][0] **= y;" + value: + Identifier: "{\"name\":\"y\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":19,\\\"col_stop\\\":20,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x.0[0][..][0] **= y;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 20 + path: "" + content: "x.0[0][..][0] **= y;" + - Assign: + operation: Pow + assignee: + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":2,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x.y **= y;\\\"}\"}" + accesses: + - Member: "{\"name\":\"y\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":3,\\\"col_stop\\\":4,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x.y **= y;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 4 + path: "" + content: x.y **= y; + value: + Identifier: "{\"name\":\"y\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":9,\\\"col_stop\\\":10,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x.y **= y;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 10 + path: "" + content: x.y **= y; + - Assign: + operation: Pow + assignee: + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":2,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x.0.y[0].1.y[..][0][1..5][0..3][0] **= y;\\\"}\"}" + accesses: + - Tuple: + - value: "0" + - span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 4 + path: "" + content: "x.0.y[0].1.y[..][0][1..5][0..3][0] **= y;" + - Member: "{\"name\":\"y\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":5,\\\"col_stop\\\":6,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x.0.y[0].1.y[..][0][1..5][0..3][0] **= y;\\\"}\"}" + - ArrayIndex: + Value: + Implicit: + - "0" + - span: + line_start: 1 + line_stop: 1 + col_start: 7 + col_stop: 8 + path: "" + content: "x.0.y[0].1.y[..][0][1..5][0..3][0] **= y;" + - Tuple: + - value: "1" + - span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 11 + path: "" + content: "x.0.y[0].1.y[..][0][1..5][0..3][0] **= y;" + - Member: "{\"name\":\"y\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":12,\\\"col_stop\\\":13,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x.0.y[0].1.y[..][0][1..5][0..3][0] **= y;\\\"}\"}" + - ArrayRange: + - ~ + - ~ + - ArrayIndex: + Value: + Implicit: + - "0" + - span: + line_start: 1 + line_stop: 1 + col_start: 18 + col_stop: 19 + path: "" + content: "x.0.y[0].1.y[..][0][1..5][0..3][0] **= y;" + - ArrayRange: + - Value: + Implicit: + - "1" + - span: + line_start: 1 + line_stop: 1 + col_start: 21 + col_stop: 22 + path: "" + content: "x.0.y[0].1.y[..][0][1..5][0..3][0] **= y;" + - Value: + Implicit: + - "5" + - span: + line_start: 1 + line_stop: 1 + col_start: 24 + col_stop: 25 + path: "" + content: "x.0.y[0].1.y[..][0][1..5][0..3][0] **= y;" + - ArrayRange: + - Value: + Implicit: + - "0" + - span: + line_start: 1 + line_stop: 1 + col_start: 27 + col_stop: 28 + path: "" + content: "x.0.y[0].1.y[..][0][1..5][0..3][0] **= y;" + - Value: + Implicit: + - "3" + - span: + line_start: 1 + line_stop: 1 + col_start: 30 + col_stop: 31 + path: "" + content: "x.0.y[0].1.y[..][0][1..5][0..3][0] **= y;" + - ArrayIndex: + Value: + Implicit: + - "0" + - span: + line_start: 1 + line_stop: 1 + col_start: 33 + col_stop: 34 + path: "" + content: "x.0.y[0].1.y[..][0][1..5][0..3][0] **= y;" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 35 + path: "" + content: "x.0.y[0].1.y[..][0][1..5][0..3][0] **= y;" + value: + Identifier: "{\"name\":\"y\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":40,\\\"col_stop\\\":41,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x.0.y[0].1.y[..][0][1..5][0..3][0] **= y;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 41 + path: "" + content: "x.0.y[0].1.y[..][0][1..5][0..3][0] **= y;" diff --git a/tests/expectations/parser/parser/statement/assign_fail.leo.out b/tests/expectations/parser/parser/statement/assign_fail.leo.out new file mode 100644 index 0000000000..a215b0c287 --- /dev/null +++ b/tests/expectations/parser/parser/statement/assign_fail.leo.out @@ -0,0 +1,17 @@ +--- +namespace: ParseStatement +expectation: Fail +outputs: + - "Error [EPAR0370011]: invalid assignment target\n --> test:1:1\n |\n 1 | x::y = y;\n | ^^^^" + - "Error [EPAR0370011]: invalid assignment target\n --> test:1:1\n |\n 1 | 5 = y;\n | ^" + - "Error [EPAR0370011]: invalid assignment target\n --> test:1:1\n |\n 1 | x + x = y;\n | ^^^^^" + - "Error [EPAR0370011]: invalid assignment target\n --> test:1:1\n |\n 1 | -x = y;\n | ^^" + - "Error [EPAR0370011]: invalid assignment target\n --> test:1:1\n |\n 1 | !x = y;\n | ^^" + - "Error [EPAR0370011]: invalid assignment target\n --> test:1:1\n |\n 1 | a? x : x = y;\n | ^^^^^^^^" + - "Error [EPAR0370011]: invalid assignment target\n --> test:1:1\n |\n 1 | x as u32 = y;\n | ^^^^^^^^" + - "Error [EPAR0370011]: invalid assignment target\n --> test:1:1\n |\n 1 | [x, x, x] = y;\n | ^^^^^^^^^" + - "Error [EPAR0370011]: invalid assignment target\n --> test:1:1\n |\n 1 | [x; 3] = y;\n | ^^^^^^" + - "Error [EPAR0370011]: invalid assignment target\n --> test:1:1\n |\n 1 | (x, x, x) = y;\n | ^^^^^^^^^" + - "Error [EPAR0370011]: invalid assignment target\n --> test:1:1\n |\n 1 | x {x: y, y: z} = y;\n | ^^^^^^^^^^^^^^" + - "Error [EPAR0370011]: invalid assignment target\n --> test:1:1\n |\n 1 | x() = y;\n | ^^^" + - "Error [EPAR0370011]: invalid assignment target\n --> test:1:1\n |\n 1 | x.y() = y;\n | ^^^^^" diff --git a/tests/expectations/parser/parser/statement/console_fail.leo.out b/tests/expectations/parser/parser/statement/console_fail.leo.out new file mode 100644 index 0000000000..b06712cbf1 --- /dev/null +++ b/tests/expectations/parser/parser/statement/console_fail.leo.out @@ -0,0 +1,6 @@ +--- +namespace: ParseStatement +expectation: Fail +outputs: + - "Error [EPAR0370009]: unexpected string: expected 'formatted string', got '1'\n --> test:1:13\n |\n 1 | console.log(1);\n | ^" + - "Error [EPAR0370007]: unexpected identifier: expected 'assert', 'error', 'log' -- got 'test'\n --> test:1:9\n |\n 1 | console.test();\n | ^^^^" diff --git a/tests/expectations/parser/parser/statement/definition.leo.out b/tests/expectations/parser/parser/statement/definition.leo.out index e0fd3ff4bc..7caa8013f0 100644 --- a/tests/expectations/parser/parser/statement/definition.leo.out +++ b/tests/expectations/parser/parser/statement/definition.leo.out @@ -1616,3 +1616,132 @@ outputs: col_stop: 37 path: "" content: "let x: [[u8; 2]; 2] = [[0,0], [0,0]];" + - Definition: + declaration_type: Let + variable_names: + - mutable: true + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":5,\\\"col_stop\\\":6,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x: [u8; (2, 2)] = [[0,0], [0,0]];\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 5 + col_stop: 6 + path: "" + content: "let x: [u8; (2, 2)] = [[0,0], [0,0]];" + type_: + Array: + - IntegerType: U8 + - - value: "2" + - value: "2" + value: + ArrayInline: + elements: + - Expression: + ArrayInline: + elements: + - Expression: + Value: + Implicit: + - "0" + - span: + line_start: 1 + line_stop: 1 + col_start: 25 + col_stop: 26 + path: "" + content: "let x: [u8; (2, 2)] = [[0,0], [0,0]];" + - Expression: + Value: + Implicit: + - "0" + - span: + line_start: 1 + line_stop: 1 + col_start: 27 + col_stop: 28 + path: "" + content: "let x: [u8; (2, 2)] = [[0,0], [0,0]];" + span: + line_start: 1 + line_stop: 1 + col_start: 24 + col_stop: 29 + path: "" + content: "let x: [u8; (2, 2)] = [[0,0], [0,0]];" + - Expression: + ArrayInline: + elements: + - Expression: + Value: + Implicit: + - "0" + - span: + line_start: 1 + line_stop: 1 + col_start: 32 + col_stop: 33 + path: "" + content: "let x: [u8; (2, 2)] = [[0,0], [0,0]];" + - Expression: + Value: + Implicit: + - "0" + - span: + line_start: 1 + line_stop: 1 + col_start: 34 + col_stop: 35 + path: "" + content: "let x: [u8; (2, 2)] = [[0,0], [0,0]];" + span: + line_start: 1 + line_stop: 1 + col_start: 31 + col_stop: 36 + path: "" + content: "let x: [u8; (2, 2)] = [[0,0], [0,0]];" + span: + line_start: 1 + line_stop: 1 + col_start: 23 + col_stop: 37 + path: "" + content: "let x: [u8; (2, 2)] = [[0,0], [0,0]];" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 37 + path: "" + content: "let x: [u8; (2, 2)] = [[0,0], [0,0]];" + - Definition: + declaration_type: Let + variable_names: + - mutable: true + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":5,\\\"col_stop\\\":6,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x: address = aleo15u4r0gzjtqzepkgurgn7p3u5kkhs9p74rx6aun3uh2s5std6759svgmg53;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 5 + col_stop: 6 + path: "" + content: "let x: address = aleo15u4r0gzjtqzepkgurgn7p3u5kkhs9p74rx6aun3uh2s5std6759svgmg53;" + type_: Address + value: + Value: + Address: + - aleo15u4r0gzjtqzepkgurgn7p3u5kkhs9p74rx6aun3uh2s5std6759svgmg53 + - span: + line_start: 1 + line_stop: 1 + col_start: 18 + col_stop: 81 + path: "" + content: "let x: address = aleo15u4r0gzjtqzepkgurgn7p3u5kkhs9p74rx6aun3uh2s5std6759svgmg53;" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 81 + path: "" + content: "let x: address = aleo15u4r0gzjtqzepkgurgn7p3u5kkhs9p74rx6aun3uh2s5std6759svgmg53;" diff --git a/tests/expectations/parser/parser/statement/definition_fail.leo.out b/tests/expectations/parser/parser/statement/definition_fail.leo.out index 11640aa977..98d09165bb 100644 --- a/tests/expectations/parser/parser/statement/definition_fail.leo.out +++ b/tests/expectations/parser/parser/statement/definition_fail.leo.out @@ -25,3 +25,4 @@ outputs: - "Error [EPAR0370009]: unexpected string: expected 'ident', got ','\n --> test:1:10\n |\n 1 | let (x,y,,) = ();\n | ^" - "Error [EPAR0370009]: unexpected string: expected 'ident', got ','\n --> test:1:6\n |\n 1 | let (,x,y) = ();\n | ^" - "Error [EPAR0370009]: unexpected string: expected 'ident', got ','\n --> test:1:8\n |\n 1 | let (x,,y) = ();\n | ^" + - "Error [EPAR0370009]: unexpected string: expected 'int', got ','\n --> test:1:16\n |\n 1 | let x: [u8; (2,,)] = [[0,0], [0,0]];\n | ^" diff --git a/tests/parser/expression/unary/negate.leo b/tests/parser/expression/unary/negate.leo index b23e99c5d2..035a0c3c26 100644 --- a/tests/parser/expression/unary/negate.leo +++ b/tests/parser/expression/unary/negate.leo @@ -9,3 +9,6 @@ expectation: Pass -x() --x -!x + +-5 +-5i8 \ No newline at end of file diff --git a/tests/parser/statement/assign.leo b/tests/parser/statement/assign.leo index 4d3db94c85..e5587ae045 100644 --- a/tests/parser/statement/assign.leo +++ b/tests/parser/statement/assign.leo @@ -29,3 +29,162 @@ x[2..] = y; x[..] = y; x.0[0][..] = y; + +x.y = y; + +x.0.y[0].1.y[..][0][1..5][0..3] = y; + + + +x += expr; + +x += (); + +x += x+y; + +x += x(); + + +x[0] += y; + +x[0u32] += y; + +x.0 += y; + +x[1..2][0] += y; + +x[..2][0] += y; + +x[2..][0] += y; + +x[..][0] += y; + +x.0[0][..][0] += y; + +x.y += y; + +x.0.y[0].1.y[..][0][1..5][0..3][0] += y; + + + +x -= expr; + +x -= (); + +x -= x+y; + +x -= x(); + + +x[0] -= y; + +x[0u32] -= y; + +x.0 -= y; + +x[1..2][0] -= y; + +x[..2][0] -= y; + +x[2..][0] -= y; + +x[..][0] -= y; + +x.0[0][..][0] -= y; + +x.y -= y; + +x.0.y[0].1.y[..][0][1..5][0..3][0] -= y; + + + +x *= expr; + +x *= (); + +x *= x+y; + +x *= x(); + + +x[0] *= y; + +x[0u32] *= y; + +x.0 *= y; + +x[1..2][0] *= y; + +x[..2][0] *= y; + +x[2..][0] *= y; + +x[..][0] *= y; + +x.0[0][..][0] *= y; + +x.y *= y; + +x.0.y[0].1.y[..][0][1..5][0..3][0] *= y; + + + +x /= expr; + +x /= (); + +x /= x+y; + +x /= x(); + + +x[0] /= y; + +x[0u32] /= y; + +x.0 /= y; + +x[1..2][0] /= y; + +x[..2][0] /= y; + +x[2..][0] /= y; + +x[..][0] /= y; + +x.0[0][..][0] /= y; + +x.y /= y; + +x.0.y[0].1.y[..][0][1..5][0..3][0] /= y; + + + +x **= expr; + +x **= (); + +x **= x+y; + +x **= x(); + + +x[0] *= y; + +x[0u32] *= y; + +x.0 **= y; + +x[1..2][0] **= y; + +x[..2][0] **= y; + +x[2..][0] **= y; + +x[..][0] **= y; + +x.0[0][..][0] **= y; + +x.y **= y; + +x.0.y[0].1.y[..][0][1..5][0..3][0] **= y; \ No newline at end of file diff --git a/tests/parser/statement/assign_fail.leo b/tests/parser/statement/assign_fail.leo new file mode 100644 index 0000000000..89f403bb4a --- /dev/null +++ b/tests/parser/statement/assign_fail.leo @@ -0,0 +1,30 @@ +/* +namespace: ParseStatement +expectation: Fail +*/ + +x::y = y; + +5 = y; + +x + x = y; + +-x = y; + +!x = y; + +a? x : x = y; + +x as u32 = y; + +[x, x, x] = y; + +[x; 3] = y; + +(x, x, x) = y; + +x {x: y, y: z} = y; + +x() = y; + +x.y() = y; diff --git a/tests/parser/statement/console_fail.leo b/tests/parser/statement/console_fail.leo new file mode 100644 index 0000000000..bb9fff5836 --- /dev/null +++ b/tests/parser/statement/console_fail.leo @@ -0,0 +1,8 @@ +/* +namespace: ParseStatement +expectation: Fail +*/ + +console.log(1); + +console.test(); \ No newline at end of file diff --git a/tests/parser/statement/definition.leo b/tests/parser/statement/definition.leo index 507dca476c..91d9aaaad6 100644 --- a/tests/parser/statement/definition.leo +++ b/tests/parser/statement/definition.leo @@ -103,3 +103,8 @@ let (x,) = (); let x: [char; _] = "Hello, World!"; let x: [[u8; 2]; 2] = [[0,0], [0,0]]; + +let x: [u8; (2, 2)] = [[0,0], [0,0]]; + + +let x: address = aleo15u4r0gzjtqzepkgurgn7p3u5kkhs9p74rx6aun3uh2s5std6759svgmg53; \ No newline at end of file diff --git a/tests/parser/statement/definition_fail.leo b/tests/parser/statement/definition_fail.leo index 7bdfc14af2..53f03aca3b 100644 --- a/tests/parser/statement/definition_fail.leo +++ b/tests/parser/statement/definition_fail.leo @@ -52,3 +52,5 @@ let (x,y,,) = (); let (,x,y) = (); let (x,,y) = (); + +let x: [u8; (2,,)] = [[0,0], [0,0]]; \ No newline at end of file From 136a441fc609ca6c8be97adcbbda09becd939085 Mon Sep 17 00:00:00 2001 From: 0rphon <59403052+0rphon@users.noreply.github.com> Date: Mon, 14 Feb 2022 18:39:22 -0800 Subject: [PATCH 002/174] removed redundant code from group parsing --- parser/src/parser/context.rs | 82 ++++++++++++++---------------------- 1 file changed, 31 insertions(+), 51 deletions(-) diff --git a/parser/src/parser/context.rs b/parser/src/parser/context.rs index 4c7479311d..91d1082de4 100644 --- a/parser/src/parser/context.rs +++ b/parser/src/parser/context.rs @@ -166,21 +166,15 @@ impl<'a> ParserContext<'a> { /// the next token is not a [`GroupCoordinate`]. /// fn peek_group_coordinate(&self, i: &mut usize) -> Option { - if *i < 1 { - return None; - } - let token = self.tokens.get(*i - 1)?; - *i -= 1; + *i = i.checked_sub(1)?; + let token = self.tokens.get(*i)?; Some(match &token.token { Token::Add => GroupCoordinate::SignHigh, - Token::Minus if *i > 0 => match self.tokens.get(*i - 1) { + Token::Minus => match self.tokens.get(i.checked_sub(1)?) { Some(SpannedToken { token: Token::Int(value), span, }) => { - if *i < 1 { - return None; - } *i -= 1; GroupCoordinate::Number(format_tendril!("-{}", value), span.clone()) } @@ -213,56 +207,42 @@ impl<'a> ParserContext<'a> { /// pub fn eat_group_partial(&mut self) -> Option> { let mut i = self.tokens.len(); - if i < 1 { - return None; - } - let start_span = self.tokens.get(i - 1)?.span.clone(); + let start_span = self.tokens.get(i.checked_sub(1)?)?.span.clone(); let first = self.peek_group_coordinate(&mut i)?; - if i < 1 { + i = i.checked_sub(1)?; + if !matches!( + self.tokens.get(i), + Some(SpannedToken { + token: Token::Comma, + .. + }) + ) { return None; } - match self.tokens.get(i - 1) { - Some(SpannedToken { - token: Token::Comma, .. - }) => { - i -= 1; - } - _ => { - return None; - } - } + let second = self.peek_group_coordinate(&mut i)?; - if i < 1 { - return None; - } let right_paren_span; - match self.tokens.get(i - 1) { - Some(SpannedToken { - token: Token::RightParen, - span, - }) => { - right_paren_span = span.clone(); - i -= 1; - } - _ => { - return None; - } - } - if i < 1 { + i = i.checked_sub(1)?; + if let Some(SpannedToken { + token: Token::RightParen, + span, + }) = self.tokens.get(i) + { + right_paren_span = span.clone(); + } else { return None; } + let end_span; - match self.tokens.get(i - 1) { - Some(SpannedToken { - token: Token::Group, - span, - }) => { - end_span = span.clone(); - i -= 1; - } - _ => { - return None; - } + i = i.checked_sub(1)?; + if let Some(SpannedToken { + token: Token::Group, + span, + }) = self.tokens.get(i) + { + end_span = span.clone(); + } else { + return None; } self.tokens.drain(i..); From d46a041895d7daeccd7b09f0736d9d36a6da29b7 Mon Sep 17 00:00:00 2001 From: 0rphon <59403052+0rphon@users.noreply.github.com> Date: Wed, 16 Feb 2022 11:33:52 -0800 Subject: [PATCH 003/174] save progress before denver --- cover.bat | 1 - parser/src/parser/context.rs | 2 +- .../functions/const_function_fail.leo.out | 5 +++++ .../parser/statement/definition_fail.leo.out | 7 +++++++ .../parser/statement/expression_fail.leo.out | 10 ++++++++++ tests/parser/functions/const_function_fail.leo | 6 ++++++ tests/parser/statement/definition.leo | 2 +- tests/parser/statement/definition_fail.leo | 17 ++++++++++++++++- tests/parser/statement/expression_fail.leo | 16 ++++++++++++++++ 9 files changed, 62 insertions(+), 4 deletions(-) create mode 100644 tests/expectations/parser/parser/functions/const_function_fail.leo.out create mode 100644 tests/expectations/parser/parser/statement/expression_fail.leo.out create mode 100644 tests/parser/functions/const_function_fail.leo create mode 100644 tests/parser/statement/expression_fail.leo diff --git a/cover.bat b/cover.bat index bab6ec621b..1dddc20219 100644 --- a/cover.bat +++ b/cover.bat @@ -1,4 +1,3 @@ -set CLEAR_LEO_TEST_EXPECTATIONS= cargo clean cd parser set RUSTFLAGS=-Cinstrument-coverage diff --git a/parser/src/parser/context.rs b/parser/src/parser/context.rs index 91d1082de4..d020087b57 100644 --- a/parser/src/parser/context.rs +++ b/parser/src/parser/context.rs @@ -339,7 +339,7 @@ impl<'a> ParserContext<'a> { }); } if let Some((int, span)) = self.eat_int() { - let name = Symbol::intern(&int.value); + let name = Symbol::intern(&int.value); //todo 0rphon: covered by unused import tests return Ok(Identifier { name, span }); } self.expect_ident() diff --git a/tests/expectations/parser/parser/functions/const_function_fail.leo.out b/tests/expectations/parser/parser/functions/const_function_fail.leo.out new file mode 100644 index 0000000000..72572b4700 --- /dev/null +++ b/tests/expectations/parser/parser/functions/const_function_fail.leo.out @@ -0,0 +1,5 @@ +--- +namespace: Parse +expectation: Fail +outputs: + - "Error [EPAR0370003]: unexpected EOF\n --> test:3:1\n |\n 3 | const\n | ^^^^^" diff --git a/tests/expectations/parser/parser/statement/definition_fail.leo.out b/tests/expectations/parser/parser/statement/definition_fail.leo.out index 98d09165bb..4a5f231f94 100644 --- a/tests/expectations/parser/parser/statement/definition_fail.leo.out +++ b/tests/expectations/parser/parser/statement/definition_fail.leo.out @@ -26,3 +26,10 @@ outputs: - "Error [EPAR0370009]: unexpected string: expected 'ident', got ','\n --> test:1:6\n |\n 1 | let (,x,y) = ();\n | ^" - "Error [EPAR0370009]: unexpected string: expected 'ident', got ','\n --> test:1:8\n |\n 1 | let (x,,y) = ();\n | ^" - "Error [EPAR0370009]: unexpected string: expected 'int', got ','\n --> test:1:16\n |\n 1 | let x: [u8; (2,,)] = [[0,0], [0,0]];\n | ^" + - "Error [EPAR0370005]: expected 'i8', 'i16', 'i32', 'i64', 'i128', 'u8', 'u16', 'u32', 'u64', 'u128', 'field', 'group', 'address', 'bool', 'char' -- got 'const'\n --> test:1:8\n |\n 1 | let x: const = expr;\n | ^^^^^" + - "Error [EPAR0370005]: expected 'i8', 'i16', 'i32', 'i64', 'i128', 'u8', 'u16', 'u32', 'u64', 'u128', 'field', 'group', 'address', 'bool', 'char' -- got 'let'\n --> test:1:10\n |\n 1 | const x: let = expr;\n | ^^^" + - "Error [EPAR0370005]: expected 'i8', 'i16', 'i32', 'i64', 'i128', 'u8', 'u16', 'u32', 'u64', 'u128', 'field', 'group', 'address', 'bool', 'char' -- got 'mut'\n --> test:1:8\n |\n 1 | let x: mut = expr;\n | ^^^" + - "Error [EPAR0370003]: unexpected EOF\n --> test:1:1\n |\n 1 | let\n | ^^^" + - "Error [EPAR0370003]: unexpected EOF\n --> test:1:5\n |\n 1 | let x\n | ^" + - "Error [EPAR0370003]: unexpected EOF\n --> test:1:6\n |\n 1 | let x:\n | ^" + - "Error [EPAR0370005]: expected ) -- got ']'\n --> test:1:14\n |\n 1 | let x = (a, y]);\n | ^" diff --git a/tests/expectations/parser/parser/statement/expression_fail.leo.out b/tests/expectations/parser/parser/statement/expression_fail.leo.out new file mode 100644 index 0000000000..4142d0155e --- /dev/null +++ b/tests/expectations/parser/parser/statement/expression_fail.leo.out @@ -0,0 +1,10 @@ +--- +namespace: ParseStatement +expectation: Fail +outputs: + - "Error [EPAR0370009]: unexpected string: expected 'expression', got ']'\n --> test:1:2\n |\n 1 | (];\n | ^" + - "Error [EPAR0370009]: unexpected string: expected 'expression', got ')'\n --> test:1:2\n |\n 1 | [);\n | ^" + - "Error [EPAR0370000]: \\\n --> test:1:2\n |\n 1 | x\\y;\n | ^" + - "Error [EPAR0370000]: |\n --> test:1:5\n |\n 1 | (x,y|;\n | ^" + - "Error [EPAR0370009]: unexpected string: expected 'expression', got '}'\n --> test:1:3\n |\n 1 | x[};\n | ^" + - "Error [EPAR0370005]: expected ) -- got ']'\n --> test:1:6\n |\n 1 | (x, y];\n | ^" diff --git a/tests/parser/functions/const_function_fail.leo b/tests/parser/functions/const_function_fail.leo new file mode 100644 index 0000000000..1da7e79739 --- /dev/null +++ b/tests/parser/functions/const_function_fail.leo @@ -0,0 +1,6 @@ +/* +namespace: Parse +expectation: Fail +*/ + +const diff --git a/tests/parser/statement/definition.leo b/tests/parser/statement/definition.leo index 91d9aaaad6..f038300794 100644 --- a/tests/parser/statement/definition.leo +++ b/tests/parser/statement/definition.leo @@ -107,4 +107,4 @@ let x: [[u8; 2]; 2] = [[0,0], [0,0]]; let x: [u8; (2, 2)] = [[0,0], [0,0]]; -let x: address = aleo15u4r0gzjtqzepkgurgn7p3u5kkhs9p74rx6aun3uh2s5std6759svgmg53; \ No newline at end of file +let x: address = aleo15u4r0gzjtqzepkgurgn7p3u5kkhs9p74rx6aun3uh2s5std6759svgmg53; diff --git a/tests/parser/statement/definition_fail.leo b/tests/parser/statement/definition_fail.leo index 53f03aca3b..f08dbb99f0 100644 --- a/tests/parser/statement/definition_fail.leo +++ b/tests/parser/statement/definition_fail.leo @@ -53,4 +53,19 @@ let (,x,y) = (); let (x,,y) = (); -let x: [u8; (2,,)] = [[0,0], [0,0]]; \ No newline at end of file +let x: [u8; (2,,)] = [[0,0], [0,0]]; + + +let x: const = expr; + +const x: let = expr; + +let x: mut = expr; + +let + +let x + +let x: + +let x = (a, y]); diff --git a/tests/parser/statement/expression_fail.leo b/tests/parser/statement/expression_fail.leo new file mode 100644 index 0000000000..98efd8b9e0 --- /dev/null +++ b/tests/parser/statement/expression_fail.leo @@ -0,0 +1,16 @@ +/* +namespace: ParseStatement +expectation: Fail +*/ + +(]; + +[); + +x\y; + +(x,y|; + +x[}; + +(x, y]; From 938f1fdbc1e2475cd59dbbb9ef1c70d66a0a0c0f Mon Sep 17 00:00:00 2001 From: 0rphon <59403052+0rphon@users.noreply.github.com> Date: Fri, 18 Feb 2022 15:49:39 -0700 Subject: [PATCH 004/174] removed dead code from lexer --- cover.sh | 11 + parser/src/tokenizer/lexer.rs | 24 +- test.sh | 4 + .../parser/expression/literal/char.leo.out | 625 ++++++++++++++++-- .../expression/literal/char_fail.leo.out | 1 + .../expression/literal/group_fail.leo.out | 4 + .../parser/expression/literal/string.leo.out | 214 +++++- .../expression/literal/string_fail.leo.out | 1 + tests/parser/expression/literal/char.leo | 3 +- tests/parser/expression/literal/char_fail.leo | 2 + .../parser/expression/literal/char_parse.leo | 57 -- .../parser/expression/literal/group_fail.leo | 8 + tests/parser/expression/literal/string.leo | 6 +- .../parser/expression/literal/string_fail.leo | 2 + .../expression/literal/string_parse.leo | 26 - 15 files changed, 818 insertions(+), 170 deletions(-) create mode 100755 cover.sh create mode 100755 test.sh delete mode 100644 tests/parser/expression/literal/char_parse.leo delete mode 100644 tests/parser/expression/literal/string_parse.leo diff --git a/cover.sh b/cover.sh new file mode 100755 index 0000000000..f77bc45903 --- /dev/null +++ b/cover.sh @@ -0,0 +1,11 @@ +cargo clean +cd parser +export RUSTFLAGS=-Cinstrument-coverage +cargo build +export LLVM_PROFILE_FILE=../target/out/leo_coverage-%p-%m.profraw +cargo test -- test::parser_tests --exact --nocapture +grcov ../target/out -s . --binary-path ../target/debug/ -t html --branch --ignore-not-existing -o ../target/debug/coverage/ +cd .. +rm default.profraw +export RUSTFLAGS= +export LLVM_PROFILE_FILE= \ No newline at end of file diff --git a/parser/src/tokenizer/lexer.rs b/parser/src/tokenizer/lexer.rs index 93ce3a49bf..2c22e57b04 100644 --- a/parser/src/tokenizer/lexer.rs +++ b/parser/src/tokenizer/lexer.rs @@ -78,20 +78,16 @@ impl Token { return None; } - if let Some(character) = escaped.chars().next() { - return match character { - '0' => Some(Char::Scalar(0 as char)), - 't' => Some(Char::Scalar(9 as char)), - 'n' => Some(Char::Scalar(10 as char)), - 'r' => Some(Char::Scalar(13 as char)), - '\"' => Some(Char::Scalar(34 as char)), - '\'' => Some(Char::Scalar(39 as char)), - '\\' => Some(Char::Scalar(92 as char)), - _ => None, - }; - } else { - return None; - } + return match escaped.chars().next().unwrap() { + '0' => Some(Char::Scalar(0 as char)), + 't' => Some(Char::Scalar(9 as char)), + 'n' => Some(Char::Scalar(10 as char)), + 'r' => Some(Char::Scalar(13 as char)), + '\"' => Some(Char::Scalar(34 as char)), + '\'' => Some(Char::Scalar(39 as char)), + '\\' => Some(Char::Scalar(92 as char)), + _ => None, + }; } if hex { diff --git a/test.sh b/test.sh new file mode 100755 index 0000000000..48b41bc476 --- /dev/null +++ b/test.sh @@ -0,0 +1,4 @@ +export CLEAR_LEO_TEST_EXPECTATIONS=1 +cargo test --package leo-parser --lib -- test::parser_tests --exact --nocapture +# cargo test --package leo-parser --lib -- test::parser_tests --exact --nocapture 2>&1 | grep -A 2 dbg +export CLEAR_LEO_TEST_EXPECTATIONS= \ No newline at end of file diff --git a/tests/expectations/parser/parser/expression/literal/char.leo.out b/tests/expectations/parser/parser/expression/literal/char.leo.out index fa87952664..0ceeb2c2f2 100644 --- a/tests/expectations/parser/parser/expression/literal/char.leo.out +++ b/tests/expectations/parser/parser/expression/literal/char.leo.out @@ -1,55 +1,576 @@ --- -namespace: Token +namespace: ParseExpression expectation: Pass outputs: - - "'a' @ 1:1-4" - - "'Z' @ 1:1-4" - - "'\"' @ 1:1-5" - - "'' @ 1:1-5" - - "'' @ 1:1-5" - - "'\u0000' @ 1:1-5" - - "'\u000f' @ 1:1-8" - - "'' @ 1:1-6" - - "'å' @ 1:1-9" - - "'å' @ 1:1-5" - - "'Ӡ' @ 1:1-10" - - "'Ӡ' @ 1:1-5" - - "'❤' @ 1:1-11" - - "'❤' @ 1:1-6" - - "'😢' @ 1:1-12" - - "'😭' @ 1:1-7" - - "'􀀟' @ 1:1-13" - - "'*' @ 1:1-7" - - "'\u007f' @ 1:1-7" - - "'\u0000' @ 1:1-7" - - "'\u0001' @ 1:1-7" - - "'\u0002' @ 1:1-7" - - "'\u0003' @ 1:1-7" - - "'\u0004' @ 1:1-7" - - "'\u0005' @ 1:1-7" - - "'\u0006' @ 1:1-7" - - "'\u0007' @ 1:1-7" - - "'\u0010' @ 1:1-7" - - "'\u0011' @ 1:1-7" - - "'\u0012' @ 1:1-7" - - "'\u0013' @ 1:1-7" - - "'\u0014' @ 1:1-7" - - "'\u0015' @ 1:1-7" - - "'\u0016' @ 1:1-7" - - "'\u0017' @ 1:1-7" - - "'' @ 1:1-7" - - "'!' @ 1:1-7" - - "'\"' @ 1:1-7" - - "'#' @ 1:1-7" - - "'$' @ 1:1-7" - - "'%' @ 1:1-7" - - "'&' @ 1:1-7" - - "''' @ 1:1-7" - - "'0' @ 1:1-7" - - "'1' @ 1:1-7" - - "'2' @ 1:1-7" - - "'3' @ 1:1-7" - - "'4' @ 1:1-7" - - "'5' @ 1:1-7" - - "'6' @ 1:1-7" - - "'7' @ 1:1-7" + - Value: + Char: + character: + Scalar: 97 + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 4 + path: "" + content: "'a'" + - Value: + Char: + character: + Scalar: 90 + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 4 + path: "" + content: "'Z'" + - Value: + Char: + character: + Scalar: 34 + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 5 + path: "" + content: "'\\\"'" + - Value: + Char: + character: + Scalar: 39 + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 5 + path: "" + content: "'\\''" + - Value: + Char: + character: + Scalar: 9 + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 5 + path: "" + content: "'\\t'" + - Value: + Char: + character: + Scalar: 13 + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 5 + path: "" + content: "'\\r'" + - Value: + Char: + character: + Scalar: 0 + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 5 + path: "" + content: "'\\0'" + - Value: + Char: + character: + Scalar: 15 + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 8 + path: "" + content: "'\\u{F}'" + - Value: + Char: + character: + Scalar: 57359 + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 6 + path: "" + content: "''" + - Value: + Char: + character: + Scalar: 229 + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 9 + path: "" + content: "'\\u{E5}'" + - Value: + Char: + character: + Scalar: 229 + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 5 + path: "" + content: "'å'" + - Value: + Char: + character: + Scalar: 1248 + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 10 + path: "" + content: "'\\u{4e0}'" + - Value: + Char: + character: + Scalar: 1248 + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 5 + path: "" + content: "'Ӡ'" + - Value: + Char: + character: + Scalar: 10084 + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 11 + path: "" + content: "'\\u{2764}'" + - Value: + Char: + character: + Scalar: 10084 + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 6 + path: "" + content: "'❤'" + - Value: + Char: + character: + Scalar: 128546 + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 12 + path: "" + content: "'\\u{1F622}'" + - Value: + Char: + character: + Scalar: 128557 + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 7 + path: "" + content: "'😭'" + - Value: + Char: + character: + Scalar: 1048607 + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 13 + path: "" + content: "'\\u{10001F}'" + - Value: + Char: + character: + Scalar: 42 + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 7 + path: "" + content: "'\\x2A'" + - Value: + Char: + character: + Scalar: 127 + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 7 + path: "" + content: "'\\x7f'" + - Value: + Char: + character: + Scalar: 0 + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 7 + path: "" + content: "'\\x00'" + - Value: + Char: + character: + Scalar: 1 + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 7 + path: "" + content: "'\\x01'" + - Value: + Char: + character: + Scalar: 2 + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 7 + path: "" + content: "'\\x02'" + - Value: + Char: + character: + Scalar: 3 + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 7 + path: "" + content: "'\\x03'" + - Value: + Char: + character: + Scalar: 4 + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 7 + path: "" + content: "'\\x04'" + - Value: + Char: + character: + Scalar: 5 + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 7 + path: "" + content: "'\\x05'" + - Value: + Char: + character: + Scalar: 6 + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 7 + path: "" + content: "'\\x06'" + - Value: + Char: + character: + Scalar: 7 + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 7 + path: "" + content: "'\\x07'" + - Value: + Char: + character: + Scalar: 16 + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 7 + path: "" + content: "'\\x10'" + - Value: + Char: + character: + Scalar: 17 + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 7 + path: "" + content: "'\\x11'" + - Value: + Char: + character: + Scalar: 18 + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 7 + path: "" + content: "'\\x12'" + - Value: + Char: + character: + Scalar: 19 + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 7 + path: "" + content: "'\\x13'" + - Value: + Char: + character: + Scalar: 20 + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 7 + path: "" + content: "'\\x14'" + - Value: + Char: + character: + Scalar: 21 + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 7 + path: "" + content: "'\\x15'" + - Value: + Char: + character: + Scalar: 22 + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 7 + path: "" + content: "'\\x16'" + - Value: + Char: + character: + Scalar: 23 + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 7 + path: "" + content: "'\\x17'" + - Value: + Char: + character: + Scalar: 32 + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 7 + path: "" + content: "'\\x20'" + - Value: + Char: + character: + Scalar: 33 + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 7 + path: "" + content: "'\\x21'" + - Value: + Char: + character: + Scalar: 34 + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 7 + path: "" + content: "'\\x22'" + - Value: + Char: + character: + Scalar: 35 + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 7 + path: "" + content: "'\\x23'" + - Value: + Char: + character: + Scalar: 36 + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 7 + path: "" + content: "'\\x24'" + - Value: + Char: + character: + Scalar: 37 + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 7 + path: "" + content: "'\\x25'" + - Value: + Char: + character: + Scalar: 38 + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 7 + path: "" + content: "'\\x26'" + - Value: + Char: + character: + Scalar: 39 + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 7 + path: "" + content: "'\\x27'" + - Value: + Char: + character: + Scalar: 48 + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 7 + path: "" + content: "'\\x30'" + - Value: + Char: + character: + Scalar: 49 + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 7 + path: "" + content: "'\\x31'" + - Value: + Char: + character: + Scalar: 50 + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 7 + path: "" + content: "'\\x32'" + - Value: + Char: + character: + Scalar: 51 + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 7 + path: "" + content: "'\\x33'" + - Value: + Char: + character: + Scalar: 52 + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 7 + path: "" + content: "'\\x34'" + - Value: + Char: + character: + Scalar: 53 + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 7 + path: "" + content: "'\\x35'" + - Value: + Char: + character: + Scalar: 54 + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 7 + path: "" + content: "'\\x36'" + - Value: + Char: + character: + Scalar: 55 + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 7 + path: "" + content: "'\\x37'" diff --git a/tests/expectations/parser/parser/expression/literal/char_fail.leo.out b/tests/expectations/parser/parser/expression/literal/char_fail.leo.out index 46390f4fb9..30507bca2f 100644 --- a/tests/expectations/parser/parser/expression/literal/char_fail.leo.out +++ b/tests/expectations/parser/parser/expression/literal/char_fail.leo.out @@ -5,6 +5,7 @@ outputs: - "Error [EPAR0370000]: '\n --> test:1:1\n |\n 1 | '\\'\n | ^" - "Error [EPAR0370000]: '\n --> test:1:1\n |\n 1 | 'a\n | ^" - "Error [EPAR0370000]: '\n --> test:1:1\n |\n 1 | ''\n | ^" + - "Error [EPAR0370000]: '\n --> test:1:1\n |\n 1 | '\\\n | ^" - "Error [EPAR0370000]: '\n --> test:1:1\n |\n 1 | '\\x9A'\n | ^" - "Error [EPAR0370000]: '\n --> test:1:1\n |\n 1 | '\\x7'\n | ^" - "Error [EPAR0370000]: '\n --> test:1:1\n |\n 1 | '\\x7g'\n | ^" diff --git a/tests/expectations/parser/parser/expression/literal/group_fail.leo.out b/tests/expectations/parser/parser/expression/literal/group_fail.leo.out index e9076add85..4114e3fa46 100644 --- a/tests/expectations/parser/parser/expression/literal/group_fail.leo.out +++ b/tests/expectations/parser/parser/expression/literal/group_fail.leo.out @@ -10,3 +10,7 @@ outputs: - "did not consume all input: 'group' @ 1:6-11\n" - "did not consume all input: 'group' @ 1:12-17\n" - "did not consume all input: 'group' @ 1:15-20\n" + - "Error [EPAR0370004]: Unexpected white space between terms (123,456) and group\n --> test:1:10\n |\n 1 | (123, 456) group\n | ^" + - "did not consume all input: 'group' @ 1:8-13\n" + - "did not consume all input: 'group' @ 1:16-21\n" + - "did not consume all input: 'bool' @ 1:11-15\n" diff --git a/tests/expectations/parser/parser/expression/literal/string.leo.out b/tests/expectations/parser/parser/expression/literal/string.leo.out index c6b41bc0d5..c6578c68ae 100644 --- a/tests/expectations/parser/parser/expression/literal/string.leo.out +++ b/tests/expectations/parser/parser/expression/literal/string.leo.out @@ -1,19 +1,201 @@ --- -namespace: Token +namespace: ParseExpression expectation: Pass outputs: - - "'\"\"' @ 1:1-3" - - "'\"string\"' @ 1:1-9" - - "'\"another { } string\"' @ 1:1-21" - - "'\"{ ] [ ; a\"' @ 1:1-12" - - "'\"࿺\"' @ 1:1-10" - - "'\"򯫺\"' @ 1:1-12" - - "'\"꾯\"' @ 1:1-11" - - "'\"ૺ\"' @ 1:1-10" - - "'\"¯\"' @ 1:1-9" - - "'\"\n\"' @ 1:1-8" - - "'\"\n\"' @ 1:1-7" - - "'\"\u007f\"' @ 1:1-7" - - "'\"aa \\ \" \n aa \t \r \u0000\"' @ 1:1-28" - - "'\"test 😒€\"' @ 1:1-15" - - "'\"😭😂😘\"' @ 1:1-15" + - Value: + String: + - - Scalar: 115 + - Scalar: 116 + - Scalar: 114 + - Scalar: 105 + - Scalar: 110 + - Scalar: 103 + - span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 9 + path: "" + content: "\"string\"" + - Value: + String: + - - Scalar: 97 + - Scalar: 110 + - Scalar: 111 + - Scalar: 116 + - Scalar: 104 + - Scalar: 101 + - Scalar: 114 + - Scalar: 32 + - Scalar: 123 + - Scalar: 32 + - Scalar: 125 + - Scalar: 32 + - Scalar: 115 + - Scalar: 116 + - Scalar: 114 + - Scalar: 105 + - Scalar: 110 + - Scalar: 103 + - span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 21 + path: "" + content: "\"another { } string\"" + - Value: + String: + - - Scalar: 123 + - Scalar: 32 + - Scalar: 93 + - Scalar: 32 + - Scalar: 91 + - Scalar: 32 + - Scalar: 59 + - Scalar: 32 + - Scalar: 97 + - span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 12 + path: "" + content: "\"{ ] [ ; a\"" + - Value: + String: + - - Scalar: 4090 + - span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 10 + path: "" + content: "\"\\u{FFA}\"" + - Value: + String: + - - Scalar: 719610 + - span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 12 + path: "" + content: "\"\\u{afafa}\"" + - Value: + String: + - - Scalar: 44975 + - span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 11 + path: "" + content: "\"\\u{afaf}\"" + - Value: + String: + - - Scalar: 2810 + - span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 10 + path: "" + content: "\"\\u{afa}\"" + - Value: + String: + - - Scalar: 175 + - span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 9 + path: "" + content: "\"\\u{af}\"" + - Value: + String: + - - Scalar: 10 + - span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 8 + path: "" + content: "\"\\u{a}\"" + - Value: + String: + - - Scalar: 10 + - span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 7 + path: "" + content: "\"\\x0A\"" + - Value: + String: + - - Scalar: 127 + - span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 7 + path: "" + content: "\"\\x7F\"" + - Value: + String: + - - Scalar: 97 + - Scalar: 97 + - Scalar: 32 + - Scalar: 92 + - Scalar: 32 + - Scalar: 34 + - Scalar: 32 + - Scalar: 39 + - Scalar: 32 + - Scalar: 10 + - Scalar: 32 + - Scalar: 97 + - Scalar: 97 + - Scalar: 32 + - Scalar: 9 + - Scalar: 32 + - Scalar: 13 + - Scalar: 32 + - Scalar: 32 + - Scalar: 0 + - span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 30 + path: "" + content: "\"aa \\\\ \\\" \\' \\n aa \\t \\r \\0\"" + - Value: + String: + - - Scalar: 116 + - Scalar: 101 + - Scalar: 115 + - Scalar: 116 + - Scalar: 32 + - Scalar: 128530 + - Scalar: 8364 + - span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 15 + path: "" + content: "\"test 😒€\"" + - Value: + String: + - - Scalar: 128557 + - Scalar: 128514 + - Scalar: 128536 + - span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 15 + path: "" + content: "\"😭😂😘\"" diff --git a/tests/expectations/parser/parser/expression/literal/string_fail.leo.out b/tests/expectations/parser/parser/expression/literal/string_fail.leo.out index 4d8c97fc71..331c4df2bc 100644 --- a/tests/expectations/parser/parser/expression/literal/string_fail.leo.out +++ b/tests/expectations/parser/parser/expression/literal/string_fail.leo.out @@ -4,6 +4,7 @@ expectation: Fail outputs: - "Error [EPAR0370000]: \"\n --> test:1:1\n |\n 1 | \"Hello world!\n | ^" - "Error [EPAR0370000]: \"\n --> test:1:1\n |\n 1 | \"\\\"\n | ^" + - "Error [EPAR0370000]: \"\n --> test:1:1\n |\n 1 | \"\\\n | ^" - "Error [EPAR0370000]: \"\n --> test:1:1\n |\n 1 | \"\\l\"\n | ^" - "Error [EPAR0370000]: \"\n --> test:1:1\n |\n 1 | \"\\uaaa\"\n | ^" - "Error [EPAR0370000]: \"\n --> test:1:1\n |\n 1 | \"\\u\"\n | ^" diff --git a/tests/parser/expression/literal/char.leo b/tests/parser/expression/literal/char.leo index 68f7edc37b..e665284a00 100644 --- a/tests/parser/expression/literal/char.leo +++ b/tests/parser/expression/literal/char.leo @@ -1,11 +1,12 @@ /* -namespace: Token +namespace: ParseExpression expectation: Pass */ 'a' 'Z' '\"' +'\'' '\t' '\r' '\0' diff --git a/tests/parser/expression/literal/char_fail.leo b/tests/parser/expression/literal/char_fail.leo index 982cc3f801..baac67875a 100644 --- a/tests/parser/expression/literal/char_fail.leo +++ b/tests/parser/expression/literal/char_fail.leo @@ -9,6 +9,8 @@ expectation: Fail '' +'\ + '\x9A' '\x7' '\x7g' diff --git a/tests/parser/expression/literal/char_parse.leo b/tests/parser/expression/literal/char_parse.leo deleted file mode 100644 index 60a6a6e80c..0000000000 --- a/tests/parser/expression/literal/char_parse.leo +++ /dev/null @@ -1,57 +0,0 @@ -/* -namespace: ParseExpression -expectation: Pass -*/ - -'a' -'Z' -'\"' -'\t' -'\r' -'\0' -'\u{F}' -'' -'\u{E5}' -'å' -'\u{4e0}' -'Ӡ' -'\u{2764}' -'❤' -'\u{1F622}' -'😭' -'\u{10001F}' -'\x2A' -'\x7f' - -'\x00' -'\x01' -'\x02' -'\x03' -'\x04' -'\x05' -'\x06' -'\x07' -'\x10' -'\x11' -'\x12' -'\x13' -'\x14' -'\x15' -'\x16' -'\x17' -'\x20' -'\x21' -'\x22' -'\x23' -'\x24' -'\x25' -'\x26' -'\x27' -'\x30' -'\x31' -'\x32' -'\x33' -'\x34' -'\x35' -'\x36' -'\x37' \ No newline at end of file diff --git a/tests/parser/expression/literal/group_fail.leo b/tests/parser/expression/literal/group_fail.leo index 1b0ecd1de2..408e82ec56 100644 --- a/tests/parser/expression/literal/group_fail.leo +++ b/tests/parser/expression/literal/group_fail.leo @@ -18,3 +18,11 @@ expectation: Fail (123,456u8)group (123,456field)group + +(123, 456) group + +(123, )group + +(123, 456, 789)group + +(123, 456)bool diff --git a/tests/parser/expression/literal/string.leo b/tests/parser/expression/literal/string.leo index 644ad63f3c..2bc190fd01 100644 --- a/tests/parser/expression/literal/string.leo +++ b/tests/parser/expression/literal/string.leo @@ -1,10 +1,8 @@ /* -namespace: Token +namespace: ParseExpression expectation: Pass */ -"" - "string" "another { } string" @@ -22,7 +20,7 @@ expectation: Pass "\x7F" -"aa \\ \" \n aa \t \r \0" +"aa \\ \" \' \n aa \t \r \0" "test 😒€" "😭😂😘" \ No newline at end of file diff --git a/tests/parser/expression/literal/string_fail.leo b/tests/parser/expression/literal/string_fail.leo index de90e88599..41545172dd 100644 --- a/tests/parser/expression/literal/string_fail.leo +++ b/tests/parser/expression/literal/string_fail.leo @@ -7,6 +7,8 @@ expectation: Fail "\" +"\ + "\l" "\uaaa" diff --git a/tests/parser/expression/literal/string_parse.leo b/tests/parser/expression/literal/string_parse.leo deleted file mode 100644 index 77699cb086..0000000000 --- a/tests/parser/expression/literal/string_parse.leo +++ /dev/null @@ -1,26 +0,0 @@ -/* -namespace: ParseExpression -expectation: Pass -*/ - -"string" - -"another { } string" - -"{ ] [ ; a" - -"\u{FFA}" -"\u{afafa}" -"\u{afaf}" -"\u{afa}" -"\u{af}" -"\u{a}" - -"\x0A" - -"\x7F" - -"aa \\ \" \n aa \t \r \0" - -"test 😒€" -"😭😂😘" \ No newline at end of file From c767907b25d34a740b1d1b5d7aa7896842d650a3 Mon Sep 17 00:00:00 2001 From: 0rphon <59403052+0rphon@users.noreply.github.com> Date: Fri, 18 Feb 2022 16:29:24 -0700 Subject: [PATCH 005/174] removed more dead lexer code --- parser/src/tokenizer/lexer.rs | 34 ++++++++----------- .../parser/expression/literal/char.leo.out | 11 ++++++ .../expression/literal/char_fail.leo.out | 1 + tests/parser/expression/literal/char.leo | 1 + tests/parser/expression/literal/char_fail.leo | 1 + 5 files changed, 29 insertions(+), 19 deletions(-) diff --git a/parser/src/tokenizer/lexer.rs b/parser/src/tokenizer/lexer.rs index 2c22e57b04..8e76253419 100644 --- a/parser/src/tokenizer/lexer.rs +++ b/parser/src/tokenizer/lexer.rs @@ -76,17 +76,17 @@ impl Token { if escaped.len() != 1 { return None; - } - - return match escaped.chars().next().unwrap() { - '0' => Some(Char::Scalar(0 as char)), - 't' => Some(Char::Scalar(9 as char)), - 'n' => Some(Char::Scalar(10 as char)), - 'r' => Some(Char::Scalar(13 as char)), - '\"' => Some(Char::Scalar(34 as char)), - '\'' => Some(Char::Scalar(39 as char)), - '\\' => Some(Char::Scalar(92 as char)), - _ => None, + } else { + return match escaped.chars().next().unwrap() { + '0' => Some(Char::Scalar(0 as char)), + 't' => Some(Char::Scalar(9 as char)), + 'n' => Some(Char::Scalar(10 as char)), + 'r' => Some(Char::Scalar(13 as char)), + '\"' => Some(Char::Scalar(34 as char)), + '\'' => Some(Char::Scalar(39 as char)), + '\\' => Some(Char::Scalar(92 as char)), + _ => None, + }; }; } @@ -96,15 +96,13 @@ impl Token { if hex_string.len() != 2 { return None; - } - - if let Ok(ascii_number) = u8::from_str_radix(hex_string, 16) { + } else if let Ok(ascii_number) = u8::from_str_radix(hex_string, 16) { // According to RFC, we allow only values less than 128. if ascii_number > 127 { return None; + } else { + return Some(Char::Scalar(ascii_number as char)); } - - return Some(Char::Scalar(ascii_number as char)); } } @@ -118,9 +116,7 @@ impl Token { let len = unicode_number.len(); if !(1..=6).contains(&len) { return None; - } - - if let Ok(hex) = u32::from_str_radix(unicode_number, 16) { + } else if let Ok(hex) = u32::from_str_radix(unicode_number, 16) { if let Some(character) = std::char::from_u32(hex) { // scalar return Some(Char::Scalar(character)); diff --git a/tests/expectations/parser/parser/expression/literal/char.leo.out b/tests/expectations/parser/parser/expression/literal/char.leo.out index 0ceeb2c2f2..fc3cfb55ad 100644 --- a/tests/expectations/parser/parser/expression/literal/char.leo.out +++ b/tests/expectations/parser/parser/expression/literal/char.leo.out @@ -145,6 +145,17 @@ outputs: col_stop: 5 path: "" content: "'Ӡ'" + - Value: + Char: + character: + NonScalar: 55296 + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 11 + path: "" + content: "'\\u{d800}'" - Value: Char: character: diff --git a/tests/expectations/parser/parser/expression/literal/char_fail.leo.out b/tests/expectations/parser/parser/expression/literal/char_fail.leo.out index 30507bca2f..6b1e104d08 100644 --- a/tests/expectations/parser/parser/expression/literal/char_fail.leo.out +++ b/tests/expectations/parser/parser/expression/literal/char_fail.leo.out @@ -37,4 +37,5 @@ outputs: - "Error [EPAR0370000]: '\n --> test:1:1\n |\n 1 | '\\u00000000'\n | ^" - "Error [EPAR0370000]: '\n --> test:1:1\n |\n 1 | '\\u01000000'\n | ^" - "Error [EPAR0370000]: '\n --> test:1:1\n |\n 1 | '\\u9999999'\n | ^" + - "Error [EPAR0370000]: '\n --> test:1:1\n |\n 1 | '\\u{110000}'\n | ^" - "Error [EPAR0370000]: '\n --> test:1:1\n |\n 1 | '😭😂😘'\n | ^" diff --git a/tests/parser/expression/literal/char.leo b/tests/parser/expression/literal/char.leo index e665284a00..206a48cff5 100644 --- a/tests/parser/expression/literal/char.leo +++ b/tests/parser/expression/literal/char.leo @@ -16,6 +16,7 @@ expectation: Pass 'å' '\u{4e0}' 'Ӡ' +'\u{d800}' '\u{2764}' '❤' '\u{1F622}' diff --git a/tests/parser/expression/literal/char_fail.leo b/tests/parser/expression/literal/char_fail.leo index baac67875a..769d3aafdd 100644 --- a/tests/parser/expression/literal/char_fail.leo +++ b/tests/parser/expression/literal/char_fail.leo @@ -45,5 +45,6 @@ expectation: Fail '\u00000000' '\u01000000' '\u9999999' +'\u{110000}' '😭😂😘' From ba6f2359371e76663e37624224d165387ae4d5bb Mon Sep 17 00:00:00 2001 From: 0rphon <59403052+0rphon@users.noreply.github.com> Date: Wed, 23 Feb 2022 15:07:32 -0800 Subject: [PATCH 006/174] added some more test cases --- .gitignore | 1 + test.bat | 1 + .../parser/statement/definition_fail.leo.out | 10 ++++++++++ tests/parser/statement/definition_fail.leo | 20 +++++++++++++++++++ 4 files changed, 32 insertions(+) diff --git a/.gitignore b/.gitignore index d01b74f25d..0a00a31434 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,7 @@ /tmp/ **.idea/ *.DS_Store +.vscode **/process.yml diff --git a/test.bat b/test.bat index 7057d199df..101acce55a 100644 --- a/test.bat +++ b/test.bat @@ -1,3 +1,4 @@ +@REM cargo test --package leo-parser --lib -- test::parser_tests --exact --nocapture cargo 2>&1 | rp -B 2 dbg set CLEAR_LEO_TEST_EXPECTATIONS=1 cargo test --package leo-parser --lib -- test::parser_tests --exact --nocapture set CLEAR_LEO_TEST_EXPECTATIONS= \ No newline at end of file diff --git a/tests/expectations/parser/parser/statement/definition_fail.leo.out b/tests/expectations/parser/parser/statement/definition_fail.leo.out index 4a5f231f94..11e40bbd7b 100644 --- a/tests/expectations/parser/parser/statement/definition_fail.leo.out +++ b/tests/expectations/parser/parser/statement/definition_fail.leo.out @@ -33,3 +33,13 @@ outputs: - "Error [EPAR0370003]: unexpected EOF\n --> test:1:5\n |\n 1 | let x\n | ^" - "Error [EPAR0370003]: unexpected EOF\n --> test:1:6\n |\n 1 | let x:\n | ^" - "Error [EPAR0370005]: expected ) -- got ']'\n --> test:1:14\n |\n 1 | let x = (a, y]);\n | ^" + - "Error [EPAR0370009]: unexpected string: expected 'ident', got '='\n --> test:1:5\n |\n 1 | let = 1u8;\n | ^" + - "Error [EPAR0370009]: unexpected string: expected 'ident', got ';'\n --> test:1:4\n |\n 1 | let;\n | ^" + - "Error [EPAR0370005]: expected = -- got '1'\n --> test:1:7\n |\n 1 | let x 1u8;\n | ^" + - "Error [EPAR0370005]: expected = -- got ';'\n --> test:1:10\n |\n 1 | let x: u8;\n | ^" + - "Error [EPAR0370003]: unexpected EOF\n --> test:1:8\n |\n 1 | let x: u8\n | ^^" + - "Error [EPAR0370005]: expected 'i8', 'i16', 'i32', 'i64', 'i128', 'u8', 'u16', 'u32', 'u64', 'u128', 'field', 'group', 'address', 'bool', 'char' -- got '='\n --> test:1:8\n |\n 1 | let x: = 1;\n | ^" + - "Error [EPAR0370005]: expected ; -- got ']'\n --> test:1:11\n |\n 1 | let x: [u8] = 1;\n | ^" + - "Error [EPAR0370003]: unexpected EOF\n --> test:1:11\n |\n 1 | let x: [u8;\n | ^" + - "Error [EPAR0370005]: expected ] -- got 'u8'\n --> test:1:14\n |\n 1 | let x: [u8; 1u8] = [1,\n | ^^" + - "Error [EPAR0370009]: unexpected string: expected 'expression', got ']'\n --> test:1:15\n |\n 1 | let dbg: u8 = ];\n | ^" diff --git a/tests/parser/statement/definition_fail.leo b/tests/parser/statement/definition_fail.leo index f08dbb99f0..26290b7edd 100644 --- a/tests/parser/statement/definition_fail.leo +++ b/tests/parser/statement/definition_fail.leo @@ -69,3 +69,23 @@ let x let x: let x = (a, y]); + +let = 1u8; + +let; + +let x 1u8; + +let x: u8; + +let x: u8 + +let x: = 1; + +let x: [u8] = 1; + +let x: [u8; + +let x: [u8; 1u8] = [1, + +let dbg: u8 = ]; \ No newline at end of file From 45326234c3ab12b4d5efa654e372cd83b59116fb Mon Sep 17 00:00:00 2001 From: 0rphon <59403052+0rphon@users.noreply.github.com> Date: Wed, 23 Feb 2022 15:09:19 -0800 Subject: [PATCH 007/174] updated tests --- tests/expectations/parser/parser/statement/definition.leo.out | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/expectations/parser/parser/statement/definition.leo.out b/tests/expectations/parser/parser/statement/definition.leo.out index eeb30f3d76..2aee1e5016 100644 --- a/tests/expectations/parser/parser/statement/definition.leo.out +++ b/tests/expectations/parser/parser/statement/definition.leo.out @@ -1672,6 +1672,7 @@ outputs: col_stop: 6 path: "" content: "let x: [u8; (2, 2)] = [[0,0], [0,0]];" + parened: false type_: Array: - IntegerType: U8 @@ -1770,6 +1771,7 @@ outputs: col_stop: 6 path: "" content: "let x: address = aleo15u4r0gzjtqzepkgurgn7p3u5kkhs9p74rx6aun3uh2s5std6759svgmg53;" + parened: false type_: Address value: Value: From 6f9ffcedf269fc79d2cc808fa7b1d01ce7d82f70 Mon Sep 17 00:00:00 2001 From: 0rphon <59403052+0rphon@users.noreply.github.com> Date: Wed, 23 Feb 2022 17:24:51 -0800 Subject: [PATCH 008/174] more edge cases --- .../expression/access/array_access.leo.out | 22 + .../access/array_range_access.leo.out | 33 + .../parser/expression/access/tuple.leo.out | 13 + .../parser/expression/literal/group.leo.out | 43 ++ .../parser/expression/literal/int.leo.out | 1 + .../literal/int_parse/field.leo.out | 10 + .../expression/literal/int_parse/i128.leo.out | 11 + .../expression/literal/int_parse/i16.leo.out | 11 + .../expression/literal/int_parse/i32.leo.out | 11 + .../expression/literal/int_parse/i64.leo.out | 11 + .../expression/literal/int_parse/i8.leo.out | 11 + .../literal/int_parse/implicit.leo.out | 10 + .../literal/int_parse/mono_group.leo.out | 11 + .../expression/literal/int_parse/u128.leo.out | 11 + .../expression/literal/int_parse/u16.leo.out | 635 +++++++++--------- .../expression/literal/int_parse/u32.leo.out | 11 + .../expression/literal/int_parse/u64.leo.out | 11 + .../expression/literal/int_parse/u8.leo.out | 11 + .../parser/expression/unary/negate.leo.out | 21 + .../parser/expression/access/array_access.leo | 1 + .../expression/access/array_range_access.leo | 2 + tests/parser/expression/access/tuple.leo | 3 +- tests/parser/expression/literal/group.leo | 6 + tests/parser/expression/literal/int.leo | 2 + .../expression/literal/int_parse/field.leo | 2 + .../expression/literal/int_parse/i128.leo | 2 + .../expression/literal/int_parse/i16.leo | 2 + .../expression/literal/int_parse/i32.leo | 2 + .../expression/literal/int_parse/i64.leo | 2 + .../expression/literal/int_parse/i8.leo | 2 + .../expression/literal/int_parse/implicit.leo | 2 + .../literal/int_parse/mono_group.leo | 2 + .../expression/literal/int_parse/u128.leo | 2 + .../expression/literal/int_parse/u16.leo | 210 +++--- .../expression/literal/int_parse/u32.leo | 2 + .../expression/literal/int_parse/u64.leo | 2 + .../expression/literal/int_parse/u8.leo | 2 + tests/parser/expression/unary/negate.leo | 5 +- 38 files changed, 733 insertions(+), 418 deletions(-) diff --git a/tests/expectations/parser/parser/expression/access/array_access.leo.out b/tests/expectations/parser/parser/expression/access/array_access.leo.out index 045d403df6..b30b0f4baf 100644 --- a/tests/expectations/parser/parser/expression/access/array_access.leo.out +++ b/tests/expectations/parser/parser/expression/access/array_access.leo.out @@ -287,3 +287,25 @@ outputs: col_stop: 10 path: "" content: "x[x].0[x]" + - Access: + Array: + array: + Identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":2,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x[0xb1]\\\"}\"}" + index: + Value: + Implicit: + - "0xb1" + - span: + line_start: 1 + line_stop: 1 + col_start: 3 + col_stop: 7 + path: "" + content: "x[0xb1]" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 8 + path: "" + content: "x[0xb1]" diff --git a/tests/expectations/parser/parser/expression/access/array_range_access.leo.out b/tests/expectations/parser/parser/expression/access/array_range_access.leo.out index d930ff5e17..5ca975ae4d 100644 --- a/tests/expectations/parser/parser/expression/access/array_range_access.leo.out +++ b/tests/expectations/parser/parser/expression/access/array_range_access.leo.out @@ -127,6 +127,39 @@ outputs: col_stop: 10 path: "" content: "x[0..100]" + - Access: + ArrayRange: + array: + Identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":2,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x[0xb1..0xb3]\\\"}\"}" + left: + Value: + Implicit: + - "0xb1" + - span: + line_start: 1 + line_stop: 1 + col_start: 3 + col_stop: 7 + path: "" + content: "x[0xb1..0xb3]" + right: + Value: + Implicit: + - "0xb3" + - span: + line_start: 1 + line_stop: 1 + col_start: 9 + col_stop: 13 + path: "" + content: "x[0xb1..0xb3]" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 14 + path: "" + content: "x[0xb1..0xb3]" - Access: Array: array: diff --git a/tests/expectations/parser/parser/expression/access/tuple.leo.out b/tests/expectations/parser/parser/expression/access/tuple.leo.out index e904278a34..3a7a8bf43f 100644 --- a/tests/expectations/parser/parser/expression/access/tuple.leo.out +++ b/tests/expectations/parser/parser/expression/access/tuple.leo.out @@ -116,3 +116,16 @@ outputs: col_stop: 6 path: "" content: x.2.2 + - Access: + Tuple: + tuple: + Identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":2,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x.0x1\\\"}\"}" + index: + value: "0x1" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 6 + path: "" + content: x.0x1 diff --git a/tests/expectations/parser/parser/expression/literal/group.leo.out b/tests/expectations/parser/parser/expression/literal/group.leo.out index 0fc89b3546..d14795a232 100644 --- a/tests/expectations/parser/parser/expression/literal/group.leo.out +++ b/tests/expectations/parser/parser/expression/literal/group.leo.out @@ -680,3 +680,46 @@ outputs: col_stop: 16 path: "" content: "(123, 456)group" + - Value: + Group: + Single: + - "1" + - span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 7 + path: "" + content: 1group + - Value: + Group: + Single: + - "0xb" + - span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 9 + path: "" + content: "0xbgroup" + - Unary: + inner: + Value: + Group: + Single: + - "1" + - span: + line_start: 1 + line_stop: 1 + col_start: 2 + col_stop: 8 + path: "" + content: "-1group" + op: Negate + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 8 + path: "" + content: "-1group" diff --git a/tests/expectations/parser/parser/expression/literal/int.leo.out b/tests/expectations/parser/parser/expression/literal/int.leo.out index ccac03f213..474e5931e8 100644 --- a/tests/expectations/parser/parser/expression/literal/int.leo.out +++ b/tests/expectations/parser/parser/expression/literal/int.leo.out @@ -7,6 +7,7 @@ outputs: - "'123' @ 1:1-4" - "'456' @ 1:1-4" - "'123' @ 1:1-4,'456' @ 1:5-8" + - "'0x1b' @ 1:1-5" - "'87377802873778028737780287377802873778028737780287377802873778028737780287377802' @ 1:1-81" - "'8737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802' @ 1:1-401" - "'340130024' @ 1:1-10" diff --git a/tests/expectations/parser/parser/expression/literal/int_parse/field.leo.out b/tests/expectations/parser/parser/expression/literal/int_parse/field.leo.out index cb5554a989..7009ee5072 100644 --- a/tests/expectations/parser/parser/expression/literal/int_parse/field.leo.out +++ b/tests/expectations/parser/parser/expression/literal/int_parse/field.leo.out @@ -32,6 +32,16 @@ outputs: col_stop: 9 path: "" content: 456field + - Value: + Implicit: + - "" + - span: + line_start: 0 + line_stop: 0 + col_start: 0 + col_stop: 0 + path: "" + content: "" - Value: Field: - "87377802873778028737780287377802873778028737780287377802873778028737780287377802" diff --git a/tests/expectations/parser/parser/expression/literal/int_parse/i128.leo.out b/tests/expectations/parser/parser/expression/literal/int_parse/i128.leo.out index d77ef66839..a520e07664 100644 --- a/tests/expectations/parser/parser/expression/literal/int_parse/i128.leo.out +++ b/tests/expectations/parser/parser/expression/literal/int_parse/i128.leo.out @@ -34,6 +34,17 @@ outputs: col_stop: 8 path: "" content: 456i128 + - Value: + Integer: + - I128 + - "0xb" + - span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 8 + path: "" + content: "0xbi128" - Value: Integer: - I128 diff --git a/tests/expectations/parser/parser/expression/literal/int_parse/i16.leo.out b/tests/expectations/parser/parser/expression/literal/int_parse/i16.leo.out index 31e8e2dd46..7309299bf9 100644 --- a/tests/expectations/parser/parser/expression/literal/int_parse/i16.leo.out +++ b/tests/expectations/parser/parser/expression/literal/int_parse/i16.leo.out @@ -34,6 +34,17 @@ outputs: col_stop: 7 path: "" content: 456i16 + - Value: + Integer: + - I16 + - "0xb" + - span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 7 + path: "" + content: "0xbi16" - Value: Integer: - I16 diff --git a/tests/expectations/parser/parser/expression/literal/int_parse/i32.leo.out b/tests/expectations/parser/parser/expression/literal/int_parse/i32.leo.out index 33de0e6589..40c09d7d35 100644 --- a/tests/expectations/parser/parser/expression/literal/int_parse/i32.leo.out +++ b/tests/expectations/parser/parser/expression/literal/int_parse/i32.leo.out @@ -34,6 +34,17 @@ outputs: col_stop: 7 path: "" content: 456i32 + - Value: + Integer: + - I32 + - "0xb" + - span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 7 + path: "" + content: "0xbi32" - Value: Integer: - I32 diff --git a/tests/expectations/parser/parser/expression/literal/int_parse/i64.leo.out b/tests/expectations/parser/parser/expression/literal/int_parse/i64.leo.out index 8340b59d0a..8fbfd813a8 100644 --- a/tests/expectations/parser/parser/expression/literal/int_parse/i64.leo.out +++ b/tests/expectations/parser/parser/expression/literal/int_parse/i64.leo.out @@ -34,6 +34,17 @@ outputs: col_stop: 7 path: "" content: 456i64 + - Value: + Integer: + - I64 + - "0xb" + - span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 7 + path: "" + content: "0xbi64" - Value: Integer: - I64 diff --git a/tests/expectations/parser/parser/expression/literal/int_parse/i8.leo.out b/tests/expectations/parser/parser/expression/literal/int_parse/i8.leo.out index cbbf890a54..9096bc234a 100644 --- a/tests/expectations/parser/parser/expression/literal/int_parse/i8.leo.out +++ b/tests/expectations/parser/parser/expression/literal/int_parse/i8.leo.out @@ -34,6 +34,17 @@ outputs: col_stop: 6 path: "" content: 456i8 + - Value: + Integer: + - I8 + - "0xb" + - span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 6 + path: "" + content: "0xbi8" - Value: Integer: - I8 diff --git a/tests/expectations/parser/parser/expression/literal/int_parse/implicit.leo.out b/tests/expectations/parser/parser/expression/literal/int_parse/implicit.leo.out index 45764d3e0d..572e639c1c 100644 --- a/tests/expectations/parser/parser/expression/literal/int_parse/implicit.leo.out +++ b/tests/expectations/parser/parser/expression/literal/int_parse/implicit.leo.out @@ -32,6 +32,16 @@ outputs: col_stop: 4 path: "" content: "456" + - Value: + Implicit: + - "0xb" + - span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 4 + path: "" + content: "0xb" - Value: Implicit: - "87377802873778028737780287377802873778028737780287377802873778028737780287377802" diff --git a/tests/expectations/parser/parser/expression/literal/int_parse/mono_group.leo.out b/tests/expectations/parser/parser/expression/literal/int_parse/mono_group.leo.out index 26e2547c9f..f08b1b65cc 100644 --- a/tests/expectations/parser/parser/expression/literal/int_parse/mono_group.leo.out +++ b/tests/expectations/parser/parser/expression/literal/int_parse/mono_group.leo.out @@ -34,6 +34,17 @@ outputs: col_stop: 9 path: "" content: 456group + - Value: + Group: + Single: + - "0xb" + - span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 9 + path: "" + content: "0xbgroup" - Value: Group: Single: diff --git a/tests/expectations/parser/parser/expression/literal/int_parse/u128.leo.out b/tests/expectations/parser/parser/expression/literal/int_parse/u128.leo.out index e1867b83cf..9247af4eff 100644 --- a/tests/expectations/parser/parser/expression/literal/int_parse/u128.leo.out +++ b/tests/expectations/parser/parser/expression/literal/int_parse/u128.leo.out @@ -34,6 +34,17 @@ outputs: col_stop: 8 path: "" content: 456u128 + - Value: + Integer: + - U128 + - "0xb" + - span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 8 + path: "" + content: "0xbu128" - Value: Integer: - U128 diff --git a/tests/expectations/parser/parser/expression/literal/int_parse/u16.leo.out b/tests/expectations/parser/parser/expression/literal/int_parse/u16.leo.out index ac3fd8bffa..f92d542f72 100644 --- a/tests/expectations/parser/parser/expression/literal/int_parse/u16.leo.out +++ b/tests/expectations/parser/parser/expression/literal/int_parse/u16.leo.out @@ -4,15 +4,15 @@ expectation: Pass outputs: - Value: Integer: - - U8 + - U16 - "123" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 6 + col_stop: 7 path: "" - content: 123u8 + content: 123u16 - Value: Implicit: - "123" @@ -25,1134 +25,1145 @@ outputs: content: "123" - Value: Integer: - - U8 + - U16 - "456" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 6 + col_stop: 7 path: "" - content: 456u8 + content: 456u16 - Value: Integer: - - U8 + - U16 + - "0xb" + - span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 7 + path: "" + content: "0xbu16" + - Value: + Integer: + - U16 - "87377802873778028737780287377802873778028737780287377802873778028737780287377802" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 83 + col_stop: 84 path: "" - content: 87377802873778028737780287377802873778028737780287377802873778028737780287377802u8 + content: 87377802873778028737780287377802873778028737780287377802873778028737780287377802u16 - Value: Integer: - - U8 + - U16 - "8737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 403 + col_stop: 404 path: "" - content: 8737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802u8 + content: 8737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802u16 - Value: Integer: - - U8 + - U16 - "340130024" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 12 + col_stop: 13 path: "" - content: 340130024u8 + content: 340130024u16 - Value: Integer: - - U8 + - U16 - "158951116" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 12 + col_stop: 13 path: "" - content: 158951116u8 + content: 158951116u16 - Value: Integer: - - U8 + - U16 - "155529659" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 12 + col_stop: 13 path: "" - content: 155529659u8 + content: 155529659u16 - Value: Integer: - - U8 + - U16 - "642023166" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 12 + col_stop: 13 path: "" - content: 642023166u8 + content: 642023166u16 - Value: Integer: - - U8 + - U16 - "228481736" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 12 + col_stop: 13 path: "" - content: 228481736u8 + content: 228481736u16 - Value: Integer: - - U8 + - U16 - "469712960" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 12 + col_stop: 13 path: "" - content: 469712960u8 + content: 469712960u16 - Value: Integer: - - U8 + - U16 - "929437719" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 12 + col_stop: 13 path: "" - content: 929437719u8 + content: 929437719u16 - Value: Integer: - - U8 + - U16 - "721072814" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 12 + col_stop: 13 path: "" - content: 721072814u8 + content: 721072814u16 - Value: Integer: - - U8 + - U16 - "363254789" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 12 + col_stop: 13 path: "" - content: 363254789u8 + content: 363254789u16 - Value: Integer: - - U8 + - U16 - "906732565" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 12 + col_stop: 13 path: "" - content: 906732565u8 + content: 906732565u16 - Value: Integer: - - U8 + - U16 - "288246391" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 12 + col_stop: 13 path: "" - content: 288246391u8 + content: 288246391u16 - Value: Integer: - - U8 + - U16 - "724940549" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 12 + col_stop: 13 path: "" - content: 724940549u8 + content: 724940549u16 - Value: Integer: - - U8 + - U16 - "487101620" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 12 + col_stop: 13 path: "" - content: 487101620u8 + content: 487101620u16 - Value: Integer: - - U8 + - U16 - "261373583" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 12 + col_stop: 13 path: "" - content: 261373583u8 + content: 261373583u16 - Value: Integer: - - U8 + - U16 - "891163927" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 12 + col_stop: 13 path: "" - content: 891163927u8 + content: 891163927u16 - Value: Integer: - - U8 + - U16 - "743967544" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 12 + col_stop: 13 path: "" - content: 743967544u8 + content: 743967544u16 - Value: Integer: - - U8 + - U16 - "8372586" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 10 + col_stop: 11 path: "" - content: 8372586u8 + content: 8372586u16 - Value: Integer: - - U8 + - U16 - "461793278" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 12 + col_stop: 13 path: "" - content: 461793278u8 + content: 461793278u16 - Value: Integer: - - U8 + - U16 - "806307045" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 12 + col_stop: 13 path: "" - content: 806307045u8 + content: 806307045u16 - Value: Integer: - - U8 + - U16 - "122764546" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 12 + col_stop: 13 path: "" - content: 122764546u8 + content: 122764546u16 - Value: Integer: - - U8 + - U16 - "356336181" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 12 + col_stop: 13 path: "" - content: 356336181u8 + content: 356336181u16 - Value: Integer: - - U8 + - U16 - "158370903" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 12 + col_stop: 13 path: "" - content: 158370903u8 + content: 158370903u16 - Value: Integer: - - U8 + - U16 - "774460877" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 12 + col_stop: 13 path: "" - content: 774460877u8 + content: 774460877u16 - Value: Integer: - - U8 + - U16 - "557174131" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 12 + col_stop: 13 path: "" - content: 557174131u8 + content: 557174131u16 - Value: Integer: - - U8 + - U16 - "492401267" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 12 + col_stop: 13 path: "" - content: 492401267u8 + content: 492401267u16 - Value: Integer: - - U8 + - U16 - "893445620" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 12 + col_stop: 13 path: "" - content: 893445620u8 + content: 893445620u16 - Value: Integer: - - U8 + - U16 - "957757048" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 12 + col_stop: 13 path: "" - content: 957757048u8 + content: 957757048u16 - Value: Integer: - - U8 + - U16 - "721540649" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 12 + col_stop: 13 path: "" - content: 721540649u8 + content: 721540649u16 - Value: Integer: - - U8 + - U16 - "390746493" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 12 + col_stop: 13 path: "" - content: 390746493u8 + content: 390746493u16 - Value: Integer: - - U8 + - U16 - "211251725" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 12 + col_stop: 13 path: "" - content: 211251725u8 + content: 211251725u16 - Value: Integer: - - U8 + - U16 - "938266114" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 12 + col_stop: 13 path: "" - content: 938266114u8 + content: 938266114u16 - Value: Integer: - - U8 + - U16 - "156985870" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 12 + col_stop: 13 path: "" - content: 156985870u8 + content: 156985870u16 - Value: Integer: - - U8 + - U16 - "703831126" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 12 + col_stop: 13 path: "" - content: 703831126u8 + content: 703831126u16 - Value: Integer: - - U8 + - U16 - "729964155" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 12 + col_stop: 13 path: "" - content: 729964155u8 + content: 729964155u16 - Value: Integer: - - U8 + - U16 - "988151305" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 12 + col_stop: 13 path: "" - content: 988151305u8 + content: 988151305u16 - Value: Integer: - - U8 + - U16 - "320872435" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 12 + col_stop: 13 path: "" - content: 320872435u8 + content: 320872435u16 - Value: Integer: - - U8 + - U16 - "719287167" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 12 + col_stop: 13 path: "" - content: 719287167u8 + content: 719287167u16 - Value: Integer: - - U8 + - U16 - "152289486" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 12 + col_stop: 13 path: "" - content: 152289486u8 + content: 152289486u16 - Value: Integer: - - U8 + - U16 - "740067975" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 12 + col_stop: 13 path: "" - content: 740067975u8 + content: 740067975u16 - Value: Integer: - - U8 + - U16 - "728627816" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 12 + col_stop: 13 path: "" - content: 728627816u8 + content: 728627816u16 - Value: Integer: - - U8 + - U16 - "385008978" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 12 + col_stop: 13 path: "" - content: 385008978u8 + content: 385008978u16 - Value: Integer: - - U8 + - U16 - "553967635" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 12 + col_stop: 13 path: "" - content: 553967635u8 + content: 553967635u16 - Value: Integer: - - U8 + - U16 - "71980713" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 11 + col_stop: 12 path: "" - content: 71980713u8 + content: 71980713u16 - Value: Integer: - - U8 + - U16 - "519444716" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 12 + col_stop: 13 path: "" - content: 519444716u8 + content: 519444716u16 - Value: Integer: - - U8 + - U16 - "116499965" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 12 + col_stop: 13 path: "" - content: 116499965u8 + content: 116499965u16 - Value: Integer: - - U8 + - U16 - "717422268" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 12 + col_stop: 13 path: "" - content: 717422268u8 + content: 717422268u16 - Value: Integer: - - U8 + - U16 - "18966279" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 11 + col_stop: 12 path: "" - content: 18966279u8 + content: 18966279u16 - Value: Integer: - - U8 + - U16 - "22458638" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 11 + col_stop: 12 path: "" - content: 22458638u8 + content: 22458638u16 - Value: Integer: - - U8 + - U16 - "857282620" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 12 + col_stop: 13 path: "" - content: 857282620u8 + content: 857282620u16 - Value: Integer: - - U8 + - U16 - "920675898" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 12 + col_stop: 13 path: "" - content: 920675898u8 + content: 920675898u16 - Value: Integer: - - U8 + - U16 - "762235516" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 12 + col_stop: 13 path: "" - content: 762235516u8 + content: 762235516u16 - Value: Integer: - - U8 + - U16 - "469018377" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 12 + col_stop: 13 path: "" - content: 469018377u8 + content: 469018377u16 - Value: Integer: - - U8 + - U16 - "199986521" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 12 + col_stop: 13 path: "" - content: 199986521u8 + content: 199986521u16 - Value: Integer: - - U8 + - U16 - "536679358" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 12 + col_stop: 13 path: "" - content: 536679358u8 + content: 536679358u16 - Value: Integer: - - U8 + - U16 - "591399452" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 12 + col_stop: 13 path: "" - content: 591399452u8 + content: 591399452u16 - Value: Integer: - - U8 + - U16 - "83083158" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 11 + col_stop: 12 path: "" - content: 83083158u8 + content: 83083158u16 - Value: Integer: - - U8 + - U16 - "599449051" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 12 + col_stop: 13 path: "" - content: 599449051u8 + content: 599449051u16 - Value: Integer: - - U8 + - U16 - "445442318" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 12 + col_stop: 13 path: "" - content: 445442318u8 + content: 445442318u16 - Value: Integer: - - U8 + - U16 - "585486590" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 12 + col_stop: 13 path: "" - content: 585486590u8 + content: 585486590u16 - Value: Integer: - - U8 + - U16 - "209278800" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 12 + col_stop: 13 path: "" - content: 209278800u8 + content: 209278800u16 - Value: Integer: - - U8 + - U16 - "873568117" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 12 + col_stop: 13 path: "" - content: 873568117u8 + content: 873568117u16 - Value: Integer: - - U8 + - U16 - "664470940" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 12 + col_stop: 13 path: "" - content: 664470940u8 + content: 664470940u16 - Value: Integer: - - U8 + - U16 - "465262783" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 12 + col_stop: 13 path: "" - content: 465262783u8 + content: 465262783u16 - Value: Integer: - - U8 + - U16 - "605652874" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 12 + col_stop: 13 path: "" - content: 605652874u8 + content: 605652874u16 - Value: Integer: - - U8 + - U16 - "376803940" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 12 + col_stop: 13 path: "" - content: 376803940u8 + content: 376803940u16 - Value: Integer: - - U8 + - U16 - "965247040" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 12 + col_stop: 13 path: "" - content: 965247040u8 + content: 965247040u16 - Value: Integer: - - U8 + - U16 - "598474509" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 12 + col_stop: 13 path: "" - content: 598474509u8 + content: 598474509u16 - Value: Integer: - - U8 + - U16 - "845119918" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 12 + col_stop: 13 path: "" - content: 845119918u8 + content: 845119918u16 - Value: Integer: - - U8 + - U16 - "648159133" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 12 + col_stop: 13 path: "" - content: 648159133u8 + content: 648159133u16 - Value: Integer: - - U8 + - U16 - "669051032" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 12 + col_stop: 13 path: "" - content: 669051032u8 + content: 669051032u16 - Value: Integer: - - U8 + - U16 - "800600261" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 12 + col_stop: 13 path: "" - content: 800600261u8 + content: 800600261u16 - Value: Integer: - - U8 + - U16 - "434689764" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 12 + col_stop: 13 path: "" - content: 434689764u8 + content: 434689764u16 - Value: Integer: - - U8 + - U16 - "520060080" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 12 + col_stop: 13 path: "" - content: 520060080u8 + content: 520060080u16 - Value: Integer: - - U8 + - U16 - "804659385" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 12 + col_stop: 13 path: "" - content: 804659385u8 + content: 804659385u16 - Value: Integer: - - U8 + - U16 - "537828058" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 12 + col_stop: 13 path: "" - content: 537828058u8 + content: 537828058u16 - Value: Integer: - - U8 + - U16 - "716600292" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 12 + col_stop: 13 path: "" - content: 716600292u8 + content: 716600292u16 - Value: Integer: - - U8 + - U16 - "387020273" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 12 + col_stop: 13 path: "" - content: 387020273u8 + content: 387020273u16 - Value: Integer: - - U8 + - U16 - "199375617" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 12 + col_stop: 13 path: "" - content: 199375617u8 + content: 199375617u16 - Value: Integer: - - U8 + - U16 - "680337189" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 12 + col_stop: 13 path: "" - content: 680337189u8 + content: 680337189u16 - Value: Integer: - - U8 + - U16 - "818479931" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 12 + col_stop: 13 path: "" - content: 818479931u8 + content: 818479931u16 - Value: Integer: - - U8 + - U16 - "893693281" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 12 + col_stop: 13 path: "" - content: 893693281u8 + content: 893693281u16 - Value: Integer: - - U8 + - U16 - "87377802" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 11 + col_stop: 12 path: "" - content: 87377802u8 + content: 87377802u16 - Value: Integer: - - U8 + - U16 - "84699261" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 11 + col_stop: 12 path: "" - content: 84699261u8 + content: 84699261u16 - Value: Integer: - - U8 + - U16 - "292826090" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 12 + col_stop: 13 path: "" - content: 292826090u8 + content: 292826090u16 - Value: Integer: - - U8 + - U16 - "569171405" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 12 + col_stop: 13 path: "" - content: 569171405u8 + content: 569171405u16 - Value: Integer: - - U8 + - U16 - "387436237" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 12 + col_stop: 13 path: "" - content: 387436237u8 + content: 387436237u16 - Value: Integer: - - U8 + - U16 - "150682190" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 12 + col_stop: 13 path: "" - content: 150682190u8 + content: 150682190u16 - Value: Integer: - - U8 + - U16 - "888770419" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 12 + col_stop: 13 path: "" - content: 888770419u8 + content: 888770419u16 - Value: Integer: - - U8 + - U16 - "824696431" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 12 + col_stop: 13 path: "" - content: 824696431u8 + content: 824696431u16 - Value: Integer: - - U8 + - U16 - "765659803" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 12 + col_stop: 13 path: "" - content: 765659803u8 + content: 765659803u16 - Value: Integer: - - U8 + - U16 - "270163693" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 12 + col_stop: 13 path: "" - content: 270163693u8 + content: 270163693u16 - Value: Integer: - - U8 + - U16 - "427940240" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 12 + col_stop: 13 path: "" - content: 427940240u8 + content: 427940240u16 - Value: Integer: - - U8 + - U16 - "504997332" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 12 + col_stop: 13 path: "" - content: 504997332u8 + content: 504997332u16 - Value: Integer: - - U8 + - U16 - "337808338" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 12 + col_stop: 13 path: "" - content: 337808338u8 + content: 337808338u16 - Value: Integer: - - U8 + - U16 - "907200008" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 12 + col_stop: 13 path: "" - content: 907200008u8 + content: 907200008u16 - Value: Integer: - - U8 + - U16 - "757177889" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 12 + col_stop: 13 path: "" - content: 757177889u8 + content: 757177889u16 - Value: Integer: - - U8 + - U16 - "696697188" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 12 + col_stop: 13 path: "" - content: 696697188u8 + content: 696697188u16 - Value: Integer: - - U8 + - U16 - "41376051" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 11 + col_stop: 12 path: "" - content: 41376051u8 + content: 41376051u16 - Value: Integer: - - U8 + - U16 - "496293518" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 12 + col_stop: 13 path: "" - content: 496293518u8 + content: 496293518u16 - Value: Integer: - - U8 + - U16 - "251218820" - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 12 + col_stop: 13 path: "" - content: 251218820u8 + content: 251218820u16 diff --git a/tests/expectations/parser/parser/expression/literal/int_parse/u32.leo.out b/tests/expectations/parser/parser/expression/literal/int_parse/u32.leo.out index 0e9a45c823..3a6f205ab1 100644 --- a/tests/expectations/parser/parser/expression/literal/int_parse/u32.leo.out +++ b/tests/expectations/parser/parser/expression/literal/int_parse/u32.leo.out @@ -34,6 +34,17 @@ outputs: col_stop: 7 path: "" content: 456u32 + - Value: + Integer: + - U32 + - "0xb" + - span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 7 + path: "" + content: "0xbu32" - Value: Integer: - U32 diff --git a/tests/expectations/parser/parser/expression/literal/int_parse/u64.leo.out b/tests/expectations/parser/parser/expression/literal/int_parse/u64.leo.out index 0e9a45c823..e5c4c3397e 100644 --- a/tests/expectations/parser/parser/expression/literal/int_parse/u64.leo.out +++ b/tests/expectations/parser/parser/expression/literal/int_parse/u64.leo.out @@ -34,6 +34,17 @@ outputs: col_stop: 7 path: "" content: 456u32 + - Value: + Integer: + - U64 + - "0xb" + - span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 7 + path: "" + content: "0xbu64" - Value: Integer: - U32 diff --git a/tests/expectations/parser/parser/expression/literal/int_parse/u8.leo.out b/tests/expectations/parser/parser/expression/literal/int_parse/u8.leo.out index ac3fd8bffa..e57e3679bb 100644 --- a/tests/expectations/parser/parser/expression/literal/int_parse/u8.leo.out +++ b/tests/expectations/parser/parser/expression/literal/int_parse/u8.leo.out @@ -34,6 +34,17 @@ outputs: col_stop: 6 path: "" content: 456u8 + - Value: + Integer: + - U8 + - "0xb" + - span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 6 + path: "" + content: "0xbu8" - Value: Integer: - U8 diff --git a/tests/expectations/parser/parser/expression/unary/negate.leo.out b/tests/expectations/parser/parser/expression/unary/negate.leo.out index 03766862d2..2bac6e2c01 100644 --- a/tests/expectations/parser/parser/expression/unary/negate.leo.out +++ b/tests/expectations/parser/parser/expression/unary/negate.leo.out @@ -143,3 +143,24 @@ outputs: col_stop: 5 path: "" content: "-5i8" + - Value: + Implicit: + - "-0xb" + - span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 5 + path: "" + content: "-0xb" + - Value: + Integer: + - U8 + - "-0xb" + - span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 7 + path: "" + content: "-0xbu8" diff --git a/tests/parser/expression/access/array_access.leo b/tests/parser/expression/access/array_access.leo index 9773b41982..51c6652239 100644 --- a/tests/parser/expression/access/array_access.leo +++ b/tests/parser/expression/access/array_access.leo @@ -12,3 +12,4 @@ x[0]() x()[0] x(y)::y(x) x[x].0[x] +x[0xb1] \ No newline at end of file diff --git a/tests/parser/expression/access/array_range_access.leo b/tests/parser/expression/access/array_range_access.leo index 4ae4f62c3f..2fb418a8ec 100644 --- a/tests/parser/expression/access/array_range_access.leo +++ b/tests/parser/expression/access/array_range_access.leo @@ -8,6 +8,8 @@ x[1..] x[..1] x[1..1] x[0..100] +x[0xb1..0xb3] + x[323452345.2345234523453453][323452345.2345234523453453] diff --git a/tests/parser/expression/access/tuple.leo b/tests/parser/expression/access/tuple.leo index c96e38953f..2b09806562 100644 --- a/tests/parser/expression/access/tuple.leo +++ b/tests/parser/expression/access/tuple.leo @@ -8,4 +8,5 @@ x.1 x.2 x.0.0 x.1.1 -x.2.2 \ No newline at end of file +x.2.2 +x.0x1 \ No newline at end of file diff --git a/tests/parser/expression/literal/group.leo b/tests/parser/expression/literal/group.leo index c69a52b93c..fcecaf92cb 100644 --- a/tests/parser/expression/literal/group.leo +++ b/tests/parser/expression/literal/group.leo @@ -66,3 +66,9 @@ expectation: Pass (123, 456)group (123, 456)group + +1group + +0xbgroup + +-1group \ No newline at end of file diff --git a/tests/parser/expression/literal/int.leo b/tests/parser/expression/literal/int.leo index a2421a23a2..731cfb7a7c 100644 --- a/tests/parser/expression/literal/int.leo +++ b/tests/parser/expression/literal/int.leo @@ -12,6 +12,8 @@ expectation: Pass 123 456 +0x1b + 87377802873778028737780287377802873778028737780287377802873778028737780287377802 8737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802 diff --git a/tests/parser/expression/literal/int_parse/field.leo b/tests/parser/expression/literal/int_parse/field.leo index e8537beb68..9e89345ade 100644 --- a/tests/parser/expression/literal/int_parse/field.leo +++ b/tests/parser/expression/literal/int_parse/field.leo @@ -8,6 +8,8 @@ expectation: Pass 123 456field +// 0xbfield + 87377802873778028737780287377802873778028737780287377802873778028737780287377802field 8737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802field diff --git a/tests/parser/expression/literal/int_parse/i128.leo b/tests/parser/expression/literal/int_parse/i128.leo index 93e554eee9..d79a2b873f 100644 --- a/tests/parser/expression/literal/int_parse/i128.leo +++ b/tests/parser/expression/literal/int_parse/i128.leo @@ -8,6 +8,8 @@ expectation: Pass 123 456i128 +0xbi128 + 87377802873778028737780287377802873778028737780287377802873778028737780287377802i128 8737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802i128 diff --git a/tests/parser/expression/literal/int_parse/i16.leo b/tests/parser/expression/literal/int_parse/i16.leo index 20b4af030c..8aaf6e2fe0 100644 --- a/tests/parser/expression/literal/int_parse/i16.leo +++ b/tests/parser/expression/literal/int_parse/i16.leo @@ -8,6 +8,8 @@ expectation: Pass 123 456i16 +0xbi16 + 87377802873778028737780287377802873778028737780287377802873778028737780287377802i16 8737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802i16 diff --git a/tests/parser/expression/literal/int_parse/i32.leo b/tests/parser/expression/literal/int_parse/i32.leo index 518f8cd778..08c2bf3411 100644 --- a/tests/parser/expression/literal/int_parse/i32.leo +++ b/tests/parser/expression/literal/int_parse/i32.leo @@ -8,6 +8,8 @@ expectation: Pass 123 456i32 +0xbi32 + 87377802873778028737780287377802873778028737780287377802873778028737780287377802i32 8737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802i32 diff --git a/tests/parser/expression/literal/int_parse/i64.leo b/tests/parser/expression/literal/int_parse/i64.leo index fd1a259200..0b5bee3fa7 100644 --- a/tests/parser/expression/literal/int_parse/i64.leo +++ b/tests/parser/expression/literal/int_parse/i64.leo @@ -8,6 +8,8 @@ expectation: Pass 123 456i64 +0xbi64 + 87377802873778028737780287377802873778028737780287377802873778028737780287377802i64 8737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802i64 diff --git a/tests/parser/expression/literal/int_parse/i8.leo b/tests/parser/expression/literal/int_parse/i8.leo index 899b42fecc..29f3080196 100644 --- a/tests/parser/expression/literal/int_parse/i8.leo +++ b/tests/parser/expression/literal/int_parse/i8.leo @@ -8,6 +8,8 @@ expectation: Pass 123 456i8 +0xbi8 + 87377802873778028737780287377802873778028737780287377802873778028737780287377802i8 8737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802i8 diff --git a/tests/parser/expression/literal/int_parse/implicit.leo b/tests/parser/expression/literal/int_parse/implicit.leo index 34c1eed0bd..227681710d 100644 --- a/tests/parser/expression/literal/int_parse/implicit.leo +++ b/tests/parser/expression/literal/int_parse/implicit.leo @@ -8,6 +8,8 @@ expectation: Pass 123 456 +0xb + 87377802873778028737780287377802873778028737780287377802873778028737780287377802 8737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802 diff --git a/tests/parser/expression/literal/int_parse/mono_group.leo b/tests/parser/expression/literal/int_parse/mono_group.leo index 8871214875..c3b5cdc8c4 100644 --- a/tests/parser/expression/literal/int_parse/mono_group.leo +++ b/tests/parser/expression/literal/int_parse/mono_group.leo @@ -8,6 +8,8 @@ expectation: Pass 123 456group +0xbgroup + 87377802873778028737780287377802873778028737780287377802873778028737780287377802group 8737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802group diff --git a/tests/parser/expression/literal/int_parse/u128.leo b/tests/parser/expression/literal/int_parse/u128.leo index d010081723..9da4ae35cc 100644 --- a/tests/parser/expression/literal/int_parse/u128.leo +++ b/tests/parser/expression/literal/int_parse/u128.leo @@ -8,6 +8,8 @@ expectation: Pass 123 456u128 +0xbu128 + 87377802873778028737780287377802873778028737780287377802873778028737780287377802u128 8737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802u128 diff --git a/tests/parser/expression/literal/int_parse/u16.leo b/tests/parser/expression/literal/int_parse/u16.leo index 1518748456..22bc862509 100644 --- a/tests/parser/expression/literal/int_parse/u16.leo +++ b/tests/parser/expression/literal/int_parse/u16.leo @@ -3,112 +3,114 @@ namespace: ParseExpression expectation: Pass */ -123u8 +123u16 123 -456u8 +456u16 -87377802873778028737780287377802873778028737780287377802873778028737780287377802u8 +0xbu16 -8737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802u8 +87377802873778028737780287377802873778028737780287377802873778028737780287377802u16 -340130024u8 -158951116u8 -155529659u8 -642023166u8 -228481736u8 -469712960u8 -929437719u8 -721072814u8 -363254789u8 -906732565u8 -288246391u8 -724940549u8 -487101620u8 -261373583u8 -891163927u8 -743967544u8 -8372586u8 -461793278u8 -806307045u8 -122764546u8 -356336181u8 -158370903u8 -774460877u8 -557174131u8 -492401267u8 -893445620u8 -957757048u8 -721540649u8 -390746493u8 -211251725u8 -938266114u8 -156985870u8 -703831126u8 -729964155u8 -988151305u8 -320872435u8 -719287167u8 -152289486u8 -740067975u8 -728627816u8 -385008978u8 -553967635u8 -71980713u8 -519444716u8 -116499965u8 -717422268u8 -18966279u8 -22458638u8 -857282620u8 -920675898u8 -762235516u8 -469018377u8 -199986521u8 -536679358u8 -591399452u8 -83083158u8 -599449051u8 -445442318u8 -585486590u8 -209278800u8 -873568117u8 -664470940u8 -465262783u8 -605652874u8 -376803940u8 -965247040u8 -598474509u8 -845119918u8 -648159133u8 -669051032u8 -800600261u8 -434689764u8 -520060080u8 -804659385u8 -537828058u8 -716600292u8 -387020273u8 -199375617u8 -680337189u8 -818479931u8 -893693281u8 -87377802u8 -84699261u8 -292826090u8 -569171405u8 -387436237u8 -150682190u8 -888770419u8 -824696431u8 -765659803u8 -270163693u8 -427940240u8 -504997332u8 -337808338u8 -907200008u8 -757177889u8 -696697188u8 -41376051u8 -496293518u8 -251218820u8 \ No newline at end of file +8737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802u16 + +340130024u16 +158951116u16 +155529659u16 +642023166u16 +228481736u16 +469712960u16 +929437719u16 +721072814u16 +363254789u16 +906732565u16 +288246391u16 +724940549u16 +487101620u16 +261373583u16 +891163927u16 +743967544u16 +8372586u16 +461793278u16 +806307045u16 +122764546u16 +356336181u16 +158370903u16 +774460877u16 +557174131u16 +492401267u16 +893445620u16 +957757048u16 +721540649u16 +390746493u16 +211251725u16 +938266114u16 +156985870u16 +703831126u16 +729964155u16 +988151305u16 +320872435u16 +719287167u16 +152289486u16 +740067975u16 +728627816u16 +385008978u16 +553967635u16 +71980713u16 +519444716u16 +116499965u16 +717422268u16 +18966279u16 +22458638u16 +857282620u16 +920675898u16 +762235516u16 +469018377u16 +199986521u16 +536679358u16 +591399452u16 +83083158u16 +599449051u16 +445442318u16 +585486590u16 +209278800u16 +873568117u16 +664470940u16 +465262783u16 +605652874u16 +376803940u16 +965247040u16 +598474509u16 +845119918u16 +648159133u16 +669051032u16 +800600261u16 +434689764u16 +520060080u16 +804659385u16 +537828058u16 +716600292u16 +387020273u16 +199375617u16 +680337189u16 +818479931u16 +893693281u16 +87377802u16 +84699261u16 +292826090u16 +569171405u16 +387436237u16 +150682190u16 +888770419u16 +824696431u16 +765659803u16 +270163693u16 +427940240u16 +504997332u16 +337808338u16 +907200008u16 +757177889u16 +696697188u16 +41376051u16 +496293518u16 +251218820u16 \ No newline at end of file diff --git a/tests/parser/expression/literal/int_parse/u32.leo b/tests/parser/expression/literal/int_parse/u32.leo index 05efd55c47..dfde56b641 100644 --- a/tests/parser/expression/literal/int_parse/u32.leo +++ b/tests/parser/expression/literal/int_parse/u32.leo @@ -8,6 +8,8 @@ expectation: Pass 123 456u32 +0xbu32 + 87377802873778028737780287377802873778028737780287377802873778028737780287377802u32 8737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802u32 diff --git a/tests/parser/expression/literal/int_parse/u64.leo b/tests/parser/expression/literal/int_parse/u64.leo index 05efd55c47..e623496208 100644 --- a/tests/parser/expression/literal/int_parse/u64.leo +++ b/tests/parser/expression/literal/int_parse/u64.leo @@ -8,6 +8,8 @@ expectation: Pass 123 456u32 +0xbu64 + 87377802873778028737780287377802873778028737780287377802873778028737780287377802u32 8737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802u32 diff --git a/tests/parser/expression/literal/int_parse/u8.leo b/tests/parser/expression/literal/int_parse/u8.leo index 1518748456..c0d3c58a4b 100644 --- a/tests/parser/expression/literal/int_parse/u8.leo +++ b/tests/parser/expression/literal/int_parse/u8.leo @@ -8,6 +8,8 @@ expectation: Pass 123 456u8 +0xbu8 + 87377802873778028737780287377802873778028737780287377802873778028737780287377802u8 8737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802u8 diff --git a/tests/parser/expression/unary/negate.leo b/tests/parser/expression/unary/negate.leo index 035a0c3c26..91fb2d0a03 100644 --- a/tests/parser/expression/unary/negate.leo +++ b/tests/parser/expression/unary/negate.leo @@ -11,4 +11,7 @@ expectation: Pass -!x -5 --5i8 \ No newline at end of file +-5i8 + +-0xb +-0xbu8 \ No newline at end of file From cc71ed2d07234644ea3946288f0600dcc2ed2d6f Mon Sep 17 00:00:00 2001 From: 0rphon <59403052+0rphon@users.noreply.github.com> Date: Fri, 25 Feb 2022 17:21:41 -0800 Subject: [PATCH 009/174] emoji tests --- .../parser/expression/literal/string.leo.out | 65 +++++++++++++++++++ tests/parser/expression/literal/string.leo | 11 +++- 2 files changed, 75 insertions(+), 1 deletion(-) diff --git a/tests/expectations/parser/parser/expression/literal/string.leo.out b/tests/expectations/parser/parser/expression/literal/string.leo.out index c6578c68ae..0cff185246 100644 --- a/tests/expectations/parser/parser/expression/literal/string.leo.out +++ b/tests/expectations/parser/parser/expression/literal/string.leo.out @@ -199,3 +199,68 @@ outputs: col_stop: 15 path: "" content: "\"😭😂😘\"" + - Value: + String: + - - Scalar: 9995 + - Scalar: 127999 + - span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 10 + path: "" + content: "\"✋🏿\"" + - Value: + String: + - - Scalar: 65535 + - span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 6 + path: "" + content: "\"￿\"" + - Value: + String: + - - Scalar: 65533 + - Scalar: 65533 + - Scalar: 65533 + - span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 12 + path: "" + content: "\"���\"" + - Value: + String: + - - Scalar: 65288 + - Scalar: 62 + - Scalar: 65299 + - Scalar: 60 + - Scalar: 65289 + - Scalar: 19977 + - span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 17 + path: "" + content: "\"(>3<)三\"" + - Value: + String: + - - Scalar: 40 + - Scalar: 9285 + - Scalar: 8747 + - Scalar: 176 + - Scalar: 2570 + - Scalar: 176 + - Scalar: 41 + - Scalar: 8747 + - span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 21 + path: "" + content: "\"(⑅∫°ਊ°)∫\"" diff --git a/tests/parser/expression/literal/string.leo b/tests/parser/expression/literal/string.leo index 2bc190fd01..9fb55dc855 100644 --- a/tests/parser/expression/literal/string.leo +++ b/tests/parser/expression/literal/string.leo @@ -23,4 +23,13 @@ expectation: Pass "aa \\ \" \' \n aa \t \r \0" "test 😒€" -"😭😂😘" \ No newline at end of file +"😭😂😘" + +"✋🏿" + +"￿" + +"���" + +"(>3<)三" +"(⑅∫°ਊ°)∫" \ No newline at end of file From 2b4751e7e13d5c4ba49f4a1f05a6f4fe3b685430 Mon Sep 17 00:00:00 2001 From: 0rphon <59403052+0rphon@users.noreply.github.com> Date: Tue, 1 Mar 2022 12:15:54 -0800 Subject: [PATCH 010/174] regenned tests --- .../expression/literal/char_fail.leo.out | 74 +++++++++---------- .../expression/literal/string_fail.leo.out | 16 ++-- .../parser/statement/expression_fail.leo.out | 4 +- 3 files changed, 47 insertions(+), 47 deletions(-) diff --git a/tests/expectations/parser/parser/expression/literal/char_fail.leo.out b/tests/expectations/parser/parser/expression/literal/char_fail.leo.out index 6b1e104d08..be3fa5fdee 100644 --- a/tests/expectations/parser/parser/expression/literal/char_fail.leo.out +++ b/tests/expectations/parser/parser/expression/literal/char_fail.leo.out @@ -2,40 +2,40 @@ namespace: Token expectation: Fail outputs: - - "Error [EPAR0370000]: '\n --> test:1:1\n |\n 1 | '\\'\n | ^" - - "Error [EPAR0370000]: '\n --> test:1:1\n |\n 1 | 'a\n | ^" - - "Error [EPAR0370000]: '\n --> test:1:1\n |\n 1 | ''\n | ^" - - "Error [EPAR0370000]: '\n --> test:1:1\n |\n 1 | '\\\n | ^" - - "Error [EPAR0370000]: '\n --> test:1:1\n |\n 1 | '\\x9A'\n | ^" - - "Error [EPAR0370000]: '\n --> test:1:1\n |\n 1 | '\\x7'\n | ^" - - "Error [EPAR0370000]: '\n --> test:1:1\n |\n 1 | '\\x7g'\n | ^" - - "Error [EPAR0370000]: '\n --> test:1:1\n |\n 1 | '\\xz'\n | ^" - - "Error [EPAR0370000]: '\n --> test:1:1\n |\n 1 | '\\x80'\n | ^" - - "Error [EPAR0370000]: '\n --> test:1:1\n |\n 1 | '\\xc1'\n | ^" - - "Error [EPAR0370000]: '\n --> test:1:1\n |\n 1 | '\\xc2'\n | ^" - - "Error [EPAR0370000]: '\n --> test:1:1\n |\n 1 | '\\xDF'\n | ^" - - "Error [EPAR0370000]: '\n --> test:1:1\n |\n 1 | '\\xC0'\n | ^" - - "Error [EPAR0370000]: '\n --> test:1:1\n |\n 1 | '\\xe0'\n | ^" - - "Error [EPAR0370000]: '\n --> test:1:1\n |\n 1 | '\\x9f'\n | ^" - - "Error [EPAR0370000]: '\n --> test:1:1\n |\n 1 | 'abcdefg'\n | ^" - - "Error [EPAR0370000]: '\n --> test:1:1\n |\n 1 | '\\t\\t'\n | ^" - - "Error [EPAR0370000]: '\n --> test:1:1\n |\n 1 | '\\a'\n | ^" - - "Error [EPAR0370000]: '\n --> test:1:1\n |\n 1 | '\\z'\n | ^" - - "Error [EPAR0370000]: '\n --> test:1:1\n |\n 1 | '\\A'\n | ^" - - "Error [EPAR0370000]: '\n --> test:1:1\n |\n 1 | '\\Z'\n | ^" - - "Error [EPAR0370000]: '\n --> test:1:1\n |\n 1 | '\\1'\n | ^" - - "Error [EPAR0370000]: '\n --> test:1:1\n |\n 1 | '\\9'\n | ^" - - "Error [EPAR0370000]: '\n --> test:1:1\n |\n 1 | '\\*'\n | ^" - - "Error [EPAR0370000]: '\n --> test:1:1\n |\n 1 | '\\x'\n | ^" - - "Error [EPAR0370000]: '\n --> test:1:1\n |\n 1 | '\\u'\n | ^" - - "Error [EPAR0370000]: '\n --> test:1:1\n |\n 1 | '\\u{bbbbb}\\u{aaaa}'\n | ^" - - "Error [EPAR0370000]: '\n --> test:1:1\n |\n 1 | '\\uz'\n | ^" - - "Error [EPAR0370000]: '\n --> test:1:1\n |\n 1 | '\\u1'\n | ^" - - "Error [EPAR0370000]: '\n --> test:1:1\n |\n 1 | '\\u123'\n | ^" - - "Error [EPAR0370000]: '\n --> test:1:1\n |\n 1 | '\\u{2764z'\n | ^" - - "Error [EPAR0370000]: '\n --> test:1:1\n |\n 1 | '\\u{276g}'\n | ^" - - "Error [EPAR0370000]: '\n --> test:1:1\n |\n 1 | '\\u00000000'\n | ^" - - "Error [EPAR0370000]: '\n --> test:1:1\n |\n 1 | '\\u01000000'\n | ^" - - "Error [EPAR0370000]: '\n --> test:1:1\n |\n 1 | '\\u9999999'\n | ^" - - "Error [EPAR0370000]: '\n --> test:1:1\n |\n 1 | '\\u{110000}'\n | ^" - - "Error [EPAR0370000]: '\n --> test:1:1\n |\n 1 | '😭😂😘'\n | ^" + - "Error [EPAR0370028]: Expected a closed char but found '\\'." + - "Error [EPAR0370028]: Expected a closed char but found 'a." + - "Error [EPAR0370029]: Expected valid character but found ." + - "Error [EPAR0370028]: Expected a closed char but found '\\." + - "Error [EPAR0370029]: Expected valid character but found '\\x9." + - "Error [EPAR0370029]: Expected valid character but found '\\x." + - "Error [EPAR0370029]: Expected valid character but found '\\x7." + - "Error [EPAR0370029]: Expected valid character but found '\\x." + - "Error [EPAR0370029]: Expected valid character but found '\\x8." + - "Error [EPAR0370029]: Expected valid character but found '\\xc." + - "Error [EPAR0370029]: Expected valid character but found '\\xc." + - "Error [EPAR0370029]: Expected valid character but found '\\xD." + - "Error [EPAR0370029]: Expected valid character but found '\\xC." + - "Error [EPAR0370029]: Expected valid character but found '\\xe." + - "Error [EPAR0370029]: Expected valid character but found '\\x9." + - "Error [EPAR0370029]: Expected valid character but found 'abcdef." + - "Error [EPAR0370029]: Expected valid character but found '\\t\\." + - "Error [EPAR0370029]: Expected valid character but found '\\." + - "Error [EPAR0370029]: Expected valid character but found '\\." + - "Error [EPAR0370029]: Expected valid character but found '\\." + - "Error [EPAR0370029]: Expected valid character but found '\\." + - "Error [EPAR0370029]: Expected valid character but found '\\." + - "Error [EPAR0370029]: Expected valid character but found '\\." + - "Error [EPAR0370029]: Expected valid character but found '\\." + - "Error [EPAR0370029]: Expected valid character but found '\\." + - "Error [EPAR0370026]: Expected a valid escape character but found 117." + - "Error [EPAR0370029]: Expected valid character but found '\\u{bbbbb}\\u{aaaa." + - "Error [EPAR0370026]: Expected a valid escape character but found 117." + - "Error [EPAR0370026]: Expected a valid escape character but found 117." + - "Error [EPAR0370026]: Expected a valid escape character but found 117." + - "Error [EPAR0370029]: Expected valid character but found '\\u{2764." + - "Error [EPAR0370029]: Expected valid character but found '\\u{276g." + - "Error [EPAR0370026]: Expected a valid escape character but found 117." + - "Error [EPAR0370026]: Expected a valid escape character but found 117." + - "Error [EPAR0370026]: Expected a valid escape character but found 117." + - "Error [EPAR0370029]: Expected valid character but found '\\u{110000." + - "Error [EPAR0370029]: Expected valid character but found '😭😂�." diff --git a/tests/expectations/parser/parser/expression/literal/string_fail.leo.out b/tests/expectations/parser/parser/expression/literal/string_fail.leo.out index 331c4df2bc..9b42287840 100644 --- a/tests/expectations/parser/parser/expression/literal/string_fail.leo.out +++ b/tests/expectations/parser/parser/expression/literal/string_fail.leo.out @@ -2,11 +2,11 @@ namespace: Token expectation: Fail outputs: - - "Error [EPAR0370000]: \"\n --> test:1:1\n |\n 1 | \"Hello world!\n | ^" - - "Error [EPAR0370000]: \"\n --> test:1:1\n |\n 1 | \"\\\"\n | ^" - - "Error [EPAR0370000]: \"\n --> test:1:1\n |\n 1 | \"\\\n | ^" - - "Error [EPAR0370000]: \"\n --> test:1:1\n |\n 1 | \"\\l\"\n | ^" - - "Error [EPAR0370000]: \"\n --> test:1:1\n |\n 1 | \"\\uaaa\"\n | ^" - - "Error [EPAR0370000]: \"\n --> test:1:1\n |\n 1 | \"\\u\"\n | ^" - - "Error [EPAR0370000]: \"\n --> test:1:1\n |\n 1 | \"\\xFF\"\n | ^" - - "Error [EPAR0370000]: \"\n --> test:1:1\n |\n 1 | \"\\x\"\n | ^" + - "Error [EPAR0370027]: Expected a closed string but found \"Hello world!." + - "Error [EPAR0370027]: Expected a closed string but found \"\\\"." + - "Error [EPAR0370027]: Expected a closed string but found \"\\." + - "Error [EPAR0370026]: Expected a valid escape character but found \\l." + - "Error [EPAR0370027]: Expected a closed string but found \"\\uaaa\"." + - "Error [EPAR0370027]: Expected a closed string but found \"\\u\"." + - "Error [EPAR0370026]: Expected a valid escape character but found \\xFF." + - "Error [EPAR0370027]: Expected a closed string but found \"\\x\"." diff --git a/tests/expectations/parser/parser/statement/expression_fail.leo.out b/tests/expectations/parser/parser/statement/expression_fail.leo.out index 4142d0155e..25eb94e985 100644 --- a/tests/expectations/parser/parser/statement/expression_fail.leo.out +++ b/tests/expectations/parser/parser/statement/expression_fail.leo.out @@ -4,7 +4,7 @@ expectation: Fail outputs: - "Error [EPAR0370009]: unexpected string: expected 'expression', got ']'\n --> test:1:2\n |\n 1 | (];\n | ^" - "Error [EPAR0370009]: unexpected string: expected 'expression', got ')'\n --> test:1:2\n |\n 1 | [);\n | ^" - - "Error [EPAR0370000]: \\\n --> test:1:2\n |\n 1 | x\\y;\n | ^" - - "Error [EPAR0370000]: |\n --> test:1:5\n |\n 1 | (x,y|;\n | ^" + - "Error [EPAR0370032]: Could not lex the following content: \\y;." + - "Error [EPAR0370032]: Could not lex the following content: |;." - "Error [EPAR0370009]: unexpected string: expected 'expression', got '}'\n --> test:1:3\n |\n 1 | x[};\n | ^" - "Error [EPAR0370005]: expected ) -- got ']'\n --> test:1:6\n |\n 1 | (x, y];\n | ^" From 7d2cbb2ec2afb816d15a2a128324968d597e0db7 Mon Sep 17 00:00:00 2001 From: 0rphon <59403052+0rphon@users.noreply.github.com> Date: Wed, 2 Mar 2022 14:13:37 -0800 Subject: [PATCH 011/174] done with coverage finished coverage tests. adding case by case tests from the parser fuzzer next --- compiler/parser/src/tokenizer/lexer.rs | 24 +++++++++-------- compiler/parser/src/tokenizer/mod.rs | 2 ++ compiler/parser/src/tokenizer/token.rs | 6 +++-- cover.bat | 8 +++--- .../expression/literal/char_fail.leo.out | 3 +++ .../expression/literal/comment_fail.leo.out | 15 +++++++++++ .../parser/functions/escape_fail.leo.out | 5 ++++ .../parser/statement/assign_fail.leo.out | 1 + .../parser/statement/definition_fail.leo.out | 1 + tests/parser/expression/literal/char_fail.leo | 3 +++ .../expression/literal/comment_fail.leo | 26 +++++++++++++++++++ tests/parser/functions/escape_fail.leo | 9 +++++++ tests/parser/statement/assign_fail.leo | 2 ++ tests/parser/statement/definition_fail.leo | 4 ++- 14 files changed, 91 insertions(+), 18 deletions(-) create mode 100644 tests/expectations/parser/parser/expression/literal/comment_fail.leo.out create mode 100644 tests/expectations/parser/parser/functions/escape_fail.leo.out create mode 100644 tests/parser/expression/literal/comment_fail.leo create mode 100644 tests/parser/functions/escape_fail.leo diff --git a/compiler/parser/src/tokenizer/lexer.rs b/compiler/parser/src/tokenizer/lexer.rs index a3a34669dd..126c0548c6 100644 --- a/compiler/parser/src/tokenizer/lexer.rs +++ b/compiler/parser/src/tokenizer/lexer.rs @@ -43,18 +43,15 @@ fn eat(input: &[u8], wanted: &str) -> Option { /// An identifier can be eaten if its bytes are at the front of the given `input_tendril` string. /// fn eat_identifier(input_tendril: &StrTendril) -> Option { - if input_tendril.is_empty() { - return None; - } - let input = input_tendril[..].as_bytes(); + let input = input_tendril.as_bytes(); - if !input[0].is_ascii_alphabetic() { + if !input.get(0)?.is_ascii_alphabetic() { return None; } let mut i = 1usize; while i < input.len() { - if !input[i].is_ascii_alphanumeric() && input[i] != b'_' { + if !input.get(i)?.is_ascii_alphanumeric() && *input.get(i)? != b'_' { break; } i += 1; @@ -133,6 +130,8 @@ impl Token { return Some(Char::Scalar(character)); } + // 0rphon: should be impossible to hit if function is used correctly + panic!(); None } @@ -142,10 +141,12 @@ impl Token { /// fn eat_integer(input_tendril: &StrTendril) -> Result<(usize, Token)> { if input_tendril.is_empty() { + // impossible to hit if function is used correctly return Err(ParserError::lexer_empty_input_tendril().into()); } - let input = input_tendril[..].as_bytes(); + let input = input_tendril.as_bytes(); if !input[0].is_ascii_digit() { + // impossible to hit if function is used correctly return Err(ParserError::lexer_eat_integer_leading_zero(String::from_utf8_lossy(input)).into()); } let mut i = 1; @@ -178,8 +179,10 @@ impl Token { mask >>= 1; } if result == 0 { + // impossible to hit if function is used correctly 1 } else if result > 4 { + // only possible if invalid chars were sent directly to parser 4 } else { result @@ -192,9 +195,11 @@ impl Token { /// pub(crate) fn eat(input_tendril: StrTendril) -> Result<(usize, Token)> { if input_tendril.is_empty() { + // 0rphon + panic!(); return Err(ParserError::lexer_empty_input_tendril().into()); } - let input = input_tendril[..].as_bytes(); + let input = input_tendril.as_bytes(); match input[0] { x if x.is_ascii_whitespace() => return Ok((1, Token::WhiteSpace)), b'"' => { @@ -390,9 +395,6 @@ impl Token { let len = if let Some(eol) = eol { eol + 1 } else { input.len() }; return Ok((len, Token::CommentLine(input_tendril.subtendril(0, len as u32)))); } else if eat(input, "/*").is_some() { - if input.is_empty() { - return Err(ParserError::lexer_empty_block_comment().into()); - } let eol = input.windows(2).skip(2).position(|x| x[0] == b'*' && x[1] == b'/'); let len = if let Some(eol) = eol { eol + 4 diff --git a/compiler/parser/src/tokenizer/mod.rs b/compiler/parser/src/tokenizer/mod.rs index f48b3222e4..20c68e5f99 100644 --- a/compiler/parser/src/tokenizer/mod.rs +++ b/compiler/parser/src/tokenizer/mod.rs @@ -44,8 +44,10 @@ pub(crate) fn tokenize(path: &str, input: StrTendril) -> Result { if token_len == 0 && index == input.len() { + // impossible to hit, whitespace always returns token_len = 1 break; } else if token_len == 0 { + // impossible to hit, whitespace always returns token_len = 1 return Err(ParserError::unexpected_token( &input[index..].chars().next().unwrap(), &Span::new( diff --git a/compiler/parser/src/tokenizer/token.rs b/compiler/parser/src/tokenizer/token.rs index 3dca55e1cf..7b70fea071 100644 --- a/compiler/parser/src/tokenizer/token.rs +++ b/compiler/parser/src/tokenizer/token.rs @@ -201,7 +201,8 @@ impl Token { Some(match self { Token::Address => sym::address, Token::As => sym::As, - Token::At => sym::At, + // todo 0rphon: possibly reachable via unused import tests + Token::At => panic!(), //sym::At, Token::Bool => sym::bool, Token::Char => sym::char, Token::Circuit => sym::circuit, @@ -236,7 +237,8 @@ impl Token { Token::U32 => sym::u32, Token::U64 => sym::u64, Token::U128 => sym::u128, - _ => return None, + // todo 0rphon: possibly reachable via unused import tests + _ => panic!(), //return None, }) } } diff --git a/cover.bat b/cover.bat index 1dddc20219..360ba2c26e 100644 --- a/cover.bat +++ b/cover.bat @@ -1,11 +1,11 @@ cargo clean -cd parser +cd compiler/parser set RUSTFLAGS=-Cinstrument-coverage cargo +nightly build -set LLVM_PROFILE_FILE=../target/out/leo_coverage-%%p-%%m.profraw +set LLVM_PROFILE_FILE=../../target/out/leo_coverage-%%p-%%m.profraw cargo +nightly test -- test::parser_tests --exact --nocapture -grcov ../target/out -s . --binary-path ../target/debug/ -t html --branch --ignore-not-existing -o ../target/debug/coverage/ -cd .. +grcov ../../target/out -s . --binary-path ../../target/debug/ -t html --branch --ignore-not-existing -o ../../target/debug/coverage/ +cd ../.. del default.profraw set RUSTFLAGS= set LLVM_PROFILE_FILE= \ No newline at end of file diff --git a/tests/expectations/parser/parser/expression/literal/char_fail.leo.out b/tests/expectations/parser/parser/expression/literal/char_fail.leo.out index be3fa5fdee..552d4cec95 100644 --- a/tests/expectations/parser/parser/expression/literal/char_fail.leo.out +++ b/tests/expectations/parser/parser/expression/literal/char_fail.leo.out @@ -39,3 +39,6 @@ outputs: - "Error [EPAR0370026]: Expected a valid escape character but found 117." - "Error [EPAR0370029]: Expected valid character but found '\\u{110000." - "Error [EPAR0370029]: Expected valid character but found '😭😂�." + - "Error [EPAR0370028]: Expected a closed char but found '\u001d�x 9 i32." + - "Error [EPAR0370029]: Expected valid character but found ' //#1647." + - "Error [EPAR0370029]: Expected valid character but found ' //#1651." diff --git a/tests/expectations/parser/parser/expression/literal/comment_fail.leo.out b/tests/expectations/parser/parser/expression/literal/comment_fail.leo.out new file mode 100644 index 0000000000..68bd665fc7 --- /dev/null +++ b/tests/expectations/parser/parser/expression/literal/comment_fail.leo.out @@ -0,0 +1,15 @@ +--- +namespace: ParseExpression +expectation: Fail +outputs: + - "Error [EPAR0370031]: Block comment does not close with content: /*." + - "Error [EPAR0370031]: Block comment does not close with content: /* test." + - "Error [EPAR0370009]: unexpected string: expected 'expression', got '/'\n --> test:1:1\n |\n 1 | / /\n | ^" + - "Error [EPAR0370031]: Block comment does not close with content: /*/." + - "Error [EPAR0370009]: unexpected string: expected 'expression', got '*'\n --> test:1:1\n |\n 1 | */\n | ^" + - "Error [EPAR0370032]: Could not lex the following content: 🦀**/." + - "Error [EPAR0370032]: Could not lex the following content: 🦀*/." + - "Error [EPAR0370031]: Block comment does not close with content: /*🦀/." + - "Error [EPAR0370031]: Block comment does not close with content: /**🦀." + - "Error [EPAR0370031]: Block comment does not close with content: /*🦀." + - "Error [EPAR0370031]: Block comment does not close with content: /*/*." diff --git a/tests/expectations/parser/parser/functions/escape_fail.leo.out b/tests/expectations/parser/parser/functions/escape_fail.leo.out new file mode 100644 index 0000000000..59c9064164 --- /dev/null +++ b/tests/expectations/parser/parser/functions/escape_fail.leo.out @@ -0,0 +1,5 @@ +--- +namespace: Parse +expectation: Fail +outputs: + - "Error [EPAR0370032]: Could not lex the following content: \\." diff --git a/tests/expectations/parser/parser/statement/assign_fail.leo.out b/tests/expectations/parser/parser/statement/assign_fail.leo.out index a215b0c287..c5df35a3eb 100644 --- a/tests/expectations/parser/parser/statement/assign_fail.leo.out +++ b/tests/expectations/parser/parser/statement/assign_fail.leo.out @@ -15,3 +15,4 @@ outputs: - "Error [EPAR0370011]: invalid assignment target\n --> test:1:1\n |\n 1 | x {x: y, y: z} = y;\n | ^^^^^^^^^^^^^^" - "Error [EPAR0370011]: invalid assignment target\n --> test:1:1\n |\n 1 | x() = y;\n | ^^^" - "Error [EPAR0370011]: invalid assignment target\n --> test:1:1\n |\n 1 | x.y() = y;\n | ^^^^^" + - "Error [EPAR0370032]: Could not lex the following content: 🦀 = y;." diff --git a/tests/expectations/parser/parser/statement/definition_fail.leo.out b/tests/expectations/parser/parser/statement/definition_fail.leo.out index 11e40bbd7b..620002c0bd 100644 --- a/tests/expectations/parser/parser/statement/definition_fail.leo.out +++ b/tests/expectations/parser/parser/statement/definition_fail.leo.out @@ -43,3 +43,4 @@ outputs: - "Error [EPAR0370003]: unexpected EOF\n --> test:1:11\n |\n 1 | let x: [u8;\n | ^" - "Error [EPAR0370005]: expected ] -- got 'u8'\n --> test:1:14\n |\n 1 | let x: [u8; 1u8] = [1,\n | ^^" - "Error [EPAR0370009]: unexpected string: expected 'expression', got ']'\n --> test:1:15\n |\n 1 | let dbg: u8 = ];\n | ^" + - "Error [EPAR0370032]: Could not lex the following content: 🦀: u8 = 0;." diff --git a/tests/parser/expression/literal/char_fail.leo b/tests/parser/expression/literal/char_fail.leo index 769d3aafdd..dfbd3b18b9 100644 --- a/tests/parser/expression/literal/char_fail.leo +++ b/tests/parser/expression/literal/char_fail.leo @@ -48,3 +48,6 @@ expectation: Fail '\u{110000}' '😭😂😘' +'�x 9 i32 +' //#1647 '\u{af🦀' +' //#1651 '🦀\n' \ No newline at end of file diff --git a/tests/parser/expression/literal/comment_fail.leo b/tests/parser/expression/literal/comment_fail.leo new file mode 100644 index 0000000000..a79becfccf --- /dev/null +++ b/tests/parser/expression/literal/comment_fail.leo @@ -0,0 +1,26 @@ +/* +namespace: ParseExpression +expectation: Fail +*/ + +/* + +/* test + +/ / + +/*/ + +*/ + +🦀**/ + +/🦀*/ + +/*🦀/ + +/**🦀 + +/*🦀 + +/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/* diff --git a/tests/parser/functions/escape_fail.leo b/tests/parser/functions/escape_fail.leo new file mode 100644 index 0000000000..1e1a7b1d9f --- /dev/null +++ b/tests/parser/functions/escape_fail.leo @@ -0,0 +1,9 @@ +/* +namespace: Parse +expectation: Fail +*/ + +function main() { + let x = 1u8; +} +\ \ No newline at end of file diff --git a/tests/parser/statement/assign_fail.leo b/tests/parser/statement/assign_fail.leo index 89f403bb4a..48cc131850 100644 --- a/tests/parser/statement/assign_fail.leo +++ b/tests/parser/statement/assign_fail.leo @@ -28,3 +28,5 @@ x {x: y, y: z} = y; x() = y; x.y() = y; + +🦀 = y; \ No newline at end of file diff --git a/tests/parser/statement/definition_fail.leo b/tests/parser/statement/definition_fail.leo index 26290b7edd..f90fffb256 100644 --- a/tests/parser/statement/definition_fail.leo +++ b/tests/parser/statement/definition_fail.leo @@ -88,4 +88,6 @@ let x: [u8; let x: [u8; 1u8] = [1, -let dbg: u8 = ]; \ No newline at end of file +let dbg: u8 = ]; + +let 🦀: u8 = 0; \ No newline at end of file From 9afee5e328a2de04a7dbb953e78fb0557def7970 Mon Sep 17 00:00:00 2001 From: 0rphon <59403052+0rphon@users.noreply.github.com> Date: Tue, 8 Mar 2022 01:01:30 -0800 Subject: [PATCH 012/174] updated tests --- .../expression/access/array_access.leo.out | 22 ------------- .../access/array_range_access.leo.out | 33 ------------------- .../parser/expression/access/tuple.leo.out | 13 -------- .../expression/literal/comment_fail.leo.out | 18 +++++----- .../parser/expression/literal/group.leo.out | 11 ------- .../parser/expression/literal/int.leo.out | 1 - .../expression/literal/int_parse/i128.leo.out | 11 ------- .../expression/literal/int_parse/i16.leo.out | 11 ------- .../expression/literal/int_parse/i32.leo.out | 11 ------- .../expression/literal/int_parse/i64.leo.out | 11 ------- .../expression/literal/int_parse/i8.leo.out | 11 ------- .../literal/int_parse/implicit.leo.out | 10 ------ .../literal/int_parse/mono_group.leo.out | 11 ------- .../expression/literal/int_parse/u128.leo.out | 11 ------- .../expression/literal/int_parse/u16.leo.out | 11 ------- .../expression/literal/int_parse/u32.leo.out | 11 ------- .../expression/literal/int_parse/u64.leo.out | 11 ------- .../expression/literal/int_parse/u8.leo.out | 11 ------- .../expression/literal/string_fail.leo.out | 1 + .../parser/expression/unary/negate.leo.out | 21 ------------ .../parser/functions/escape_fail.leo.out | 2 +- .../parser/statement/assign_fail.leo.out | 2 +- .../parser/statement/definition_fail.leo.out | 2 +- .../parser/statement/expression_fail.leo.out | 4 +-- .../parser/expression/access/array_access.leo | 3 +- .../expression/access/array_range_access.leo | 2 -- tests/parser/expression/access/tuple.leo | 3 +- tests/parser/expression/literal/group.leo | 2 -- tests/parser/expression/literal/int.leo | 2 -- .../expression/literal/int_parse/i128.leo | 2 -- .../expression/literal/int_parse/i16.leo | 2 -- .../expression/literal/int_parse/i32.leo | 2 -- .../expression/literal/int_parse/i64.leo | 2 -- .../expression/literal/int_parse/i8.leo | 2 -- .../expression/literal/int_parse/implicit.leo | 2 -- .../literal/int_parse/mono_group.leo | 2 -- .../expression/literal/int_parse/u128.leo | 2 -- .../expression/literal/int_parse/u16.leo | 2 -- .../expression/literal/int_parse/u32.leo | 2 -- .../expression/literal/int_parse/u64.leo | 2 -- .../expression/literal/int_parse/u8.leo | 2 -- tests/parser/expression/unary/negate.leo | 5 +-- 42 files changed, 18 insertions(+), 284 deletions(-) diff --git a/tests/expectations/parser/parser/expression/access/array_access.leo.out b/tests/expectations/parser/parser/expression/access/array_access.leo.out index b30b0f4baf..045d403df6 100644 --- a/tests/expectations/parser/parser/expression/access/array_access.leo.out +++ b/tests/expectations/parser/parser/expression/access/array_access.leo.out @@ -287,25 +287,3 @@ outputs: col_stop: 10 path: "" content: "x[x].0[x]" - - Access: - Array: - array: - Identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":2,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x[0xb1]\\\"}\"}" - index: - Value: - Implicit: - - "0xb1" - - span: - line_start: 1 - line_stop: 1 - col_start: 3 - col_stop: 7 - path: "" - content: "x[0xb1]" - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 8 - path: "" - content: "x[0xb1]" diff --git a/tests/expectations/parser/parser/expression/access/array_range_access.leo.out b/tests/expectations/parser/parser/expression/access/array_range_access.leo.out index 5ca975ae4d..d930ff5e17 100644 --- a/tests/expectations/parser/parser/expression/access/array_range_access.leo.out +++ b/tests/expectations/parser/parser/expression/access/array_range_access.leo.out @@ -127,39 +127,6 @@ outputs: col_stop: 10 path: "" content: "x[0..100]" - - Access: - ArrayRange: - array: - Identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":2,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x[0xb1..0xb3]\\\"}\"}" - left: - Value: - Implicit: - - "0xb1" - - span: - line_start: 1 - line_stop: 1 - col_start: 3 - col_stop: 7 - path: "" - content: "x[0xb1..0xb3]" - right: - Value: - Implicit: - - "0xb3" - - span: - line_start: 1 - line_stop: 1 - col_start: 9 - col_stop: 13 - path: "" - content: "x[0xb1..0xb3]" - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 14 - path: "" - content: "x[0xb1..0xb3]" - Access: Array: array: diff --git a/tests/expectations/parser/parser/expression/access/tuple.leo.out b/tests/expectations/parser/parser/expression/access/tuple.leo.out index 3a7a8bf43f..e904278a34 100644 --- a/tests/expectations/parser/parser/expression/access/tuple.leo.out +++ b/tests/expectations/parser/parser/expression/access/tuple.leo.out @@ -116,16 +116,3 @@ outputs: col_stop: 6 path: "" content: x.2.2 - - Access: - Tuple: - tuple: - Identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":2,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x.0x1\\\"}\"}" - index: - value: "0x1" - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 6 - path: "" - content: x.0x1 diff --git a/tests/expectations/parser/parser/expression/literal/comment_fail.leo.out b/tests/expectations/parser/parser/expression/literal/comment_fail.leo.out index 68bd665fc7..394146f98a 100644 --- a/tests/expectations/parser/parser/expression/literal/comment_fail.leo.out +++ b/tests/expectations/parser/parser/expression/literal/comment_fail.leo.out @@ -2,14 +2,14 @@ namespace: ParseExpression expectation: Fail outputs: - - "Error [EPAR0370031]: Block comment does not close with content: /*." - - "Error [EPAR0370031]: Block comment does not close with content: /* test." + - "Error [EPAR0370031]: Block comment does not close with content: `/*`." + - "Error [EPAR0370031]: Block comment does not close with content: `/* test`." - "Error [EPAR0370009]: unexpected string: expected 'expression', got '/'\n --> test:1:1\n |\n 1 | / /\n | ^" - - "Error [EPAR0370031]: Block comment does not close with content: /*/." + - "Error [EPAR0370031]: Block comment does not close with content: `/*/`." - "Error [EPAR0370009]: unexpected string: expected 'expression', got '*'\n --> test:1:1\n |\n 1 | */\n | ^" - - "Error [EPAR0370032]: Could not lex the following content: 🦀**/." - - "Error [EPAR0370032]: Could not lex the following content: 🦀*/." - - "Error [EPAR0370031]: Block comment does not close with content: /*🦀/." - - "Error [EPAR0370031]: Block comment does not close with content: /**🦀." - - "Error [EPAR0370031]: Block comment does not close with content: /*🦀." - - "Error [EPAR0370031]: Block comment does not close with content: /*/*." + - "Error [EPAR0370032]: Could not lex the following content: `🦀**/`." + - "Error [EPAR0370032]: Could not lex the following content: `🦀*/`." + - "Error [EPAR0370031]: Block comment does not close with content: `/*🦀/`." + - "Error [EPAR0370031]: Block comment does not close with content: `/**🦀`." + - "Error [EPAR0370031]: Block comment does not close with content: `/*🦀`." + - "Error [EPAR0370031]: Block comment does not close with content: `/*/*`." diff --git a/tests/expectations/parser/parser/expression/literal/group.leo.out b/tests/expectations/parser/parser/expression/literal/group.leo.out index d14795a232..2e274402e0 100644 --- a/tests/expectations/parser/parser/expression/literal/group.leo.out +++ b/tests/expectations/parser/parser/expression/literal/group.leo.out @@ -691,17 +691,6 @@ outputs: col_stop: 7 path: "" content: 1group - - Value: - Group: - Single: - - "0xb" - - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 9 - path: "" - content: "0xbgroup" - Unary: inner: Value: diff --git a/tests/expectations/parser/parser/expression/literal/int.leo.out b/tests/expectations/parser/parser/expression/literal/int.leo.out index 474e5931e8..ccac03f213 100644 --- a/tests/expectations/parser/parser/expression/literal/int.leo.out +++ b/tests/expectations/parser/parser/expression/literal/int.leo.out @@ -7,7 +7,6 @@ outputs: - "'123' @ 1:1-4" - "'456' @ 1:1-4" - "'123' @ 1:1-4,'456' @ 1:5-8" - - "'0x1b' @ 1:1-5" - "'87377802873778028737780287377802873778028737780287377802873778028737780287377802' @ 1:1-81" - "'8737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802' @ 1:1-401" - "'340130024' @ 1:1-10" diff --git a/tests/expectations/parser/parser/expression/literal/int_parse/i128.leo.out b/tests/expectations/parser/parser/expression/literal/int_parse/i128.leo.out index a520e07664..d77ef66839 100644 --- a/tests/expectations/parser/parser/expression/literal/int_parse/i128.leo.out +++ b/tests/expectations/parser/parser/expression/literal/int_parse/i128.leo.out @@ -34,17 +34,6 @@ outputs: col_stop: 8 path: "" content: 456i128 - - Value: - Integer: - - I128 - - "0xb" - - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 8 - path: "" - content: "0xbi128" - Value: Integer: - I128 diff --git a/tests/expectations/parser/parser/expression/literal/int_parse/i16.leo.out b/tests/expectations/parser/parser/expression/literal/int_parse/i16.leo.out index 7309299bf9..31e8e2dd46 100644 --- a/tests/expectations/parser/parser/expression/literal/int_parse/i16.leo.out +++ b/tests/expectations/parser/parser/expression/literal/int_parse/i16.leo.out @@ -34,17 +34,6 @@ outputs: col_stop: 7 path: "" content: 456i16 - - Value: - Integer: - - I16 - - "0xb" - - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 7 - path: "" - content: "0xbi16" - Value: Integer: - I16 diff --git a/tests/expectations/parser/parser/expression/literal/int_parse/i32.leo.out b/tests/expectations/parser/parser/expression/literal/int_parse/i32.leo.out index 40c09d7d35..33de0e6589 100644 --- a/tests/expectations/parser/parser/expression/literal/int_parse/i32.leo.out +++ b/tests/expectations/parser/parser/expression/literal/int_parse/i32.leo.out @@ -34,17 +34,6 @@ outputs: col_stop: 7 path: "" content: 456i32 - - Value: - Integer: - - I32 - - "0xb" - - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 7 - path: "" - content: "0xbi32" - Value: Integer: - I32 diff --git a/tests/expectations/parser/parser/expression/literal/int_parse/i64.leo.out b/tests/expectations/parser/parser/expression/literal/int_parse/i64.leo.out index 8fbfd813a8..8340b59d0a 100644 --- a/tests/expectations/parser/parser/expression/literal/int_parse/i64.leo.out +++ b/tests/expectations/parser/parser/expression/literal/int_parse/i64.leo.out @@ -34,17 +34,6 @@ outputs: col_stop: 7 path: "" content: 456i64 - - Value: - Integer: - - I64 - - "0xb" - - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 7 - path: "" - content: "0xbi64" - Value: Integer: - I64 diff --git a/tests/expectations/parser/parser/expression/literal/int_parse/i8.leo.out b/tests/expectations/parser/parser/expression/literal/int_parse/i8.leo.out index 9096bc234a..cbbf890a54 100644 --- a/tests/expectations/parser/parser/expression/literal/int_parse/i8.leo.out +++ b/tests/expectations/parser/parser/expression/literal/int_parse/i8.leo.out @@ -34,17 +34,6 @@ outputs: col_stop: 6 path: "" content: 456i8 - - Value: - Integer: - - I8 - - "0xb" - - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 6 - path: "" - content: "0xbi8" - Value: Integer: - I8 diff --git a/tests/expectations/parser/parser/expression/literal/int_parse/implicit.leo.out b/tests/expectations/parser/parser/expression/literal/int_parse/implicit.leo.out index 572e639c1c..45764d3e0d 100644 --- a/tests/expectations/parser/parser/expression/literal/int_parse/implicit.leo.out +++ b/tests/expectations/parser/parser/expression/literal/int_parse/implicit.leo.out @@ -32,16 +32,6 @@ outputs: col_stop: 4 path: "" content: "456" - - Value: - Implicit: - - "0xb" - - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 4 - path: "" - content: "0xb" - Value: Implicit: - "87377802873778028737780287377802873778028737780287377802873778028737780287377802" diff --git a/tests/expectations/parser/parser/expression/literal/int_parse/mono_group.leo.out b/tests/expectations/parser/parser/expression/literal/int_parse/mono_group.leo.out index f08b1b65cc..26e2547c9f 100644 --- a/tests/expectations/parser/parser/expression/literal/int_parse/mono_group.leo.out +++ b/tests/expectations/parser/parser/expression/literal/int_parse/mono_group.leo.out @@ -34,17 +34,6 @@ outputs: col_stop: 9 path: "" content: 456group - - Value: - Group: - Single: - - "0xb" - - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 9 - path: "" - content: "0xbgroup" - Value: Group: Single: diff --git a/tests/expectations/parser/parser/expression/literal/int_parse/u128.leo.out b/tests/expectations/parser/parser/expression/literal/int_parse/u128.leo.out index 9247af4eff..e1867b83cf 100644 --- a/tests/expectations/parser/parser/expression/literal/int_parse/u128.leo.out +++ b/tests/expectations/parser/parser/expression/literal/int_parse/u128.leo.out @@ -34,17 +34,6 @@ outputs: col_stop: 8 path: "" content: 456u128 - - Value: - Integer: - - U128 - - "0xb" - - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 8 - path: "" - content: "0xbu128" - Value: Integer: - U128 diff --git a/tests/expectations/parser/parser/expression/literal/int_parse/u16.leo.out b/tests/expectations/parser/parser/expression/literal/int_parse/u16.leo.out index f92d542f72..e579dc6a2a 100644 --- a/tests/expectations/parser/parser/expression/literal/int_parse/u16.leo.out +++ b/tests/expectations/parser/parser/expression/literal/int_parse/u16.leo.out @@ -34,17 +34,6 @@ outputs: col_stop: 7 path: "" content: 456u16 - - Value: - Integer: - - U16 - - "0xb" - - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 7 - path: "" - content: "0xbu16" - Value: Integer: - U16 diff --git a/tests/expectations/parser/parser/expression/literal/int_parse/u32.leo.out b/tests/expectations/parser/parser/expression/literal/int_parse/u32.leo.out index 3a6f205ab1..0e9a45c823 100644 --- a/tests/expectations/parser/parser/expression/literal/int_parse/u32.leo.out +++ b/tests/expectations/parser/parser/expression/literal/int_parse/u32.leo.out @@ -34,17 +34,6 @@ outputs: col_stop: 7 path: "" content: 456u32 - - Value: - Integer: - - U32 - - "0xb" - - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 7 - path: "" - content: "0xbu32" - Value: Integer: - U32 diff --git a/tests/expectations/parser/parser/expression/literal/int_parse/u64.leo.out b/tests/expectations/parser/parser/expression/literal/int_parse/u64.leo.out index e5c4c3397e..0e9a45c823 100644 --- a/tests/expectations/parser/parser/expression/literal/int_parse/u64.leo.out +++ b/tests/expectations/parser/parser/expression/literal/int_parse/u64.leo.out @@ -34,17 +34,6 @@ outputs: col_stop: 7 path: "" content: 456u32 - - Value: - Integer: - - U64 - - "0xb" - - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 7 - path: "" - content: "0xbu64" - Value: Integer: - U32 diff --git a/tests/expectations/parser/parser/expression/literal/int_parse/u8.leo.out b/tests/expectations/parser/parser/expression/literal/int_parse/u8.leo.out index e57e3679bb..ac3fd8bffa 100644 --- a/tests/expectations/parser/parser/expression/literal/int_parse/u8.leo.out +++ b/tests/expectations/parser/parser/expression/literal/int_parse/u8.leo.out @@ -34,17 +34,6 @@ outputs: col_stop: 6 path: "" content: 456u8 - - Value: - Integer: - - U8 - - "0xb" - - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 6 - path: "" - content: "0xbu8" - Value: Integer: - U8 diff --git a/tests/expectations/parser/parser/expression/literal/string_fail.leo.out b/tests/expectations/parser/parser/expression/literal/string_fail.leo.out index 9910d77db3..7b8f745fad 100644 --- a/tests/expectations/parser/parser/expression/literal/string_fail.leo.out +++ b/tests/expectations/parser/parser/expression/literal/string_fail.leo.out @@ -4,6 +4,7 @@ expectation: Fail outputs: - "Error [EPAR0370027]: Expected a closed string but found `\"Hello world!`." - "Error [EPAR0370027]: Expected a closed string but found `\"\\\"`." + - "Error [EPAR0370027]: Expected a closed string but found `\"\\`." - "Error [EPAR0370026]: Expected a valid escape character but found `l`." - "Error [EPAR0370027]: Expected a closed string but found `\"\\uaaa\"`." - "Error [EPAR0370027]: Expected a closed string but found `\"\\u\"`." diff --git a/tests/expectations/parser/parser/expression/unary/negate.leo.out b/tests/expectations/parser/parser/expression/unary/negate.leo.out index 2bac6e2c01..03766862d2 100644 --- a/tests/expectations/parser/parser/expression/unary/negate.leo.out +++ b/tests/expectations/parser/parser/expression/unary/negate.leo.out @@ -143,24 +143,3 @@ outputs: col_stop: 5 path: "" content: "-5i8" - - Value: - Implicit: - - "-0xb" - - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 5 - path: "" - content: "-0xb" - - Value: - Integer: - - U8 - - "-0xb" - - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 7 - path: "" - content: "-0xbu8" diff --git a/tests/expectations/parser/parser/functions/escape_fail.leo.out b/tests/expectations/parser/parser/functions/escape_fail.leo.out index 59c9064164..d679c4f11b 100644 --- a/tests/expectations/parser/parser/functions/escape_fail.leo.out +++ b/tests/expectations/parser/parser/functions/escape_fail.leo.out @@ -2,4 +2,4 @@ namespace: Parse expectation: Fail outputs: - - "Error [EPAR0370032]: Could not lex the following content: \\." + - "Error [EPAR0370032]: Could not lex the following content: `\\`." diff --git a/tests/expectations/parser/parser/statement/assign_fail.leo.out b/tests/expectations/parser/parser/statement/assign_fail.leo.out index c5df35a3eb..4bf56a3048 100644 --- a/tests/expectations/parser/parser/statement/assign_fail.leo.out +++ b/tests/expectations/parser/parser/statement/assign_fail.leo.out @@ -15,4 +15,4 @@ outputs: - "Error [EPAR0370011]: invalid assignment target\n --> test:1:1\n |\n 1 | x {x: y, y: z} = y;\n | ^^^^^^^^^^^^^^" - "Error [EPAR0370011]: invalid assignment target\n --> test:1:1\n |\n 1 | x() = y;\n | ^^^" - "Error [EPAR0370011]: invalid assignment target\n --> test:1:1\n |\n 1 | x.y() = y;\n | ^^^^^" - - "Error [EPAR0370032]: Could not lex the following content: 🦀 = y;." + - "Error [EPAR0370032]: Could not lex the following content: `🦀 = y;`." diff --git a/tests/expectations/parser/parser/statement/definition_fail.leo.out b/tests/expectations/parser/parser/statement/definition_fail.leo.out index 620002c0bd..2046cfb318 100644 --- a/tests/expectations/parser/parser/statement/definition_fail.leo.out +++ b/tests/expectations/parser/parser/statement/definition_fail.leo.out @@ -43,4 +43,4 @@ outputs: - "Error [EPAR0370003]: unexpected EOF\n --> test:1:11\n |\n 1 | let x: [u8;\n | ^" - "Error [EPAR0370005]: expected ] -- got 'u8'\n --> test:1:14\n |\n 1 | let x: [u8; 1u8] = [1,\n | ^^" - "Error [EPAR0370009]: unexpected string: expected 'expression', got ']'\n --> test:1:15\n |\n 1 | let dbg: u8 = ];\n | ^" - - "Error [EPAR0370032]: Could not lex the following content: 🦀: u8 = 0;." + - "Error [EPAR0370032]: Could not lex the following content: `🦀: u8 = 0;`." diff --git a/tests/expectations/parser/parser/statement/expression_fail.leo.out b/tests/expectations/parser/parser/statement/expression_fail.leo.out index 25eb94e985..2f62e6bd17 100644 --- a/tests/expectations/parser/parser/statement/expression_fail.leo.out +++ b/tests/expectations/parser/parser/statement/expression_fail.leo.out @@ -4,7 +4,7 @@ expectation: Fail outputs: - "Error [EPAR0370009]: unexpected string: expected 'expression', got ']'\n --> test:1:2\n |\n 1 | (];\n | ^" - "Error [EPAR0370009]: unexpected string: expected 'expression', got ')'\n --> test:1:2\n |\n 1 | [);\n | ^" - - "Error [EPAR0370032]: Could not lex the following content: \\y;." - - "Error [EPAR0370032]: Could not lex the following content: |;." + - "Error [EPAR0370032]: Could not lex the following content: `\\y;`." + - "Error [EPAR0370032]: Could not lex the following content: `|;`." - "Error [EPAR0370009]: unexpected string: expected 'expression', got '}'\n --> test:1:3\n |\n 1 | x[};\n | ^" - "Error [EPAR0370005]: expected ) -- got ']'\n --> test:1:6\n |\n 1 | (x, y];\n | ^" diff --git a/tests/parser/expression/access/array_access.leo b/tests/parser/expression/access/array_access.leo index 51c6652239..14d2393afd 100644 --- a/tests/parser/expression/access/array_access.leo +++ b/tests/parser/expression/access/array_access.leo @@ -11,5 +11,4 @@ x[x][y][z] x[0]() x()[0] x(y)::y(x) -x[x].0[x] -x[0xb1] \ No newline at end of file +x[x].0[x] \ No newline at end of file diff --git a/tests/parser/expression/access/array_range_access.leo b/tests/parser/expression/access/array_range_access.leo index 2fb418a8ec..4ae4f62c3f 100644 --- a/tests/parser/expression/access/array_range_access.leo +++ b/tests/parser/expression/access/array_range_access.leo @@ -8,8 +8,6 @@ x[1..] x[..1] x[1..1] x[0..100] -x[0xb1..0xb3] - x[323452345.2345234523453453][323452345.2345234523453453] diff --git a/tests/parser/expression/access/tuple.leo b/tests/parser/expression/access/tuple.leo index 2b09806562..c96e38953f 100644 --- a/tests/parser/expression/access/tuple.leo +++ b/tests/parser/expression/access/tuple.leo @@ -8,5 +8,4 @@ x.1 x.2 x.0.0 x.1.1 -x.2.2 -x.0x1 \ No newline at end of file +x.2.2 \ No newline at end of file diff --git a/tests/parser/expression/literal/group.leo b/tests/parser/expression/literal/group.leo index fcecaf92cb..4157b8fc14 100644 --- a/tests/parser/expression/literal/group.leo +++ b/tests/parser/expression/literal/group.leo @@ -69,6 +69,4 @@ expectation: Pass 1group -0xbgroup - -1group \ No newline at end of file diff --git a/tests/parser/expression/literal/int.leo b/tests/parser/expression/literal/int.leo index 731cfb7a7c..a2421a23a2 100644 --- a/tests/parser/expression/literal/int.leo +++ b/tests/parser/expression/literal/int.leo @@ -12,8 +12,6 @@ expectation: Pass 123 456 -0x1b - 87377802873778028737780287377802873778028737780287377802873778028737780287377802 8737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802 diff --git a/tests/parser/expression/literal/int_parse/i128.leo b/tests/parser/expression/literal/int_parse/i128.leo index d79a2b873f..93e554eee9 100644 --- a/tests/parser/expression/literal/int_parse/i128.leo +++ b/tests/parser/expression/literal/int_parse/i128.leo @@ -8,8 +8,6 @@ expectation: Pass 123 456i128 -0xbi128 - 87377802873778028737780287377802873778028737780287377802873778028737780287377802i128 8737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802i128 diff --git a/tests/parser/expression/literal/int_parse/i16.leo b/tests/parser/expression/literal/int_parse/i16.leo index 8aaf6e2fe0..20b4af030c 100644 --- a/tests/parser/expression/literal/int_parse/i16.leo +++ b/tests/parser/expression/literal/int_parse/i16.leo @@ -8,8 +8,6 @@ expectation: Pass 123 456i16 -0xbi16 - 87377802873778028737780287377802873778028737780287377802873778028737780287377802i16 8737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802i16 diff --git a/tests/parser/expression/literal/int_parse/i32.leo b/tests/parser/expression/literal/int_parse/i32.leo index 08c2bf3411..518f8cd778 100644 --- a/tests/parser/expression/literal/int_parse/i32.leo +++ b/tests/parser/expression/literal/int_parse/i32.leo @@ -8,8 +8,6 @@ expectation: Pass 123 456i32 -0xbi32 - 87377802873778028737780287377802873778028737780287377802873778028737780287377802i32 8737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802i32 diff --git a/tests/parser/expression/literal/int_parse/i64.leo b/tests/parser/expression/literal/int_parse/i64.leo index 0b5bee3fa7..fd1a259200 100644 --- a/tests/parser/expression/literal/int_parse/i64.leo +++ b/tests/parser/expression/literal/int_parse/i64.leo @@ -8,8 +8,6 @@ expectation: Pass 123 456i64 -0xbi64 - 87377802873778028737780287377802873778028737780287377802873778028737780287377802i64 8737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802i64 diff --git a/tests/parser/expression/literal/int_parse/i8.leo b/tests/parser/expression/literal/int_parse/i8.leo index 29f3080196..899b42fecc 100644 --- a/tests/parser/expression/literal/int_parse/i8.leo +++ b/tests/parser/expression/literal/int_parse/i8.leo @@ -8,8 +8,6 @@ expectation: Pass 123 456i8 -0xbi8 - 87377802873778028737780287377802873778028737780287377802873778028737780287377802i8 8737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802i8 diff --git a/tests/parser/expression/literal/int_parse/implicit.leo b/tests/parser/expression/literal/int_parse/implicit.leo index 227681710d..34c1eed0bd 100644 --- a/tests/parser/expression/literal/int_parse/implicit.leo +++ b/tests/parser/expression/literal/int_parse/implicit.leo @@ -8,8 +8,6 @@ expectation: Pass 123 456 -0xb - 87377802873778028737780287377802873778028737780287377802873778028737780287377802 8737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802 diff --git a/tests/parser/expression/literal/int_parse/mono_group.leo b/tests/parser/expression/literal/int_parse/mono_group.leo index c3b5cdc8c4..8871214875 100644 --- a/tests/parser/expression/literal/int_parse/mono_group.leo +++ b/tests/parser/expression/literal/int_parse/mono_group.leo @@ -8,8 +8,6 @@ expectation: Pass 123 456group -0xbgroup - 87377802873778028737780287377802873778028737780287377802873778028737780287377802group 8737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802group diff --git a/tests/parser/expression/literal/int_parse/u128.leo b/tests/parser/expression/literal/int_parse/u128.leo index 9da4ae35cc..d010081723 100644 --- a/tests/parser/expression/literal/int_parse/u128.leo +++ b/tests/parser/expression/literal/int_parse/u128.leo @@ -8,8 +8,6 @@ expectation: Pass 123 456u128 -0xbu128 - 87377802873778028737780287377802873778028737780287377802873778028737780287377802u128 8737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802u128 diff --git a/tests/parser/expression/literal/int_parse/u16.leo b/tests/parser/expression/literal/int_parse/u16.leo index 22bc862509..c914573fc2 100644 --- a/tests/parser/expression/literal/int_parse/u16.leo +++ b/tests/parser/expression/literal/int_parse/u16.leo @@ -8,8 +8,6 @@ expectation: Pass 123 456u16 -0xbu16 - 87377802873778028737780287377802873778028737780287377802873778028737780287377802u16 8737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802u16 diff --git a/tests/parser/expression/literal/int_parse/u32.leo b/tests/parser/expression/literal/int_parse/u32.leo index dfde56b641..05efd55c47 100644 --- a/tests/parser/expression/literal/int_parse/u32.leo +++ b/tests/parser/expression/literal/int_parse/u32.leo @@ -8,8 +8,6 @@ expectation: Pass 123 456u32 -0xbu32 - 87377802873778028737780287377802873778028737780287377802873778028737780287377802u32 8737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802u32 diff --git a/tests/parser/expression/literal/int_parse/u64.leo b/tests/parser/expression/literal/int_parse/u64.leo index e623496208..05efd55c47 100644 --- a/tests/parser/expression/literal/int_parse/u64.leo +++ b/tests/parser/expression/literal/int_parse/u64.leo @@ -8,8 +8,6 @@ expectation: Pass 123 456u32 -0xbu64 - 87377802873778028737780287377802873778028737780287377802873778028737780287377802u32 8737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802u32 diff --git a/tests/parser/expression/literal/int_parse/u8.leo b/tests/parser/expression/literal/int_parse/u8.leo index c0d3c58a4b..1518748456 100644 --- a/tests/parser/expression/literal/int_parse/u8.leo +++ b/tests/parser/expression/literal/int_parse/u8.leo @@ -8,8 +8,6 @@ expectation: Pass 123 456u8 -0xbu8 - 87377802873778028737780287377802873778028737780287377802873778028737780287377802u8 8737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802873778028737780287377802u8 diff --git a/tests/parser/expression/unary/negate.leo b/tests/parser/expression/unary/negate.leo index 91fb2d0a03..035a0c3c26 100644 --- a/tests/parser/expression/unary/negate.leo +++ b/tests/parser/expression/unary/negate.leo @@ -11,7 +11,4 @@ expectation: Pass -!x -5 --5i8 - --0xb --0xbu8 \ No newline at end of file +-5i8 \ No newline at end of file From bf7b646b310698dd9a2399f825d2b4bfd7b57fd6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 8 Mar 2022 10:18:01 +0000 Subject: [PATCH 013/174] Bump anyhow from 1.0.55 to 1.0.56 Bumps [anyhow](https://github.com/dtolnay/anyhow) from 1.0.55 to 1.0.56. - [Release notes](https://github.com/dtolnay/anyhow/releases) - [Commits](https://github.com/dtolnay/anyhow/compare/1.0.55...1.0.56) --- updated-dependencies: - dependency-name: anyhow dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Cargo.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index ceb4f10448..235284f6c7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -56,9 +56,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.55" +version = "1.0.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "159bb86af3a200e19a068f4224eae4c8bb2d0fa054c7e5d1cacd5cef95e684cd" +checksum = "4361135be9122e0870de935d7c439aef945b9f9ddd4199a553b5270b49c82a27" [[package]] name = "assert_cmd" From 343da2071cbff53e3b2588463704d38b47b783fa Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 8 Mar 2022 10:18:16 +0000 Subject: [PATCH 014/174] Bump clap from 3.1.5 to 3.1.6 Bumps [clap](https://github.com/clap-rs/clap) from 3.1.5 to 3.1.6. - [Release notes](https://github.com/clap-rs/clap/releases) - [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md) - [Commits](https://github.com/clap-rs/clap/compare/v3.1.5...v3.1.6) --- updated-dependencies: - dependency-name: clap dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Cargo.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index ceb4f10448..a28a730b63 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -240,9 +240,9 @@ dependencies = [ [[package]] name = "clap" -version = "3.1.5" +version = "3.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ced1892c55c910c1219e98d6fc8d71f6bddba7905866ce740066d8bfea859312" +checksum = "d8c93436c21e4698bacadf42917db28b23017027a4deccb35dbe47a7e7840123" dependencies = [ "atty", "bitflags", @@ -1071,7 +1071,7 @@ version = "1.5.3" dependencies = [ "ansi_term", "assert_cmd", - "clap 3.1.5", + "clap 3.1.6", "color-backtrace", "colored", "console", From 7e930d86701c9dfc31740211525101e2a5d4e942 Mon Sep 17 00:00:00 2001 From: Alessandro Coglio Date: Tue, 8 Mar 2022 21:08:59 -0800 Subject: [PATCH 015/174] [ABNF] Fix use of integers in literals. This removes the rule for `integer` and uses `natural` for all numeric literals. Otherwise, lexing would be context-dependent for no good reason. This is consistent with the lexer and parser of the Leo compiler. Note that, for instance, `-1field` is not a literal, but rather a unary expression where `-` is applied to the literal `1field`. This is consistent with other languages too. --- docs/grammar/README.md | 35 ++++++++++++----------------------- docs/grammar/abnf-grammar.txt | 21 ++++++++------------- 2 files changed, 20 insertions(+), 36 deletions(-) diff --git a/docs/grammar/README.md b/docs/grammar/README.md index 04616cec3a..9dd11c0471 100644 --- a/docs/grammar/README.md +++ b/docs/grammar/README.md @@ -643,17 +643,6 @@ We allow leading zeros, e.g. `007`. natural = 1*decimal-digit ``` -An integer (number) is either a natural or its negation. -We allow leading zeros also in negative numbers, e.g. `-007`. - - -```abnf -integer = [ "-" ] natural -``` - -Go to: _[natural](#user-content-natural)_; - - Unsigned literals are naturals followed by unsigned types. @@ -664,38 +653,38 @@ unsigned-literal = natural ( %s"u8" / %s"u16" / %s"u32" / %s"u64" / %s"u128" ) Go to: _[natural](#user-content-natural)_; -Signed literals are integers followed by signed types. +Signed literals are naturals followed by signed types. ```abnf -signed-literal = integer ( %s"i8" / %s"i16" / %s"i32" / %s"i64" / %s"i128" ) +signed-literal = natural ( %s"i8" / %s"i16" / %s"i32" / %s"i64" / %s"i128" ) ``` -Go to: _[integer](#user-content-integer)_; +Go to: _[natural](#user-content-natural)_; -Field literals are integers followed by the type of field elements. +Field literals are naturals followed by the type of field elements. ```abnf -field-literal = integer %s"field" +field-literal = natural %s"field" ``` -Go to: _[integer](#user-content-integer)_; +Go to: _[natural](#user-content-natural)_; There are two kinds of group literals. -One is a single integer followed by the type of group elements, -which denotes the scalar product of the generator point by the integer. +One is a single natural followed by the type of group elements, +which denotes the scalar product of the generator point by the natural. The other kind is not a token because it allows some whitespace inside; therefore, it is defined in the syntactic grammar. ```abnf -product-group-literal = integer %s"group" +product-group-literal = natural %s"group" ``` -Go to: _[integer](#user-content-integer)_; +Go to: _[natural](#user-content-natural)_; Boolean literals are the usual two. @@ -1080,10 +1069,10 @@ because it consists of affine point coordinates. ```abnf -group-coordinate = integer / "+" / "-" / "_" +group-coordinate = [ "-" ] natural / "+" / "-" / "_" ``` -Go to: _[integer](#user-content-integer)_; +Go to: _[natural](#user-content-natural)_; diff --git a/docs/grammar/abnf-grammar.txt b/docs/grammar/abnf-grammar.txt index fc903b6c85..3fc364bf3b 100644 --- a/docs/grammar/abnf-grammar.txt +++ b/docs/grammar/abnf-grammar.txt @@ -456,30 +456,25 @@ annotation-name = "@" identifier natural = 1*decimal-digit -; An integer (number) is either a natural or its negation. -; We allow leading zeros also in negative numbers, e.g. `-007`. - -integer = [ "-" ] natural - ; Unsigned literals are naturals followed by unsigned types. unsigned-literal = natural ( %s"u8" / %s"u16" / %s"u32" / %s"u64" / %s"u128" ) -; Signed literals are integers followed by signed types. +; Signed literals are naturals followed by signed types. -signed-literal = integer ( %s"i8" / %s"i16" / %s"i32" / %s"i64" / %s"i128" ) +signed-literal = natural ( %s"i8" / %s"i16" / %s"i32" / %s"i64" / %s"i128" ) -; Field literals are integers followed by the type of field elements. +; Field literals are naturals followed by the type of field elements. -field-literal = integer %s"field" +field-literal = natural %s"field" ; There are two kinds of group literals. -; One is a single integer followed by the type of group elements, -; which denotes the scalar product of the generator point by the integer. +; One is a single natural followed by the type of group elements, +; which denotes the scalar product of the generator point by the natural. ; The other kind is not a token because it allows some whitespace inside; ; therefore, it is defined in the syntactic grammar. -product-group-literal = integer %s"group" +product-group-literal = natural %s"group" ; Boolean literals are the usual two. @@ -688,7 +683,7 @@ named-type = identifier / self-type / scalar-type ; This is an affine group literal, ; because it consists of affine point coordinates. -group-coordinate = integer / "+" / "-" / "_" +group-coordinate = [ "-" ] natural / "+" / "-" / "_" affine-group-literal = "(" group-coordinate "," group-coordinate %s")group" From f735ca886495535b0a36ca9da8c3d4387d54cc63 Mon Sep 17 00:00:00 2001 From: Alessandro Coglio Date: Tue, 8 Mar 2022 23:23:38 -0800 Subject: [PATCH 016/174] [ABNF] Update some documentation. This does not change the grammar. It merely updates some text in the comments, which shows a rule that was changed at some point but its copy in the comments was not properly updated. Thanks to @bendyarm for noticing this. --- docs/grammar/README.md | 2 +- docs/grammar/abnf-grammar.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/grammar/README.md b/docs/grammar/README.md index 04616cec3a..dc162c438e 100644 --- a/docs/grammar/README.md +++ b/docs/grammar/README.md @@ -328,7 +328,7 @@ and therefore we have rules like ``` -unary-expression = primary-expression +unary-expression = postfix-expression / "!" unary-expression / "-" unary-expression ``` diff --git a/docs/grammar/abnf-grammar.txt b/docs/grammar/abnf-grammar.txt index fc903b6c85..c9902eca19 100644 --- a/docs/grammar/abnf-grammar.txt +++ b/docs/grammar/abnf-grammar.txt @@ -263,7 +263,7 @@ ; the relative precedence and the associativity of expression operators, ; and therefore we have rules like ; -; unary-expression = primary-expression +; unary-expression = postfix-expression ; / "!" unary-expression ; / "-" unary-expression ; From bd68eefb45c7bb00cebaa0d13031fffe79f1dbbc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 9 Mar 2022 10:18:18 +0000 Subject: [PATCH 017/174] Bump regex from 1.5.4 to 1.5.5 Bumps [regex](https://github.com/rust-lang/regex) from 1.5.4 to 1.5.5. - [Release notes](https://github.com/rust-lang/regex/releases) - [Changelog](https://github.com/rust-lang/regex/blob/master/CHANGELOG.md) - [Commits](https://github.com/rust-lang/regex/compare/1.5.4...1.5.5) --- updated-dependencies: - dependency-name: regex dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Cargo.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 4ae3cc3858..2850e5d330 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1769,9 +1769,9 @@ dependencies = [ [[package]] name = "regex" -version = "1.5.4" +version = "1.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d07a8629359eb56f1e2fb1652bb04212c072a87ba68546a04065d525673ac461" +checksum = "1a11647b6b25ff05a515cb92c365cec08801e83423a235b51e231e1808747286" dependencies = [ "aho-corasick", "memchr", From e534cbb0df325895946b2fef8d432133548295ac Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 9 Mar 2022 10:18:25 +0000 Subject: [PATCH 018/174] Bump tracing-subscriber from 0.3.7 to 0.3.9 Bumps [tracing-subscriber](https://github.com/tokio-rs/tracing) from 0.3.7 to 0.3.9. - [Release notes](https://github.com/tokio-rs/tracing/releases) - [Commits](https://github.com/tokio-rs/tracing/compare/tracing-subscriber-0.3.7...tracing-subscriber-0.3.9) --- updated-dependencies: - dependency-name: tracing-subscriber dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Cargo.lock | 15 +++++++++++---- Cargo.toml | 2 +- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 4ae3cc3858..1c00d06cd5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2367,11 +2367,12 @@ dependencies = [ [[package]] name = "tracing-core" -version = "0.1.21" +version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f4ed65637b8390770814083d20756f87bfa2c21bf2f110babdc5438351746e4" +checksum = "aa31669fa42c09c34d94d8165dd2012e8ff3c66aca50f3bb226b68f216f2706c" dependencies = [ "lazy_static", + "valuable", ] [[package]] @@ -2387,9 +2388,9 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.3.7" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5312f325fe3588e277415f5a6cca1f4ccad0f248c4cd5a4bd33032d7286abc22" +checksum = "9e0ab7bdc962035a87fba73f3acca9b8a8d0034c2e6f60b84aeaaddddc155dce" dependencies = [ "ansi_term", "sharded-slab", @@ -2477,6 +2478,12 @@ version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" +[[package]] +name = "valuable" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" + [[package]] name = "vcpkg" version = "0.2.15" diff --git a/Cargo.toml b/Cargo.toml index e0d3eb2b12..d660bbb009 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -106,7 +106,7 @@ version = "0.5" version = "0.1" [dependencies.tracing-subscriber] -version = "0.3.6" +version = "0.3.9" features = [ "fmt" ] [dependencies.zip] From 91c0f5ae9d867b0cacd887f63b695b52bb967892 Mon Sep 17 00:00:00 2001 From: gluax <16431709+gluax@users.noreply.github.com> Date: Wed, 9 Mar 2022 09:46:07 -0800 Subject: [PATCH 019/174] resolve some error messages panicing --- compiler/parser/src/tokenizer/lexer.rs | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/compiler/parser/src/tokenizer/lexer.rs b/compiler/parser/src/tokenizer/lexer.rs index ce74b35547..8fc9663c1b 100644 --- a/compiler/parser/src/tokenizer/lexer.rs +++ b/compiler/parser/src/tokenizer/lexer.rs @@ -164,7 +164,10 @@ impl Token { while i < input.len() { if i == 1 && input[0] == b'0' && input[i] == b'x' { - return Err(ParserError::lexer_hex_number_provided(&input_tendril[0..3]).into()); + return Err(ParserError::lexer_hex_number_provided( + &input_tendril[0..input_tendril.find('\n').unwrap_or(i) + 1], + ) + .into()); } if !input[i].is_ascii_digit() { break; @@ -305,7 +308,9 @@ impl Token { break; } else if unicode_char { return Err(ParserError::lexer_invalid_char( - &input_tendril[0..input_tendril[1..].find('\'').unwrap_or(i + 1)], + // grab the contents of everything between the '' if possible. + // else just show the character right before stuff went wrong. + &input_tendril[0..input_tendril[1..].find('\'').unwrap_or(i - 1) + 1], ) .into()); } else if input[i] == b'\\' { @@ -315,8 +320,11 @@ impl Token { if input[i] == b'x' { hex = true; } else if input[i] == b'u' { - if input[i + 1] == b'{' { + let one_ahead = input.get(i + 1); + if matches!(one_ahead, Some(b'{')) { escaped_unicode = true; + } else if one_ahead.is_some() { + return Err(ParserError::lexer_expected_valid_escaped_char(input[i + 1]).into()); } else { return Err(ParserError::lexer_expected_valid_escaped_char(input[i]).into()); } From a227e7c113dae373e16da3f42a86adc956c43d5d Mon Sep 17 00:00:00 2001 From: gluax <16431709+gluax@users.noreply.github.com> Date: Wed, 9 Mar 2022 11:11:30 -0800 Subject: [PATCH 020/174] add tests, fix namespaces on older tests, fix another bug --- compiler/parser/src/tokenizer/lexer.rs | 4 +- leo/errors/src/parser/parser_errors.rs | 8 + .../expression/literal/char_fail.leo.out | 18 +- .../expression/literal/char_parse.leo.out | 614 +---------- .../expression/literal/string_fail.leo.out | 1 + .../parser/program/backslash_eof.leo.out | 5 + .../parser/parser/program/dollar_eof.leo.out | 5 + .../parser/program/escape_u8_eof.leo.out | 5 + .../parser/parser/program/hex_eof.leo.out | 5 + .../parser/parser/program/pipe_eof.leo.out | 5 + .../parser/parser/program/q_eof.leo.out | 5 + .../parser/parser/program/sq_eof.leo.out | 5 + .../parser/parser/program/tilde_eof.leo.out | 5 + .../program/unclosed_unicode_eof_fail.leo.out | 5 + .../parser/statement/hex_int_fail.leo.out | 6 +- .../parser/parser/unreachable/define.leo.out | 45 + .../parser/parser/unreachable/eat_int.leo.out | 51 + .../parser/unreachable/expect_ident.leo.out | 51 + .../parser/unreachable/math_op_fail.leo.out | 59 ++ .../parser/unreachable/math_op_pass.leo.out | 988 ++++++++++++++++++ .../parser/unreachable/postfix_fail.leo.out | 24 + .../parser/unreachable/postfix_pass.leo.out | 598 +++++++++++ tests/parser/expression/literal/char_fail.leo | 4 +- .../parser/expression/literal/char_parse.leo | 2 +- .../parser/expression/literal/string_fail.leo | 2 + tests/parser/program/backslash_eof.leo | 9 + tests/parser/program/dollar_eof.leo | 9 + tests/parser/program/escape_u8_eof.leo | 9 + tests/parser/program/hex_eof.leo | 6 + tests/parser/program/pipe_eof.leo | 9 + tests/parser/program/q_eof.leo | 9 + tests/parser/program/sq_eof.leo | 9 + tests/parser/program/tilde_eof.leo | 9 + .../program/unclosed_unicode_eof_fail.leo | 7 + tests/parser/statement/let_mut_recover.leo | 12 +- tests/parser/unreachable/define.leo | 49 +- tests/parser/unreachable/eat_ident.leo | 51 + tests/parser/unreachable/eat_int.leo | 52 + tests/parser/unreachable/expect_ident.leo | 53 +- .../{math_op.leo => math_op_fail.leo} | 97 +- tests/parser/unreachable/math_op_pass.leo | 84 ++ tests/parser/unreachable/postfix_fail.leo | 44 + .../{postfix.leo => postfix_pass.leo} | 50 +- 43 files changed, 2438 insertions(+), 650 deletions(-) create mode 100644 tests/expectations/parser/parser/program/backslash_eof.leo.out create mode 100644 tests/expectations/parser/parser/program/dollar_eof.leo.out create mode 100644 tests/expectations/parser/parser/program/escape_u8_eof.leo.out create mode 100644 tests/expectations/parser/parser/program/hex_eof.leo.out create mode 100644 tests/expectations/parser/parser/program/pipe_eof.leo.out create mode 100644 tests/expectations/parser/parser/program/q_eof.leo.out create mode 100644 tests/expectations/parser/parser/program/sq_eof.leo.out create mode 100644 tests/expectations/parser/parser/program/tilde_eof.leo.out create mode 100644 tests/expectations/parser/parser/program/unclosed_unicode_eof_fail.leo.out create mode 100644 tests/expectations/parser/parser/unreachable/math_op_fail.leo.out create mode 100644 tests/expectations/parser/parser/unreachable/math_op_pass.leo.out create mode 100644 tests/expectations/parser/parser/unreachable/postfix_fail.leo.out create mode 100644 tests/expectations/parser/parser/unreachable/postfix_pass.leo.out create mode 100644 tests/parser/program/backslash_eof.leo create mode 100644 tests/parser/program/dollar_eof.leo create mode 100644 tests/parser/program/escape_u8_eof.leo create mode 100644 tests/parser/program/hex_eof.leo create mode 100644 tests/parser/program/pipe_eof.leo create mode 100644 tests/parser/program/q_eof.leo create mode 100644 tests/parser/program/sq_eof.leo create mode 100644 tests/parser/program/tilde_eof.leo create mode 100644 tests/parser/program/unclosed_unicode_eof_fail.leo rename tests/parser/unreachable/{math_op.leo => math_op_fail.leo} (65%) create mode 100644 tests/parser/unreachable/math_op_pass.leo create mode 100644 tests/parser/unreachable/postfix_fail.leo rename tests/parser/unreachable/{postfix.leo => postfix_pass.leo} (57%) diff --git a/compiler/parser/src/tokenizer/lexer.rs b/compiler/parser/src/tokenizer/lexer.rs index 8fc9663c1b..38c26927bc 100644 --- a/compiler/parser/src/tokenizer/lexer.rs +++ b/compiler/parser/src/tokenizer/lexer.rs @@ -115,7 +115,9 @@ impl Token { if unicode { let string = input_tendril.to_string(); - if string.find('}').is_none() { + if string.find('{').is_none() { + return Err(ParserError::lexer_unopened_escaped_unicode_char(string).into()); + } else if string.find('}').is_none() { return Err(ParserError::lexer_unclosed_escaped_unicode_char(string).into()); } diff --git a/leo/errors/src/parser/parser_errors.rs b/leo/errors/src/parser/parser_errors.rs index 9ad6bf1702..cc7227897d 100644 --- a/leo/errors/src/parser/parser_errors.rs +++ b/leo/errors/src/parser/parser_errors.rs @@ -366,4 +366,12 @@ create_errors!( msg: "A function received a self argument as not the first argument.", help: None, } + + /// When a escaped unicode char was given but not opend. + @backtraced + lexer_unopened_escaped_unicode_char { + args: (input: impl Display), + msg: format!("There was no opening `{{` after starting an escaped unicode `{}`.", input), + help: None, + } ); diff --git a/tests/expectations/parser/parser/expression/literal/char_fail.leo.out b/tests/expectations/parser/parser/expression/literal/char_fail.leo.out index ece3a8f208..c7aaedc6ce 100644 --- a/tests/expectations/parser/parser/expression/literal/char_fail.leo.out +++ b/tests/expectations/parser/parser/expression/literal/char_fail.leo.out @@ -26,17 +26,19 @@ outputs: - "Error [EPAR0370026]: Expected a valid escape character but found `9`." - "Error [EPAR0370026]: Expected a valid escape character but found `*`." - "Error [EPAR0370035]: Could not lex the following escaped hex due to being given more than two chars: ``." - - "Error [EPAR0370026]: Expected a valid escape character but found `117`." + - "Error [EPAR0370026]: Expected a valid escape character but found `39`." - "Error [EPAR0370038]: The escaped unicode char `bbbbb}\\u{aaaa` is not within valid length of [1, 6]." - - "Error [EPAR0370026]: Expected a valid escape character but found `117`." - - "Error [EPAR0370026]: Expected a valid escape character but found `117`." - - "Error [EPAR0370026]: Expected a valid escape character but found `117`." + - "Error [EPAR0370026]: Expected a valid escape character but found `122`." + - "Error [EPAR0370026]: Expected a valid escape character but found `49`." + - "Error [EPAR0370026]: Expected a valid escape character but found `49`." - "Error [EPAR0370037]: There was no closing `}` after a escaped unicode `\\u{2764z`." - "Error [EPAR0370028]: Expected a closed char but found `\\u{276g}`." - - "Error [EPAR0370026]: Expected a valid escape character but found `117`." - - "Error [EPAR0370026]: Expected a valid escape character but found `117`." - - "Error [EPAR0370026]: Expected a valid escape character but found `117`." + - "Error [EPAR0370026]: Expected a valid escape character but found `48`." + - "Error [EPAR0370026]: Expected a valid escape character but found `48`." + - "Error [EPAR0370026]: Expected a valid escape character but found `57`." - "Error [EPAR0370039]: The escaped unicode char `110000` is greater than 0x10FFFF." + - "Error [EPAR0370026]: Expected a valid escape character but found `125`." - "Error [EPAR0370037]: There was no closing `}` after a escaped unicode `\\u{af🦀`." - - "Error [EPAR0370029]: Expected valid character but found `'🦀\\`." + - "Error [EPAR0370029]: Expected valid character but found `'🦀\\n`." + - "Error [EPAR0370029]: Expected valid character but found `'🦀1🦀`." - "Error [EPAR0370029]: Expected valid character but found `'😭😂`." diff --git a/tests/expectations/parser/parser/expression/literal/char_parse.leo.out b/tests/expectations/parser/parser/expression/literal/char_parse.leo.out index ce8cfae708..fa87952664 100644 --- a/tests/expectations/parser/parser/expression/literal/char_parse.leo.out +++ b/tests/expectations/parser/parser/expression/literal/char_parse.leo.out @@ -1,565 +1,55 @@ --- -namespace: ParseExpression +namespace: Token expectation: Pass outputs: - - Value: - Char: - character: - Scalar: 97 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 4 - path: "" - content: "'a'" - - Value: - Char: - character: - Scalar: 90 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 4 - path: "" - content: "'Z'" - - Value: - Char: - character: - Scalar: 34 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 5 - path: "" - content: "'\\\"'" - - Value: - Char: - character: - Scalar: 9 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 5 - path: "" - content: "'\\t'" - - Value: - Char: - character: - Scalar: 13 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 5 - path: "" - content: "'\\r'" - - Value: - Char: - character: - Scalar: 0 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 5 - path: "" - content: "'\\0'" - - Value: - Char: - character: - Scalar: 15 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 8 - path: "" - content: "'\\u{F}'" - - Value: - Char: - character: - Scalar: 57359 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 6 - path: "" - content: "''" - - Value: - Char: - character: - Scalar: 229 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 9 - path: "" - content: "'\\u{E5}'" - - Value: - Char: - character: - Scalar: 229 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 5 - path: "" - content: "'å'" - - Value: - Char: - character: - Scalar: 1248 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 10 - path: "" - content: "'\\u{4e0}'" - - Value: - Char: - character: - Scalar: 1248 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 5 - path: "" - content: "'Ӡ'" - - Value: - Char: - character: - Scalar: 10084 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 11 - path: "" - content: "'\\u{2764}'" - - Value: - Char: - character: - Scalar: 10084 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 6 - path: "" - content: "'❤'" - - Value: - Char: - character: - Scalar: 128546 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 12 - path: "" - content: "'\\u{1F622}'" - - Value: - Char: - character: - Scalar: 128557 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 7 - path: "" - content: "'😭'" - - Value: - Char: - character: - Scalar: 1048607 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 13 - path: "" - content: "'\\u{10001F}'" - - Value: - Char: - character: - Scalar: 42 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 7 - path: "" - content: "'\\x2A'" - - Value: - Char: - character: - Scalar: 127 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 7 - path: "" - content: "'\\x7f'" - - Value: - Char: - character: - Scalar: 0 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 7 - path: "" - content: "'\\x00'" - - Value: - Char: - character: - Scalar: 1 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 7 - path: "" - content: "'\\x01'" - - Value: - Char: - character: - Scalar: 2 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 7 - path: "" - content: "'\\x02'" - - Value: - Char: - character: - Scalar: 3 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 7 - path: "" - content: "'\\x03'" - - Value: - Char: - character: - Scalar: 4 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 7 - path: "" - content: "'\\x04'" - - Value: - Char: - character: - Scalar: 5 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 7 - path: "" - content: "'\\x05'" - - Value: - Char: - character: - Scalar: 6 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 7 - path: "" - content: "'\\x06'" - - Value: - Char: - character: - Scalar: 7 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 7 - path: "" - content: "'\\x07'" - - Value: - Char: - character: - Scalar: 16 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 7 - path: "" - content: "'\\x10'" - - Value: - Char: - character: - Scalar: 17 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 7 - path: "" - content: "'\\x11'" - - Value: - Char: - character: - Scalar: 18 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 7 - path: "" - content: "'\\x12'" - - Value: - Char: - character: - Scalar: 19 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 7 - path: "" - content: "'\\x13'" - - Value: - Char: - character: - Scalar: 20 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 7 - path: "" - content: "'\\x14'" - - Value: - Char: - character: - Scalar: 21 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 7 - path: "" - content: "'\\x15'" - - Value: - Char: - character: - Scalar: 22 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 7 - path: "" - content: "'\\x16'" - - Value: - Char: - character: - Scalar: 23 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 7 - path: "" - content: "'\\x17'" - - Value: - Char: - character: - Scalar: 32 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 7 - path: "" - content: "'\\x20'" - - Value: - Char: - character: - Scalar: 33 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 7 - path: "" - content: "'\\x21'" - - Value: - Char: - character: - Scalar: 34 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 7 - path: "" - content: "'\\x22'" - - Value: - Char: - character: - Scalar: 35 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 7 - path: "" - content: "'\\x23'" - - Value: - Char: - character: - Scalar: 36 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 7 - path: "" - content: "'\\x24'" - - Value: - Char: - character: - Scalar: 37 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 7 - path: "" - content: "'\\x25'" - - Value: - Char: - character: - Scalar: 38 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 7 - path: "" - content: "'\\x26'" - - Value: - Char: - character: - Scalar: 39 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 7 - path: "" - content: "'\\x27'" - - Value: - Char: - character: - Scalar: 48 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 7 - path: "" - content: "'\\x30'" - - Value: - Char: - character: - Scalar: 49 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 7 - path: "" - content: "'\\x31'" - - Value: - Char: - character: - Scalar: 50 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 7 - path: "" - content: "'\\x32'" - - Value: - Char: - character: - Scalar: 51 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 7 - path: "" - content: "'\\x33'" - - Value: - Char: - character: - Scalar: 52 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 7 - path: "" - content: "'\\x34'" - - Value: - Char: - character: - Scalar: 53 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 7 - path: "" - content: "'\\x35'" - - Value: - Char: - character: - Scalar: 54 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 7 - path: "" - content: "'\\x36'" - - Value: - Char: - character: - Scalar: 55 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 7 - path: "" - content: "'\\x37'" + - "'a' @ 1:1-4" + - "'Z' @ 1:1-4" + - "'\"' @ 1:1-5" + - "'' @ 1:1-5" + - "'' @ 1:1-5" + - "'\u0000' @ 1:1-5" + - "'\u000f' @ 1:1-8" + - "'' @ 1:1-6" + - "'å' @ 1:1-9" + - "'å' @ 1:1-5" + - "'Ӡ' @ 1:1-10" + - "'Ӡ' @ 1:1-5" + - "'❤' @ 1:1-11" + - "'❤' @ 1:1-6" + - "'😢' @ 1:1-12" + - "'😭' @ 1:1-7" + - "'􀀟' @ 1:1-13" + - "'*' @ 1:1-7" + - "'\u007f' @ 1:1-7" + - "'\u0000' @ 1:1-7" + - "'\u0001' @ 1:1-7" + - "'\u0002' @ 1:1-7" + - "'\u0003' @ 1:1-7" + - "'\u0004' @ 1:1-7" + - "'\u0005' @ 1:1-7" + - "'\u0006' @ 1:1-7" + - "'\u0007' @ 1:1-7" + - "'\u0010' @ 1:1-7" + - "'\u0011' @ 1:1-7" + - "'\u0012' @ 1:1-7" + - "'\u0013' @ 1:1-7" + - "'\u0014' @ 1:1-7" + - "'\u0015' @ 1:1-7" + - "'\u0016' @ 1:1-7" + - "'\u0017' @ 1:1-7" + - "'' @ 1:1-7" + - "'!' @ 1:1-7" + - "'\"' @ 1:1-7" + - "'#' @ 1:1-7" + - "'$' @ 1:1-7" + - "'%' @ 1:1-7" + - "'&' @ 1:1-7" + - "''' @ 1:1-7" + - "'0' @ 1:1-7" + - "'1' @ 1:1-7" + - "'2' @ 1:1-7" + - "'3' @ 1:1-7" + - "'4' @ 1:1-7" + - "'5' @ 1:1-7" + - "'6' @ 1:1-7" + - "'7' @ 1:1-7" diff --git a/tests/expectations/parser/parser/expression/literal/string_fail.leo.out b/tests/expectations/parser/parser/expression/literal/string_fail.leo.out index 9910d77db3..bb50d01fc0 100644 --- a/tests/expectations/parser/parser/expression/literal/string_fail.leo.out +++ b/tests/expectations/parser/parser/expression/literal/string_fail.leo.out @@ -9,3 +9,4 @@ outputs: - "Error [EPAR0370027]: Expected a closed string but found `\"\\u\"`." - "Error [EPAR0370036]: Expected a valid hex character but found `255`." - "Error [EPAR0370027]: Expected a closed string but found `\"\\x\"`." + - "Error [EPAR0370042]: There was no opening `{` after starting an escaped unicode `\\u}`." diff --git a/tests/expectations/parser/parser/program/backslash_eof.leo.out b/tests/expectations/parser/parser/program/backslash_eof.leo.out new file mode 100644 index 0000000000..d679c4f11b --- /dev/null +++ b/tests/expectations/parser/parser/program/backslash_eof.leo.out @@ -0,0 +1,5 @@ +--- +namespace: Parse +expectation: Fail +outputs: + - "Error [EPAR0370032]: Could not lex the following content: `\\`." diff --git a/tests/expectations/parser/parser/program/dollar_eof.leo.out b/tests/expectations/parser/parser/program/dollar_eof.leo.out new file mode 100644 index 0000000000..0389966496 --- /dev/null +++ b/tests/expectations/parser/parser/program/dollar_eof.leo.out @@ -0,0 +1,5 @@ +--- +namespace: Parse +expectation: Fail +outputs: + - "Error [EPAR0370032]: Could not lex the following content: `$`." diff --git a/tests/expectations/parser/parser/program/escape_u8_eof.leo.out b/tests/expectations/parser/parser/program/escape_u8_eof.leo.out new file mode 100644 index 0000000000..82f56889ac --- /dev/null +++ b/tests/expectations/parser/parser/program/escape_u8_eof.leo.out @@ -0,0 +1,5 @@ +--- +namespace: Parse +expectation: Fail +outputs: + - "Error [EPAR0370032]: Could not lex the following content: `\\1u8`." diff --git a/tests/expectations/parser/parser/program/hex_eof.leo.out b/tests/expectations/parser/parser/program/hex_eof.leo.out new file mode 100644 index 0000000000..37aea2c88e --- /dev/null +++ b/tests/expectations/parser/parser/program/hex_eof.leo.out @@ -0,0 +1,5 @@ +--- +namespace: Parse +expectation: Fail +outputs: + - "Error [EPAR0370040]: A hex number `0x..` was provided but hex is not allowed." diff --git a/tests/expectations/parser/parser/program/pipe_eof.leo.out b/tests/expectations/parser/parser/program/pipe_eof.leo.out new file mode 100644 index 0000000000..2103e7b671 --- /dev/null +++ b/tests/expectations/parser/parser/program/pipe_eof.leo.out @@ -0,0 +1,5 @@ +--- +namespace: Parse +expectation: Fail +outputs: + - "Error [EPAR0370032]: Could not lex the following content: `|`." diff --git a/tests/expectations/parser/parser/program/q_eof.leo.out b/tests/expectations/parser/parser/program/q_eof.leo.out new file mode 100644 index 0000000000..68f7c3b559 --- /dev/null +++ b/tests/expectations/parser/parser/program/q_eof.leo.out @@ -0,0 +1,5 @@ +--- +namespace: Parse +expectation: Fail +outputs: + - "Error [EPAR0370027]: Expected a closed string but found `\"`." diff --git a/tests/expectations/parser/parser/program/sq_eof.leo.out b/tests/expectations/parser/parser/program/sq_eof.leo.out new file mode 100644 index 0000000000..1bab5ffabb --- /dev/null +++ b/tests/expectations/parser/parser/program/sq_eof.leo.out @@ -0,0 +1,5 @@ +--- +namespace: Parse +expectation: Fail +outputs: + - "Error [EPAR0370028]: Expected a closed char but found `'`." diff --git a/tests/expectations/parser/parser/program/tilde_eof.leo.out b/tests/expectations/parser/parser/program/tilde_eof.leo.out new file mode 100644 index 0000000000..c44c1a4d3f --- /dev/null +++ b/tests/expectations/parser/parser/program/tilde_eof.leo.out @@ -0,0 +1,5 @@ +--- +namespace: Parse +expectation: Fail +outputs: + - "Error [EPAR0370032]: Could not lex the following content: `~`." diff --git a/tests/expectations/parser/parser/program/unclosed_unicode_eof_fail.leo.out b/tests/expectations/parser/parser/program/unclosed_unicode_eof_fail.leo.out new file mode 100644 index 0000000000..ad932d117a --- /dev/null +++ b/tests/expectations/parser/parser/program/unclosed_unicode_eof_fail.leo.out @@ -0,0 +1,5 @@ +--- +namespace: Parse +expectation: Fail +outputs: + - "Error [EPAR0370026]: Expected a valid escape character but found `117`." diff --git a/tests/expectations/parser/parser/statement/hex_int_fail.leo.out b/tests/expectations/parser/parser/statement/hex_int_fail.leo.out index c36f660260..d16c3c203a 100644 --- a/tests/expectations/parser/parser/statement/hex_int_fail.leo.out +++ b/tests/expectations/parser/parser/statement/hex_int_fail.leo.out @@ -2,6 +2,6 @@ namespace: ParseStatement expectation: Fail outputs: - - "Error [EPAR0370040]: A hex number `0x4..` was provided but hex is not allowed." - - "Error [EPAR0370040]: A hex number `0xA..` was provided but hex is not allowed." - - "Error [EPAR0370040]: A hex number `0xF..` was provided but hex is not allowed." + - "Error [EPAR0370040]: A hex number `0x..` was provided but hex is not allowed." + - "Error [EPAR0370040]: A hex number `0x..` was provided but hex is not allowed." + - "Error [EPAR0370040]: A hex number `0x..` was provided but hex is not allowed." diff --git a/tests/expectations/parser/parser/unreachable/define.leo.out b/tests/expectations/parser/parser/unreachable/define.leo.out index bf28b4b9ea..375ae97a14 100644 --- a/tests/expectations/parser/parser/unreachable/define.leo.out +++ b/tests/expectations/parser/parser/unreachable/define.leo.out @@ -3,3 +3,48 @@ namespace: ParseStatement expectation: Fail outputs: - "Error [EPAR0370009]: unexpected string: expected 'expression', got ';'\n --> test:1:1\n |\n 1 | ; x = 10u8;\n | ^" + - "Error [EPAR0370009]: unexpected string: expected 'expression', got '.'\n --> test:1:1\n |\n 1 | . x = 10u8;\n | ^" + - "Error [EPAR0370009]: unexpected string: expected 'expression', got 'import'\n --> test:1:1\n |\n 1 | import x = 10u8;\n | ^^^^^^" + - "Error [EPAR0370009]: unexpected string: expected 'expression', got ','\n --> test:1:1\n |\n 1 | , x = 10u8;\n | ^" + - "Error [EPAR0370005]: expected , -- got '='\n --> test:1:5\n |\n 1 | [ x = 10u8;\n | ^" + - "Error [EPAR0370009]: unexpected string: expected 'expression', got ']'\n --> test:1:1\n |\n 1 | ] x = 10u8;\n | ^" + - "Error [EPAR0370003]: unexpected EOF\n --> test:1:11\n |\n 1 | { x = 10u8;\n | ^" + - "Error [EPAR0370009]: unexpected string: expected 'expression', got '}'\n --> test:1:1\n |\n 1 | } x = 10u8;\n | ^" + - "Error [EPAR0370005]: expected ) -- got '='\n --> test:1:5\n |\n 1 | ( x = 10u8;\n | ^" + - "Error [EPAR0370009]: unexpected string: expected 'expression', got ')'\n --> test:1:1\n |\n 1 | ) x = 10u8;\n | ^" + - "Error [EPAR0370009]: unexpected string: expected 'expression', got ':'\n --> test:1:1\n |\n 1 | : x = 10u8;\n | ^" + - "Error [EPAR0370009]: unexpected string: expected 'expression', got '::'\n --> test:1:1\n |\n 1 | :: x = 10u8;\n | ^^" + - "Error [EPAR0370009]: unexpected string: expected 'expression', got '?'\n --> test:1:1\n |\n 1 | ? x = 10u8;\n | ^" + - "Error [EPAR0370009]: unexpected string: expected 'expression', got '_'\n --> test:1:1\n |\n 1 | _ x = 10u8;\n | ^" + - "Error [EPAR0370009]: unexpected string: expected 'expression', got '='\n --> test:1:1\n |\n 1 | = x = 10u8;\n | ^" + - "Error [EPAR0370009]: unexpected string: expected 'expression', got '=='\n --> test:1:1\n |\n 1 | == x = 10u8;\n | ^^" + - "Error [EPAR0370011]: invalid assignment target\n --> test:1:1\n |\n 1 | ! x = 10u8;\n | ^^^" + - "Error [EPAR0370009]: unexpected string: expected 'expression', got '!='\n --> test:1:1\n |\n 1 | != x = 10u8;\n | ^^" + - "Error [EPAR0370009]: unexpected string: expected 'expression', got '>'\n --> test:1:1\n |\n 1 | > x = 10u8;\n | ^" + - "Error [EPAR0370009]: unexpected string: expected 'expression', got '>='\n --> test:1:1\n |\n 1 | >= x = 10u8;\n | ^^" + - "Error [EPAR0370009]: unexpected string: expected 'expression', got '<'\n --> test:1:1\n |\n 1 | < x = 10u8;\n | ^" + - "Error [EPAR0370009]: unexpected string: expected 'expression', got '<='\n --> test:1:1\n |\n 1 | <= x = 10u8;\n | ^^" + - "Error [EPAR0370009]: unexpected string: expected 'expression', got '>'\n --> test:1:1\n |\n 1 | > x = 10u8;\n | ^" + - "Error [EPAR0370009]: unexpected string: expected 'expression', got '..'\n --> test:1:1\n |\n 1 | .. x = 10u8;\n | ^^" + - "Error [EPAR0370009]: unexpected string: expected 'expression', got 'as'\n --> test:1:1\n |\n 1 | as x = 10u8;\n | ^^" + - "Error [EPAR0370005]: expected . -- got 'x'\n --> test:1:9\n |\n 1 | console x = 10u8;\n | ^" + - "Error [EPAR0370005]: expected in -- got '='\n --> test:1:7\n |\n 1 | for x = 10u8;\n | ^" + - "Error [EPAR0370005]: expected { -- got '='\n --> test:1:6\n |\n 1 | if x = 10u8;\n | ^" + - "Error [EPAR0370009]: unexpected string: expected 'expression', got 'else'\n --> test:1:1\n |\n 1 | else x = 10u8;\n | ^^^^" + - "Error [EPAR0370005]: expected ; -- got 'x'\n --> test:1:4\n |\n 1 | i8 x = 10u8;\n | ^" + - "Error [EPAR0370005]: expected ; -- got 'x'\n --> test:1:5\n |\n 1 | i16 x = 10u8;\n | ^" + - "Error [EPAR0370005]: expected ; -- got 'x'\n --> test:1:5\n |\n 1 | i32 x = 10u8;\n | ^" + - "Error [EPAR0370005]: expected ; -- got 'x'\n --> test:1:5\n |\n 1 | i64 x = 10u8;\n | ^" + - "Error [EPAR0370005]: expected ; -- got 'x'\n --> test:1:6\n |\n 1 | i128 x = 10u8;\n | ^" + - "Error [EPAR0370005]: expected ; -- got 'x'\n --> test:1:4\n |\n 1 | u8 x = 10u8;\n | ^" + - "Error [EPAR0370005]: expected ; -- got 'x'\n --> test:1:5\n |\n 1 | u16 x = 10u8;\n | ^" + - "Error [EPAR0370005]: expected ; -- got 'x'\n --> test:1:5\n |\n 1 | u32 x = 10u8;\n | ^" + - "Error [EPAR0370005]: expected ; -- got 'x'\n --> test:1:5\n |\n 1 | u64 x = 10u8;\n | ^" + - "Error [EPAR0370005]: expected ; -- got 'x'\n --> test:1:6\n |\n 1 | u128 x = 10u8;\n | ^" + - "Error [EPAR0370009]: unexpected string: expected 'expression', got '&'\n --> test:1:1\n |\n 1 | & x = 10u8;\n | ^" + - "Error [EPAR0370005]: expected ; -- got '='\n --> test:1:10\n |\n 1 | return x = 10u8;\n | ^" + - "Error [EPAR0370005]: expected ; -- got 'x'\n --> test:1:6\n |\n 1 | self x = 10u8;\n | ^" + - "Error [EPAR0370005]: expected ; -- got 'x'\n --> test:1:6\n |\n 1 | Self x = 10u8;\n | ^" + - "Error [EPAR0370005]: expected ; -- got 'x'\n --> test:1:6\n |\n 1 | true x = 10u8;\n | ^" + - "Error [EPAR0370005]: expected ; -- got 'x'\n --> test:1:7\n |\n 1 | false x = 10u8;\n | ^" + - "Error [EPAR0370005]: expected ; -- got 'x'\n --> test:1:3\n |\n 1 | 0 x = 10u8;\n | ^" diff --git a/tests/expectations/parser/parser/unreachable/eat_int.leo.out b/tests/expectations/parser/parser/unreachable/eat_int.leo.out index 1afeaebce3..f2f5151fe2 100644 --- a/tests/expectations/parser/parser/unreachable/eat_int.leo.out +++ b/tests/expectations/parser/parser/unreachable/eat_int.leo.out @@ -3,3 +3,54 @@ namespace: ParseStatement expectation: Fail outputs: - "Error [EPAR0370009]: unexpected string: expected 'int or ident', got '-'\n --> test:1:3\n |\n 1 | x.-12\n | ^" + - "Error [EPAR0370005]: expected ; -- got '_'\n --> test:1:4\n |\n 1 | x.0_;\n | ^" + - "Error [EPAR0370005]: expected ; -- got '_'\n --> test:1:4\n |\n 1 | x.0_.\n | ^" + - "Error [EPAR0370005]: expected ; -- got '_'\n --> test:1:4\n |\n 1 | x.0_import\n | ^" + - "Error [EPAR0370005]: expected ; -- got '_'\n --> test:1:4\n |\n 1 | x.0_,\n | ^" + - "Error [EPAR0370005]: expected ; -- got '_'\n --> test:1:4\n |\n 1 | x.0_*\n | ^" + - "Error [EPAR0370005]: expected ; -- got '_'\n --> test:1:4\n |\n 1 | x.0_+\n | ^" + - "Error [EPAR0370005]: expected ; -- got '_'\n --> test:1:4\n |\n 1 | x.0_-\n | ^" + - "Error [EPAR0370005]: expected ; -- got '_'\n --> test:1:4\n |\n 1 | x.0_/\n | ^" + - "Error [EPAR0370005]: expected ; -- got '_'\n --> test:1:4\n |\n 1 | x.0_[\n | ^" + - "Error [EPAR0370005]: expected ; -- got '_'\n --> test:1:4\n |\n 1 | x.0_]\n | ^" + - "Error [EPAR0370005]: expected ; -- got '_'\n --> test:1:4\n |\n 1 | x.0_{\n | ^" + - "Error [EPAR0370005]: expected ; -- got '_'\n --> test:1:4\n |\n 1 | x.0_}\n | ^" + - "Error [EPAR0370005]: expected ; -- got '_'\n --> test:1:4\n |\n 1 | x.0_(\n | ^" + - "Error [EPAR0370005]: expected ; -- got '_'\n --> test:1:4\n |\n 1 | x.0_)\n | ^" + - "Error [EPAR0370005]: expected ; -- got '_'\n --> test:1:4\n |\n 1 | x.0_:\n | ^" + - "Error [EPAR0370005]: expected ; -- got '_'\n --> test:1:4\n |\n 1 | x.0_::\n | ^" + - "Error [EPAR0370005]: expected ; -- got '_'\n --> test:1:4\n |\n 1 | x.0_?\n | ^" + - "Error [EPAR0370005]: expected ; -- got '_'\n --> test:1:4\n |\n 1 | x.0__\n | ^" + - "Error [EPAR0370005]: expected ; -- got '_'\n --> test:1:4\n |\n 1 | x.0_=\n | ^" + - "Error [EPAR0370005]: expected ; -- got '_'\n --> test:1:4\n |\n 1 | x.0_==\n | ^" + - "Error [EPAR0370005]: expected ; -- got '_'\n --> test:1:4\n |\n 1 | x.0_!\n | ^" + - "Error [EPAR0370005]: expected ; -- got '_'\n --> test:1:4\n |\n 1 | x.0_!=\n | ^" + - "Error [EPAR0370005]: expected ; -- got '_'\n --> test:1:4\n |\n 1 | x.0_>\n | ^" + - "Error [EPAR0370005]: expected ; -- got '_'\n --> test:1:4\n |\n 1 | x.0_>=\n | ^" + - "Error [EPAR0370005]: expected ; -- got '_'\n --> test:1:4\n |\n 1 | x.0_<\n | ^" + - "Error [EPAR0370005]: expected ; -- got '_'\n --> test:1:4\n |\n 1 | x.0_<=\n | ^" + - "Error [EPAR0370005]: expected ; -- got '_'\n --> test:1:4\n |\n 1 | x.0_>\n | ^" + - "Error [EPAR0370005]: expected ; -- got '_'\n --> test:1:4\n |\n 1 | x.0_..\n | ^" + - "Error [EPAR0370005]: expected ; -- got '_'\n --> test:1:4\n |\n 1 | x.0_as\n | ^" + - "Error [EPAR0370005]: expected ; -- got '_'\n --> test:1:4\n |\n 1 | x.0_console\n | ^" + - "Error [EPAR0370005]: expected ; -- got '_'\n --> test:1:4\n |\n 1 | x.0_const\n | ^" + - "Error [EPAR0370005]: expected ; -- got '_'\n --> test:1:4\n |\n 1 | x.0_let\n | ^" + - "Error [EPAR0370005]: expected ; -- got '_'\n --> test:1:4\n |\n 1 | x.0_for\n | ^" + - "Error [EPAR0370005]: expected ; -- got '_'\n --> test:1:4\n |\n 1 | x.0_if\n | ^" + - "Error [EPAR0370005]: expected ; -- got '_'\n --> test:1:4\n |\n 1 | x.0_else\n | ^" + - "Error [EPAR0370005]: expected ; -- got '_'\n --> test:1:4\n |\n 1 | x.0_i8\n | ^" + - "Error [EPAR0370005]: expected ; -- got '_'\n --> test:1:4\n |\n 1 | x.0_i16\n | ^" + - "Error [EPAR0370005]: expected ; -- got '_'\n --> test:1:4\n |\n 1 | x.0_i32\n | ^" + - "Error [EPAR0370005]: expected ; -- got '_'\n --> test:1:4\n |\n 1 | x.0_i64\n | ^" + - "Error [EPAR0370005]: expected ; -- got '_'\n --> test:1:4\n |\n 1 | x.0_i128\n | ^" + - "Error [EPAR0370005]: expected ; -- got '_'\n --> test:1:4\n |\n 1 | x.0_u8\n | ^" + - "Error [EPAR0370005]: expected ; -- got '_'\n --> test:1:4\n |\n 1 | x.0_u16\n | ^" + - "Error [EPAR0370005]: expected ; -- got '_'\n --> test:1:4\n |\n 1 | x.0_u32\n | ^" + - "Error [EPAR0370005]: expected ; -- got '_'\n --> test:1:4\n |\n 1 | x.0_u64\n | ^" + - "Error [EPAR0370005]: expected ; -- got '_'\n --> test:1:4\n |\n 1 | x.0_u128\n | ^" + - "Error [EPAR0370005]: expected ; -- got '_'\n --> test:1:4\n |\n 1 | x.0_&\n | ^" + - "Error [EPAR0370005]: expected ; -- got '_'\n --> test:1:4\n |\n 1 | x.0_return\n | ^" + - "Error [EPAR0370005]: expected ; -- got '_'\n --> test:1:4\n |\n 1 | x.0_self\n | ^" + - "Error [EPAR0370005]: expected ; -- got '_'\n --> test:1:4\n |\n 1 | x.0_Self\n | ^" + - "Error [EPAR0370005]: expected ; -- got '_'\n --> test:1:4\n |\n 1 | x.0_true\n | ^" + - "Error [EPAR0370005]: expected ; -- got '_'\n --> test:1:4\n |\n 1 | x.0_false\n | ^" diff --git a/tests/expectations/parser/parser/unreachable/expect_ident.leo.out b/tests/expectations/parser/parser/unreachable/expect_ident.leo.out index 7589b17985..5d356e51f1 100644 --- a/tests/expectations/parser/parser/unreachable/expect_ident.leo.out +++ b/tests/expectations/parser/parser/unreachable/expect_ident.leo.out @@ -3,3 +3,54 @@ namespace: ParseStatement expectation: Fail outputs: - "Error [EPAR0370009]: unexpected string: expected 'ident', got ';'\n --> test:1:4\n |\n 1 | x::;\n | ^" + - "Error [EPAR0370009]: unexpected string: expected 'ident', got '.'\n --> test:1:4\n |\n 1 | x::.\n | ^" + - "Error [EPAR0370009]: unexpected string: expected 'ident', got 'import'\n --> test:1:4\n |\n 1 | x::import\n | ^^^^^^" + - "Error [EPAR0370009]: unexpected string: expected 'ident', got ','\n --> test:1:4\n |\n 1 | x::,\n | ^" + - "Error [EPAR0370009]: unexpected string: expected 'ident', got '*'\n --> test:1:4\n |\n 1 | x::*\n | ^" + - "Error [EPAR0370009]: unexpected string: expected 'ident', got '+'\n --> test:1:4\n |\n 1 | x::+\n | ^" + - "Error [EPAR0370009]: unexpected string: expected 'ident', got '-'\n --> test:1:4\n |\n 1 | x::-\n | ^" + - "Error [EPAR0370009]: unexpected string: expected 'ident', got '/'\n --> test:1:4\n |\n 1 | x::/\n | ^" + - "Error [EPAR0370009]: unexpected string: expected 'ident', got '['\n --> test:1:4\n |\n 1 | x::[\n | ^" + - "Error [EPAR0370009]: unexpected string: expected 'ident', got ']'\n --> test:1:4\n |\n 1 | x::]\n | ^" + - "Error [EPAR0370009]: unexpected string: expected 'ident', got '{'\n --> test:1:4\n |\n 1 | x::{\n | ^" + - "Error [EPAR0370009]: unexpected string: expected 'ident', got '}'\n --> test:1:4\n |\n 1 | x::}\n | ^" + - "Error [EPAR0370009]: unexpected string: expected 'ident', got '('\n --> test:1:4\n |\n 1 | x::(\n | ^" + - "Error [EPAR0370009]: unexpected string: expected 'ident', got ')'\n --> test:1:4\n |\n 1 | x::)\n | ^" + - "Error [EPAR0370009]: unexpected string: expected 'ident', got ':'\n --> test:1:4\n |\n 1 | x:::\n | ^" + - "Error [EPAR0370009]: unexpected string: expected 'ident', got '::'\n --> test:1:4\n |\n 1 | x::::\n | ^^" + - "Error [EPAR0370009]: unexpected string: expected 'ident', got '?'\n --> test:1:4\n |\n 1 | x::?\n | ^" + - "Error [EPAR0370009]: unexpected string: expected 'ident', got '_'\n --> test:1:4\n |\n 1 | x::_\n | ^" + - "Error [EPAR0370009]: unexpected string: expected 'ident', got '='\n --> test:1:4\n |\n 1 | x::=\n | ^" + - "Error [EPAR0370009]: unexpected string: expected 'ident', got '=='\n --> test:1:4\n |\n 1 | x::==\n | ^^" + - "Error [EPAR0370009]: unexpected string: expected 'ident', got '!'\n --> test:1:4\n |\n 1 | x::!\n | ^" + - "Error [EPAR0370009]: unexpected string: expected 'ident', got '!='\n --> test:1:4\n |\n 1 | x::!=\n | ^^" + - "Error [EPAR0370009]: unexpected string: expected 'ident', got '>'\n --> test:1:4\n |\n 1 | x::>\n | ^" + - "Error [EPAR0370009]: unexpected string: expected 'ident', got '>='\n --> test:1:4\n |\n 1 | x::>=\n | ^^" + - "Error [EPAR0370009]: unexpected string: expected 'ident', got '<'\n --> test:1:4\n |\n 1 | x::<\n | ^" + - "Error [EPAR0370009]: unexpected string: expected 'ident', got '<='\n --> test:1:4\n |\n 1 | x::<=\n | ^^" + - "Error [EPAR0370009]: unexpected string: expected 'ident', got '>'\n --> test:1:4\n |\n 1 | x::>\n | ^" + - "Error [EPAR0370009]: unexpected string: expected 'ident', got '..'\n --> test:1:4\n |\n 1 | x::..\n | ^^" + - "Error [EPAR0370009]: unexpected string: expected 'ident', got 'as'\n --> test:1:4\n |\n 1 | x::as\n | ^^" + - "Error [EPAR0370009]: unexpected string: expected 'ident', got 'console'\n --> test:1:4\n |\n 1 | x::console\n | ^^^^^^^" + - "Error [EPAR0370009]: unexpected string: expected 'ident', got 'const'\n --> test:1:4\n |\n 1 | x::const\n | ^^^^^" + - "Error [EPAR0370009]: unexpected string: expected 'ident', got 'let'\n --> test:1:4\n |\n 1 | x::let\n | ^^^" + - "Error [EPAR0370009]: unexpected string: expected 'ident', got 'for'\n --> test:1:4\n |\n 1 | x::for\n | ^^^" + - "Error [EPAR0370009]: unexpected string: expected 'ident', got 'if'\n --> test:1:4\n |\n 1 | x::if\n | ^^" + - "Error [EPAR0370009]: unexpected string: expected 'ident', got 'else'\n --> test:1:4\n |\n 1 | x::else\n | ^^^^" + - "Error [EPAR0370009]: unexpected string: expected 'ident', got 'i8'\n --> test:1:4\n |\n 1 | x::i8\n | ^^" + - "Error [EPAR0370009]: unexpected string: expected 'ident', got 'i16'\n --> test:1:4\n |\n 1 | x::i16\n | ^^^" + - "Error [EPAR0370009]: unexpected string: expected 'ident', got 'i32'\n --> test:1:4\n |\n 1 | x::i32\n | ^^^" + - "Error [EPAR0370009]: unexpected string: expected 'ident', got 'i64'\n --> test:1:4\n |\n 1 | x::i64\n | ^^^" + - "Error [EPAR0370009]: unexpected string: expected 'ident', got 'i128'\n --> test:1:4\n |\n 1 | x::i128\n | ^^^^" + - "Error [EPAR0370009]: unexpected string: expected 'ident', got 'u8'\n --> test:1:4\n |\n 1 | x::u8\n | ^^" + - "Error [EPAR0370009]: unexpected string: expected 'ident', got 'u16'\n --> test:1:4\n |\n 1 | x::u16\n | ^^^" + - "Error [EPAR0370009]: unexpected string: expected 'ident', got 'u32'\n --> test:1:4\n |\n 1 | x::u32\n | ^^^" + - "Error [EPAR0370009]: unexpected string: expected 'ident', got 'u64'\n --> test:1:4\n |\n 1 | x::u64\n | ^^^" + - "Error [EPAR0370009]: unexpected string: expected 'ident', got 'u128'\n --> test:1:4\n |\n 1 | x::u128\n | ^^^^" + - "Error [EPAR0370009]: unexpected string: expected 'ident', got '&'\n --> test:1:4\n |\n 1 | x::&\n | ^" + - "Error [EPAR0370009]: unexpected string: expected 'ident', got 'return'\n --> test:1:4\n |\n 1 | x::return\n | ^^^^^^" + - "Error [EPAR0370009]: unexpected string: expected 'ident', got 'self'\n --> test:1:4\n |\n 1 | x::self\n | ^^^^" + - "Error [EPAR0370009]: unexpected string: expected 'ident', got 'Self'\n --> test:1:4\n |\n 1 | x::Self\n | ^^^^" + - "Error [EPAR0370009]: unexpected string: expected 'ident', got 'true'\n --> test:1:4\n |\n 1 | x::true\n | ^^^^" + - "Error [EPAR0370009]: unexpected string: expected 'ident', got 'false'\n --> test:1:4\n |\n 1 | x::false\n | ^^^^^" + - "Error [EPAR0370009]: unexpected string: expected 'ident', got '0'\n --> test:1:4\n |\n 1 | x::0\n | ^" diff --git a/tests/expectations/parser/parser/unreachable/math_op_fail.leo.out b/tests/expectations/parser/parser/unreachable/math_op_fail.leo.out new file mode 100644 index 0000000000..d3eb1fba62 --- /dev/null +++ b/tests/expectations/parser/parser/unreachable/math_op_fail.leo.out @@ -0,0 +1,59 @@ +--- +namespace: ParseStatement +expectation: Fail +outputs: + - "did not consume all input: 'b' @ 1:13-14\n';' @ 1:14-15\n" + - "Error [EPAR0370005]: expected ; -- got 'import'\n --> test:1:11\n |\n 1 | let x = a import b;\n | ^^^^^^" + - "Error [EPAR0370005]: expected ; -- got ','\n --> test:1:11\n |\n 1 | let x = a , b;\n | ^" + - "Error [EPAR0370005]: expected ] -- got ';'\n --> test:1:14\n |\n 1 | let x = a [ b;\n | ^" + - "Error [EPAR0370005]: expected ; -- got ']'\n --> test:1:11\n |\n 1 | let x = a ] b;\n | ^" + - "Error [EPAR0370005]: expected } -- got ';'\n --> test:1:14\n |\n 1 | let x = a { b;\n | ^" + - "Error [EPAR0370005]: expected ; -- got '}'\n --> test:1:11\n |\n 1 | let x = a } b;\n | ^" + - "Error [EPAR0370005]: expected ) -- got ';'\n --> test:1:14\n |\n 1 | let x = a ( b;\n | ^" + - "Error [EPAR0370005]: expected ; -- got ')'\n --> test:1:11\n |\n 1 | let x = a ) b;\n | ^" + - "Error [EPAR0370005]: expected ; -- got ':'\n --> test:1:11\n |\n 1 | let x = a : b;\n | ^" + - "Error [EPAR0370005]: expected : -- got ';'\n --> test:1:14\n |\n 1 | let x = a ? b;\n | ^" + - "Error [EPAR0370005]: expected ; -- got '_'\n --> test:1:11\n |\n 1 | let x = a _ b;\n | ^" + - "Error [EPAR0370005]: expected ; -- got '='\n --> test:1:11\n |\n 1 | let x = a = b;\n | ^" + - "Error [EPAR0370005]: expected ; -- got '!'\n --> test:1:11\n |\n 1 | let x = a ! b;\n | ^" + - "Error [EPAR0370005]: expected ; -- got '..'\n --> test:1:11\n |\n 1 | let x = a .. b;\n | ^^" + - "Error [EPAR0370005]: expected ; -- got 'console'\n --> test:1:11\n |\n 1 | let x = a console b;\n | ^^^^^^^" + - "Error [EPAR0370005]: expected ; -- got 'const'\n --> test:1:11\n |\n 1 | let x = a const b;\n | ^^^^^" + - "Error [EPAR0370005]: expected ; -- got 'let'\n --> test:1:11\n |\n 1 | let x = a let b;\n | ^^^" + - "Error [EPAR0370005]: expected ; -- got 'for'\n --> test:1:11\n |\n 1 | let x = a for b;\n | ^^^" + - "Error [EPAR0370005]: expected ; -- got 'if'\n --> test:1:11\n |\n 1 | let x = a if b;\n | ^^" + - "Error [EPAR0370005]: expected ; -- got 'else'\n --> test:1:11\n |\n 1 | let x = a else b;\n | ^^^^" + - "Error [EPAR0370005]: expected ; -- got 'i8'\n --> test:1:11\n |\n 1 | let x = a i8 b;\n | ^^" + - "Error [EPAR0370005]: expected ; -- got 'i16'\n --> test:1:11\n |\n 1 | let x = a i16 b;\n | ^^^" + - "Error [EPAR0370005]: expected ; -- got 'i32'\n --> test:1:11\n |\n 1 | let x = a i32 b;\n | ^^^" + - "Error [EPAR0370005]: expected ; -- got 'i64'\n --> test:1:11\n |\n 1 | let x = a i64 b;\n | ^^^" + - "Error [EPAR0370005]: expected ; -- got 'i128'\n --> test:1:11\n |\n 1 | let x = a i128 b;\n | ^^^^" + - "Error [EPAR0370005]: expected ; -- got 'u8'\n --> test:1:11\n |\n 1 | let x = a u8 b;\n | ^^" + - "Error [EPAR0370005]: expected ; -- got 'u16'\n --> test:1:11\n |\n 1 | let x = a u16 b;\n | ^^^" + - "Error [EPAR0370005]: expected ; -- got 'u32'\n --> test:1:11\n |\n 1 | let x = a u32 b;\n | ^^^" + - "Error [EPAR0370005]: expected ; -- got 'u64'\n --> test:1:11\n |\n 1 | let x = a u64 b;\n | ^^^" + - "Error [EPAR0370005]: expected ; -- got 'u128'\n --> test:1:11\n |\n 1 | let x = a u128 b;\n | ^^^^" + - "Error [EPAR0370005]: expected ; -- got '&'\n --> test:1:11\n |\n 1 | let x = a & b;\n | ^" + - "Error [EPAR0370005]: expected ; -- got 'return'\n --> test:1:11\n |\n 1 | let x = a return b;\n | ^^^^^^" + - "Error [EPAR0370005]: expected ; -- got 'self'\n --> test:1:11\n |\n 1 | let x = a self b;\n | ^^^^" + - "Error [EPAR0370005]: expected ; -- got 'Self'\n --> test:1:11\n |\n 1 | let x = a Self b;\n | ^^^^" + - "Error [EPAR0370005]: expected ; -- got 'true'\n --> test:1:11\n |\n 1 | let x = a true b;\n | ^^^^" + - "Error [EPAR0370005]: expected ; -- got 'false'\n --> test:1:11\n |\n 1 | let x = a false b;\n | ^^^^^" + - "Error [EPAR0370005]: expected ; -- got '0'\n --> test:1:11\n |\n 1 | let x = a 0 b;\n | ^" + - "did not consume all input: '=' @ 1:3-4\n'b' @ 1:4-5\n';' @ 1:5-6\n" + - "Error [EPAR0370009]: unexpected string: expected 'int or ident', got '='\n --> test:1:3\n |\n 1 | x.=b;\n | ^" + - "Error [EPAR0370005]: expected ; -- got ','\n --> test:1:2\n |\n 1 | x,=b; // 43\n | ^" + - "Error [EPAR0370009]: unexpected string: expected 'expression', got '='\n --> test:1:3\n |\n 1 | x[=b;\n | ^" + - "Error [EPAR0370005]: expected ; -- got ']'\n --> test:1:2\n |\n 1 | x]=b;\n | ^" + - "Error [EPAR0370009]: unexpected string: expected 'ident', got '='\n --> test:1:3\n |\n 1 | x{=b;\n | ^" + - "Error [EPAR0370005]: expected ; -- got '}'\n --> test:1:2\n |\n 1 | x}=b;\n | ^" + - "Error [EPAR0370009]: unexpected string: expected 'expression', got ';'\n --> test:1:4\n |\n 1 | x=(;\n | ^" + - "Error [EPAR0370009]: unexpected string: expected 'expression', got ')'\n --> test:1:3\n |\n 1 | x=);\n | ^" + - "Error [EPAR0370009]: unexpected string: expected 'expression', got ':'\n --> test:1:3\n |\n 1 | x=:;\n | ^" + - "Error [EPAR0370009]: unexpected string: expected 'expression', got '::'\n --> test:1:3\n |\n 1 | x=::;\n | ^^" + - "Error [EPAR0370009]: unexpected string: expected 'expression', got '='\n --> test:1:3\n |\n 1 | x?=b;\n | ^" + - "Error [EPAR0370009]: unexpected string: expected 'expression', got '='\n --> test:1:4\n |\n 1 | x!==b;\n | ^" + - "Error [EPAR0370009]: unexpected string: expected 'expression', got '='\n --> test:1:4\n |\n 1 | x>==b;\n | ^" + - "Error [EPAR0370009]: unexpected string: expected 'expression', got '='\n --> test:1:4\n |\n 1 | x<==b;\n | ^" + - "Error [EPAR0370005]: expected ; -- got '..'\n --> test:1:2\n |\n 1 | x..=b;\n | ^^" + - "Error [EPAR0370005]: expected ; -- got '&'\n --> test:1:2\n |\n 1 | x&=b;\n | ^" diff --git a/tests/expectations/parser/parser/unreachable/math_op_pass.leo.out b/tests/expectations/parser/parser/unreachable/math_op_pass.leo.out new file mode 100644 index 0000000000..a23a423e96 --- /dev/null +++ b/tests/expectations/parser/parser/unreachable/math_op_pass.leo.out @@ -0,0 +1,988 @@ +--- +namespace: ParseStatement +expectation: Pass +outputs: + - Definition: + declaration_type: Let + variable_names: + - mutable: true + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":5,\\\"col_stop\\\":6,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = a . b;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 5 + col_stop: 6 + path: "" + content: let x = a . b; + parened: false + type_: ~ + value: + Access: + Member: + inner: + Identifier: "{\"name\":\"a\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":9,\\\"col_stop\\\":10,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = a . b;\\\"}\"}" + name: "{\"name\":\"b\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":13,\\\"col_stop\\\":14,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = a . b;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 9 + col_stop: 14 + path: "" + content: let x = a . b; + type_: ~ + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 14 + path: "" + content: let x = a . b; + - Definition: + declaration_type: Let + variable_names: + - mutable: true + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":5,\\\"col_stop\\\":6,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = a :: b;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 5 + col_stop: 6 + path: "" + content: "let x = a :: b;" + parened: false + type_: ~ + value: + Access: + Static: + inner: + Identifier: "{\"name\":\"a\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":9,\\\"col_stop\\\":10,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = a :: b;\\\"}\"}" + name: "{\"name\":\"b\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":14,\\\"col_stop\\\":15,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = a :: b;\\\"}\"}" + type_: ~ + span: + line_start: 1 + line_stop: 1 + col_start: 9 + col_stop: 15 + path: "" + content: "let x = a :: b;" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 15 + path: "" + content: "let x = a :: b;" + - Definition: + declaration_type: Let + variable_names: + - mutable: true + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":5,\\\"col_stop\\\":6,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = a == b;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 5 + col_stop: 6 + path: "" + content: let x = a == b; + parened: false + type_: ~ + value: + Binary: + left: + Identifier: "{\"name\":\"a\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":9,\\\"col_stop\\\":10,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = a == b;\\\"}\"}" + right: + Identifier: "{\"name\":\"b\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":14,\\\"col_stop\\\":15,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = a == b;\\\"}\"}" + op: Eq + span: + line_start: 1 + line_stop: 1 + col_start: 9 + col_stop: 15 + path: "" + content: let x = a == b; + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 15 + path: "" + content: let x = a == b; + - Definition: + declaration_type: Let + variable_names: + - mutable: true + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":5,\\\"col_stop\\\":6,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = a != b;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 5 + col_stop: 6 + path: "" + content: let x = a != b; + parened: false + type_: ~ + value: + Binary: + left: + Identifier: "{\"name\":\"a\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":9,\\\"col_stop\\\":10,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = a != b;\\\"}\"}" + right: + Identifier: "{\"name\":\"b\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":14,\\\"col_stop\\\":15,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = a != b;\\\"}\"}" + op: Ne + span: + line_start: 1 + line_stop: 1 + col_start: 9 + col_stop: 15 + path: "" + content: let x = a != b; + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 15 + path: "" + content: let x = a != b; + - Definition: + declaration_type: Let + variable_names: + - mutable: true + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":5,\\\"col_stop\\\":6,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = a > b;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 5 + col_stop: 6 + path: "" + content: let x = a > b; + parened: false + type_: ~ + value: + Binary: + left: + Identifier: "{\"name\":\"a\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":9,\\\"col_stop\\\":10,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = a > b;\\\"}\"}" + right: + Identifier: "{\"name\":\"b\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":13,\\\"col_stop\\\":14,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = a > b;\\\"}\"}" + op: Gt + span: + line_start: 1 + line_stop: 1 + col_start: 9 + col_stop: 14 + path: "" + content: let x = a > b; + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 14 + path: "" + content: let x = a > b; + - Definition: + declaration_type: Let + variable_names: + - mutable: true + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":5,\\\"col_stop\\\":6,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = a >= b;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 5 + col_stop: 6 + path: "" + content: let x = a >= b; + parened: false + type_: ~ + value: + Binary: + left: + Identifier: "{\"name\":\"a\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":9,\\\"col_stop\\\":10,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = a >= b;\\\"}\"}" + right: + Identifier: "{\"name\":\"b\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":14,\\\"col_stop\\\":15,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = a >= b;\\\"}\"}" + op: Ge + span: + line_start: 1 + line_stop: 1 + col_start: 9 + col_stop: 15 + path: "" + content: let x = a >= b; + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 15 + path: "" + content: let x = a >= b; + - Definition: + declaration_type: Let + variable_names: + - mutable: true + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":5,\\\"col_stop\\\":6,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = a < b;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 5 + col_stop: 6 + path: "" + content: let x = a < b; + parened: false + type_: ~ + value: + Binary: + left: + Identifier: "{\"name\":\"a\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":9,\\\"col_stop\\\":10,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = a < b;\\\"}\"}" + right: + Identifier: "{\"name\":\"b\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":13,\\\"col_stop\\\":14,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = a < b;\\\"}\"}" + op: Lt + span: + line_start: 1 + line_stop: 1 + col_start: 9 + col_stop: 14 + path: "" + content: let x = a < b; + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 14 + path: "" + content: let x = a < b; + - Definition: + declaration_type: Let + variable_names: + - mutable: true + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":5,\\\"col_stop\\\":6,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = a <= b;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 5 + col_stop: 6 + path: "" + content: let x = a <= b; + parened: false + type_: ~ + value: + Binary: + left: + Identifier: "{\"name\":\"a\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":9,\\\"col_stop\\\":10,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = a <= b;\\\"}\"}" + right: + Identifier: "{\"name\":\"b\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":14,\\\"col_stop\\\":15,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = a <= b;\\\"}\"}" + op: Le + span: + line_start: 1 + line_stop: 1 + col_start: 9 + col_stop: 15 + path: "" + content: let x = a <= b; + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 15 + path: "" + content: let x = a <= b; + - Definition: + declaration_type: Let + variable_names: + - mutable: true + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":5,\\\"col_stop\\\":6,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = a > b;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 5 + col_stop: 6 + path: "" + content: let x = a > b; + parened: false + type_: ~ + value: + Binary: + left: + Identifier: "{\"name\":\"a\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":9,\\\"col_stop\\\":10,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = a > b;\\\"}\"}" + right: + Identifier: "{\"name\":\"b\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":13,\\\"col_stop\\\":14,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = a > b;\\\"}\"}" + op: Gt + span: + line_start: 1 + line_stop: 1 + col_start: 9 + col_stop: 14 + path: "" + content: let x = a > b; + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 14 + path: "" + content: let x = a > b; + - Definition: + declaration_type: Let + variable_names: + - mutable: true + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":5,\\\"col_stop\\\":6,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = a as b;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 5 + col_stop: 6 + path: "" + content: let x = a as b; + parened: false + type_: ~ + value: + Cast: + inner: + Identifier: "{\"name\":\"a\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":9,\\\"col_stop\\\":10,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = a as b;\\\"}\"}" + target_type: + Identifier: "{\"name\":\"b\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":14,\\\"col_stop\\\":15,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = a as b;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 9 + col_stop: 15 + path: "" + content: let x = a as b; + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 15 + path: "" + content: let x = a as b; + - Assign: + operation: Assign + assignee: + identifier: "{\"name\":\"ximport\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":8,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"ximport=b;\\\"}\"}" + accesses: [] + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 8 + path: "" + content: ximport=b; + value: + Identifier: "{\"name\":\"b\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":9,\\\"col_stop\\\":10,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"ximport=b;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 10 + path: "" + content: ximport=b; + - Assign: + operation: Assign + assignee: + identifier: "{\"name\":\"x_\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":3,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x_=b;\\\"}\"}" + accesses: [] + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 3 + path: "" + content: x_=b; + value: + Identifier: "{\"name\":\"b\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":4,\\\"col_stop\\\":5,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x_=b;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 5 + path: "" + content: x_=b; + - Expression: + expression: + Binary: + left: + Identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":2,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x==b;\\\"}\"}" + right: + Identifier: "{\"name\":\"b\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":4,\\\"col_stop\\\":5,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x==b;\\\"}\"}" + op: Eq + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 5 + path: "" + content: x==b; + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 5 + path: "" + content: x==b; + - Expression: + expression: + Binary: + left: + Identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":2,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x!=b;\\\"}\"}" + right: + Identifier: "{\"name\":\"b\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":4,\\\"col_stop\\\":5,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x!=b;\\\"}\"}" + op: Ne + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 5 + path: "" + content: x!=b; + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 5 + path: "" + content: x!=b; + - Expression: + expression: + Binary: + left: + Identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":2,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x>=b;\\\"}\"}" + right: + Identifier: "{\"name\":\"b\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":4,\\\"col_stop\\\":5,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x>=b;\\\"}\"}" + op: Ge + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 5 + path: "" + content: x>=b; + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 5 + path: "" + content: x>=b; + - Expression: + expression: + Binary: + left: + Identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":2,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x<=b;\\\"}\"}" + right: + Identifier: "{\"name\":\"b\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":4,\\\"col_stop\\\":5,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x<=b;\\\"}\"}" + op: Le + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 5 + path: "" + content: x<=b; + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 5 + path: "" + content: x<=b; + - Expression: + expression: + Binary: + left: + Identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":2,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x>=b;\\\"}\"}" + right: + Identifier: "{\"name\":\"b\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":4,\\\"col_stop\\\":5,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x>=b;\\\"}\"}" + op: Ge + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 5 + path: "" + content: x>=b; + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 5 + path: "" + content: x>=b; + - Assign: + operation: Assign + assignee: + identifier: "{\"name\":\"xas\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":4,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"xas=b;\\\"}\"}" + accesses: [] + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 4 + path: "" + content: xas=b; + value: + Identifier: "{\"name\":\"b\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":5,\\\"col_stop\\\":6,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"xas=b;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 6 + path: "" + content: xas=b; + - Assign: + operation: Assign + assignee: + identifier: "{\"name\":\"xconsole\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":9,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"xconsole=b;\\\"}\"}" + accesses: [] + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 9 + path: "" + content: xconsole=b; + value: + Identifier: "{\"name\":\"b\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":10,\\\"col_stop\\\":11,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"xconsole=b;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 11 + path: "" + content: xconsole=b; + - Assign: + operation: Assign + assignee: + identifier: "{\"name\":\"xconst\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":7,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"xconst=b;\\\"}\"}" + accesses: [] + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 7 + path: "" + content: xconst=b; + value: + Identifier: "{\"name\":\"b\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":8,\\\"col_stop\\\":9,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"xconst=b;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 9 + path: "" + content: xconst=b; + - Assign: + operation: Assign + assignee: + identifier: "{\"name\":\"xlet\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":5,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"xlet=b;\\\"}\"}" + accesses: [] + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 5 + path: "" + content: xlet=b; + value: + Identifier: "{\"name\":\"b\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":6,\\\"col_stop\\\":7,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"xlet=b;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 7 + path: "" + content: xlet=b; + - Assign: + operation: Assign + assignee: + identifier: "{\"name\":\"xfor\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":5,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"xfor=b;\\\"}\"}" + accesses: [] + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 5 + path: "" + content: xfor=b; + value: + Identifier: "{\"name\":\"b\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":6,\\\"col_stop\\\":7,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"xfor=b;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 7 + path: "" + content: xfor=b; + - Assign: + operation: Assign + assignee: + identifier: "{\"name\":\"xif\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":4,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"xif=b;\\\"}\"}" + accesses: [] + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 4 + path: "" + content: xif=b; + value: + Identifier: "{\"name\":\"b\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":5,\\\"col_stop\\\":6,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"xif=b;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 6 + path: "" + content: xif=b; + - Assign: + operation: Assign + assignee: + identifier: "{\"name\":\"xelse\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":6,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"xelse=b;\\\"}\"}" + accesses: [] + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 6 + path: "" + content: xelse=b; + value: + Identifier: "{\"name\":\"b\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":7,\\\"col_stop\\\":8,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"xelse=b;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 8 + path: "" + content: xelse=b; + - Assign: + operation: Assign + assignee: + identifier: "{\"name\":\"xi8\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":4,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"xi8=b;\\\"}\"}" + accesses: [] + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 4 + path: "" + content: xi8=b; + value: + Identifier: "{\"name\":\"b\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":5,\\\"col_stop\\\":6,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"xi8=b;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 6 + path: "" + content: xi8=b; + - Assign: + operation: Assign + assignee: + identifier: "{\"name\":\"xi16\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":5,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"xi16=b;\\\"}\"}" + accesses: [] + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 5 + path: "" + content: xi16=b; + value: + Identifier: "{\"name\":\"b\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":6,\\\"col_stop\\\":7,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"xi16=b;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 7 + path: "" + content: xi16=b; + - Assign: + operation: Assign + assignee: + identifier: "{\"name\":\"xi32\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":5,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"xi32=b;\\\"}\"}" + accesses: [] + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 5 + path: "" + content: xi32=b; + value: + Identifier: "{\"name\":\"b\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":6,\\\"col_stop\\\":7,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"xi32=b;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 7 + path: "" + content: xi32=b; + - Assign: + operation: Assign + assignee: + identifier: "{\"name\":\"xi64\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":5,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"xi64=b;\\\"}\"}" + accesses: [] + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 5 + path: "" + content: xi64=b; + value: + Identifier: "{\"name\":\"b\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":6,\\\"col_stop\\\":7,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"xi64=b;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 7 + path: "" + content: xi64=b; + - Assign: + operation: Assign + assignee: + identifier: "{\"name\":\"xi128\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":6,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"xi128=b;\\\"}\"}" + accesses: [] + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 6 + path: "" + content: xi128=b; + value: + Identifier: "{\"name\":\"b\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":7,\\\"col_stop\\\":8,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"xi128=b;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 8 + path: "" + content: xi128=b; + - Assign: + operation: Assign + assignee: + identifier: "{\"name\":\"xu8\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":4,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"xu8=b;\\\"}\"}" + accesses: [] + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 4 + path: "" + content: xu8=b; + value: + Identifier: "{\"name\":\"b\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":5,\\\"col_stop\\\":6,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"xu8=b;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 6 + path: "" + content: xu8=b; + - Assign: + operation: Assign + assignee: + identifier: "{\"name\":\"xu16\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":5,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"xu16=b;\\\"}\"}" + accesses: [] + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 5 + path: "" + content: xu16=b; + value: + Identifier: "{\"name\":\"b\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":6,\\\"col_stop\\\":7,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"xu16=b;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 7 + path: "" + content: xu16=b; + - Assign: + operation: Assign + assignee: + identifier: "{\"name\":\"xu32\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":5,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"xu32=b;\\\"}\"}" + accesses: [] + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 5 + path: "" + content: xu32=b; + value: + Identifier: "{\"name\":\"b\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":6,\\\"col_stop\\\":7,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"xu32=b;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 7 + path: "" + content: xu32=b; + - Assign: + operation: Assign + assignee: + identifier: "{\"name\":\"xu64\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":5,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"xu64=b;\\\"}\"}" + accesses: [] + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 5 + path: "" + content: xu64=b; + value: + Identifier: "{\"name\":\"b\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":6,\\\"col_stop\\\":7,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"xu64=b;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 7 + path: "" + content: xu64=b; + - Assign: + operation: Assign + assignee: + identifier: "{\"name\":\"xu128\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":6,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"xu128=b;\\\"}\"}" + accesses: [] + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 6 + path: "" + content: xu128=b; + value: + Identifier: "{\"name\":\"b\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":7,\\\"col_stop\\\":8,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"xu128=b;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 8 + path: "" + content: xu128=b; + - Assign: + operation: Assign + assignee: + identifier: "{\"name\":\"xreturn\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":8,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"xreturn=b;\\\"}\"}" + accesses: [] + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 8 + path: "" + content: xreturn=b; + value: + Identifier: "{\"name\":\"b\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":9,\\\"col_stop\\\":10,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"xreturn=b;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 10 + path: "" + content: xreturn=b; + - Assign: + operation: Assign + assignee: + identifier: "{\"name\":\"xself\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":6,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"xself=b;\\\"}\"}" + accesses: [] + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 6 + path: "" + content: xself=b; + value: + Identifier: "{\"name\":\"b\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":7,\\\"col_stop\\\":8,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"xself=b;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 8 + path: "" + content: xself=b; + - Assign: + operation: Assign + assignee: + identifier: "{\"name\":\"xSelf\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":6,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"xSelf=b;\\\"}\"}" + accesses: [] + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 6 + path: "" + content: xSelf=b; + value: + Identifier: "{\"name\":\"b\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":7,\\\"col_stop\\\":8,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"xSelf=b;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 8 + path: "" + content: xSelf=b; + - Assign: + operation: Assign + assignee: + identifier: "{\"name\":\"xtrue\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":6,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"xtrue=b;\\\"}\"}" + accesses: [] + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 6 + path: "" + content: xtrue=b; + value: + Identifier: "{\"name\":\"b\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":7,\\\"col_stop\\\":8,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"xtrue=b;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 8 + path: "" + content: xtrue=b; + - Assign: + operation: Assign + assignee: + identifier: "{\"name\":\"xfalse\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":7,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"xfalse=b;\\\"}\"}" + accesses: [] + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 7 + path: "" + content: xfalse=b; + value: + Identifier: "{\"name\":\"b\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":8,\\\"col_stop\\\":9,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"xfalse=b;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 9 + path: "" + content: xfalse=b; + - Assign: + operation: Assign + assignee: + identifier: "{\"name\":\"x0\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":1,\\\"col_stop\\\":3,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x0=b;\\\"}\"}" + accesses: [] + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 3 + path: "" + content: x0=b; + value: + Identifier: "{\"name\":\"b\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":4,\\\"col_stop\\\":5,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"x0=b;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 5 + path: "" + content: x0=b; diff --git a/tests/expectations/parser/parser/unreachable/postfix_fail.leo.out b/tests/expectations/parser/parser/unreachable/postfix_fail.leo.out new file mode 100644 index 0000000000..c65db37a9a --- /dev/null +++ b/tests/expectations/parser/parser/unreachable/postfix_fail.leo.out @@ -0,0 +1,24 @@ +--- +namespace: ParseStatement +expectation: Fail +outputs: + - "did not consume all input: ';' @ 1:11-12\n" + - "Error [EPAR0370009]: unexpected string: expected 'int or ident', got ';'\n --> test:1:11\n |\n 1 | let x = a.;\n | ^" + - "Error [EPAR0370005]: expected ; -- got ','\n --> test:1:10\n |\n 1 | let x = a,;\n | ^" + - "Error [EPAR0370009]: unexpected string: expected 'expression', got ';'\n --> test:1:11\n |\n 1 | let x = a[;\n | ^" + - "Error [EPAR0370005]: expected ; -- got ']'\n --> test:1:10\n |\n 1 | let x = a];\n | ^" + - "Error [EPAR0370009]: unexpected string: expected 'ident', got ';'\n --> test:1:11\n |\n 1 | let x = a{;\n | ^" + - "Error [EPAR0370005]: expected ; -- got '}'\n --> test:1:10\n |\n 1 | let x = a};\n | ^" + - "Error [EPAR0370005]: expected ; -- got ')'\n --> test:1:10\n |\n 1 | let x = a);\n | ^" + - "Error [EPAR0370005]: expected ; -- got ':'\n --> test:1:10\n |\n 1 | let x = a:;\n | ^" + - "Error [EPAR0370009]: unexpected string: expected 'expression', got ';'\n --> test:1:11\n |\n 1 | let x = a?;\n | ^" + - "Error [EPAR0370005]: expected ; -- got '='\n --> test:1:10\n |\n 1 | let x = a=;\n | ^" + - "Error [EPAR0370009]: unexpected string: expected 'expression', got ';'\n --> test:1:12\n |\n 1 | let x = a==;\n | ^" + - "Error [EPAR0370005]: expected ; -- got '!'\n --> test:1:10\n |\n 1 | let x = a!;\n | ^" + - "Error [EPAR0370009]: unexpected string: expected 'expression', got ';'\n --> test:1:12\n |\n 1 | let x = a!=;\n | ^" + - "Error [EPAR0370009]: unexpected string: expected 'expression', got ';'\n --> test:1:11\n |\n 1 | let x = a>;\n | ^" + - "Error [EPAR0370009]: unexpected string: expected 'expression', got ';'\n --> test:1:12\n |\n 1 | let x = a>=;\n | ^" + - "Error [EPAR0370009]: unexpected string: expected 'expression', got ';'\n --> test:1:11\n |\n 1 | let x = a<;\n | ^" + - "Error [EPAR0370009]: unexpected string: expected 'expression', got ';'\n --> test:1:12\n |\n 1 | let x = a<=;\n | ^" + - "Error [EPAR0370009]: unexpected string: expected 'expression', got ';'\n --> test:1:11\n |\n 1 | let x = a>;\n | ^" + - "Error [EPAR0370005]: expected ; -- got '..'\n --> test:1:10\n |\n 1 | let x = a..;\n | ^^" diff --git a/tests/expectations/parser/parser/unreachable/postfix_pass.leo.out b/tests/expectations/parser/parser/unreachable/postfix_pass.leo.out new file mode 100644 index 0000000000..1912ac68ff --- /dev/null +++ b/tests/expectations/parser/parser/unreachable/postfix_pass.leo.out @@ -0,0 +1,598 @@ +--- +namespace: ParseStatement +expectation: Pass +outputs: + - Expression: + expression: + Value: + Implicit: + - "" + - span: + line_start: 0 + line_stop: 0 + col_start: 0 + col_stop: 0 + path: "" + content: "" + span: + line_start: 0 + line_stop: 0 + col_start: 0 + col_stop: 0 + path: "" + content: "" + - Definition: + declaration_type: Let + variable_names: + - mutable: true + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":5,\\\"col_stop\\\":6,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = aimport;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 5 + col_stop: 6 + path: "" + content: let x = aimport; + parened: false + type_: ~ + value: + Identifier: "{\"name\":\"aimport\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":9,\\\"col_stop\\\":16,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = aimport;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 16 + path: "" + content: let x = aimport; + - Definition: + declaration_type: Let + variable_names: + - mutable: true + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":5,\\\"col_stop\\\":6,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = a_;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 5 + col_stop: 6 + path: "" + content: let x = a_; + parened: false + type_: ~ + value: + Identifier: "{\"name\":\"a_\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":9,\\\"col_stop\\\":11,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = a_;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 11 + path: "" + content: let x = a_; + - Definition: + declaration_type: Let + variable_names: + - mutable: true + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":5,\\\"col_stop\\\":6,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = aas;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 5 + col_stop: 6 + path: "" + content: let x = aas; + parened: false + type_: ~ + value: + Identifier: "{\"name\":\"aas\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":9,\\\"col_stop\\\":12,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = aas;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 12 + path: "" + content: let x = aas; + - Definition: + declaration_type: Let + variable_names: + - mutable: true + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":5,\\\"col_stop\\\":6,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = aconsole;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 5 + col_stop: 6 + path: "" + content: let x = aconsole; + parened: false + type_: ~ + value: + Identifier: "{\"name\":\"aconsole\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":9,\\\"col_stop\\\":17,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = aconsole;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 17 + path: "" + content: let x = aconsole; + - Definition: + declaration_type: Let + variable_names: + - mutable: true + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":5,\\\"col_stop\\\":6,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = aconst;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 5 + col_stop: 6 + path: "" + content: let x = aconst; + parened: false + type_: ~ + value: + Identifier: "{\"name\":\"aconst\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":9,\\\"col_stop\\\":15,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = aconst;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 15 + path: "" + content: let x = aconst; + - Definition: + declaration_type: Let + variable_names: + - mutable: true + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":5,\\\"col_stop\\\":6,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = alet;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 5 + col_stop: 6 + path: "" + content: let x = alet; + parened: false + type_: ~ + value: + Identifier: "{\"name\":\"alet\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":9,\\\"col_stop\\\":13,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = alet;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 13 + path: "" + content: let x = alet; + - Definition: + declaration_type: Let + variable_names: + - mutable: true + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":5,\\\"col_stop\\\":6,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = afor;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 5 + col_stop: 6 + path: "" + content: let x = afor; + parened: false + type_: ~ + value: + Identifier: "{\"name\":\"afor\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":9,\\\"col_stop\\\":13,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = afor;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 13 + path: "" + content: let x = afor; + - Definition: + declaration_type: Let + variable_names: + - mutable: true + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":5,\\\"col_stop\\\":6,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = aif;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 5 + col_stop: 6 + path: "" + content: let x = aif; + parened: false + type_: ~ + value: + Identifier: "{\"name\":\"aif\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":9,\\\"col_stop\\\":12,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = aif;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 12 + path: "" + content: let x = aif; + - Definition: + declaration_type: Let + variable_names: + - mutable: true + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":5,\\\"col_stop\\\":6,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = aelse;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 5 + col_stop: 6 + path: "" + content: let x = aelse; + parened: false + type_: ~ + value: + Identifier: "{\"name\":\"aelse\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":9,\\\"col_stop\\\":14,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = aelse;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 14 + path: "" + content: let x = aelse; + - Definition: + declaration_type: Let + variable_names: + - mutable: true + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":5,\\\"col_stop\\\":6,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = ai8;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 5 + col_stop: 6 + path: "" + content: let x = ai8; + parened: false + type_: ~ + value: + Identifier: "{\"name\":\"ai8\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":9,\\\"col_stop\\\":12,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = ai8;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 12 + path: "" + content: let x = ai8; + - Definition: + declaration_type: Let + variable_names: + - mutable: true + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":5,\\\"col_stop\\\":6,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = ai16;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 5 + col_stop: 6 + path: "" + content: let x = ai16; + parened: false + type_: ~ + value: + Identifier: "{\"name\":\"ai16\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":9,\\\"col_stop\\\":13,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = ai16;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 13 + path: "" + content: let x = ai16; + - Definition: + declaration_type: Let + variable_names: + - mutable: true + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":5,\\\"col_stop\\\":6,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = ai32;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 5 + col_stop: 6 + path: "" + content: let x = ai32; + parened: false + type_: ~ + value: + Identifier: "{\"name\":\"ai32\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":9,\\\"col_stop\\\":13,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = ai32;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 13 + path: "" + content: let x = ai32; + - Definition: + declaration_type: Let + variable_names: + - mutable: true + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":5,\\\"col_stop\\\":6,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = ai64;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 5 + col_stop: 6 + path: "" + content: let x = ai64; + parened: false + type_: ~ + value: + Identifier: "{\"name\":\"ai64\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":9,\\\"col_stop\\\":13,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = ai64;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 13 + path: "" + content: let x = ai64; + - Definition: + declaration_type: Let + variable_names: + - mutable: true + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":5,\\\"col_stop\\\":6,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = ai128;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 5 + col_stop: 6 + path: "" + content: let x = ai128; + parened: false + type_: ~ + value: + Identifier: "{\"name\":\"ai128\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":9,\\\"col_stop\\\":14,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = ai128;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 14 + path: "" + content: let x = ai128; + - Definition: + declaration_type: Let + variable_names: + - mutable: true + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":5,\\\"col_stop\\\":6,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = au8;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 5 + col_stop: 6 + path: "" + content: let x = au8; + parened: false + type_: ~ + value: + Identifier: "{\"name\":\"au8\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":9,\\\"col_stop\\\":12,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = au8;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 12 + path: "" + content: let x = au8; + - Definition: + declaration_type: Let + variable_names: + - mutable: true + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":5,\\\"col_stop\\\":6,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = au16;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 5 + col_stop: 6 + path: "" + content: let x = au16; + parened: false + type_: ~ + value: + Identifier: "{\"name\":\"au16\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":9,\\\"col_stop\\\":13,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = au16;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 13 + path: "" + content: let x = au16; + - Definition: + declaration_type: Let + variable_names: + - mutable: true + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":5,\\\"col_stop\\\":6,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = au32;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 5 + col_stop: 6 + path: "" + content: let x = au32; + parened: false + type_: ~ + value: + Identifier: "{\"name\":\"au32\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":9,\\\"col_stop\\\":13,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = au32;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 13 + path: "" + content: let x = au32; + - Definition: + declaration_type: Let + variable_names: + - mutable: true + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":5,\\\"col_stop\\\":6,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = au64;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 5 + col_stop: 6 + path: "" + content: let x = au64; + parened: false + type_: ~ + value: + Identifier: "{\"name\":\"au64\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":9,\\\"col_stop\\\":13,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = au64;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 13 + path: "" + content: let x = au64; + - Definition: + declaration_type: Let + variable_names: + - mutable: true + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":5,\\\"col_stop\\\":6,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = au128;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 5 + col_stop: 6 + path: "" + content: let x = au128; + parened: false + type_: ~ + value: + Identifier: "{\"name\":\"au128\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":9,\\\"col_stop\\\":14,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = au128;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 14 + path: "" + content: let x = au128; + - Definition: + declaration_type: Let + variable_names: + - mutable: true + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":5,\\\"col_stop\\\":6,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = areturn;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 5 + col_stop: 6 + path: "" + content: let x = areturn; + parened: false + type_: ~ + value: + Identifier: "{\"name\":\"areturn\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":9,\\\"col_stop\\\":16,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = areturn;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 16 + path: "" + content: let x = areturn; + - Definition: + declaration_type: Let + variable_names: + - mutable: true + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":5,\\\"col_stop\\\":6,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = aself;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 5 + col_stop: 6 + path: "" + content: let x = aself; + parened: false + type_: ~ + value: + Identifier: "{\"name\":\"aself\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":9,\\\"col_stop\\\":14,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = aself;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 14 + path: "" + content: let x = aself; + - Definition: + declaration_type: Let + variable_names: + - mutable: true + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":5,\\\"col_stop\\\":6,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = aSelf;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 5 + col_stop: 6 + path: "" + content: let x = aSelf; + parened: false + type_: ~ + value: + Identifier: "{\"name\":\"aSelf\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":9,\\\"col_stop\\\":14,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = aSelf;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 14 + path: "" + content: let x = aSelf; + - Definition: + declaration_type: Let + variable_names: + - mutable: true + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":5,\\\"col_stop\\\":6,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = atrue;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 5 + col_stop: 6 + path: "" + content: let x = atrue; + parened: false + type_: ~ + value: + Identifier: "{\"name\":\"atrue\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":9,\\\"col_stop\\\":14,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = atrue;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 14 + path: "" + content: let x = atrue; + - Definition: + declaration_type: Let + variable_names: + - mutable: true + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":5,\\\"col_stop\\\":6,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = afalse;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 5 + col_stop: 6 + path: "" + content: let x = afalse; + parened: false + type_: ~ + value: + Identifier: "{\"name\":\"afalse\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":9,\\\"col_stop\\\":15,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = afalse;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 15 + path: "" + content: let x = afalse; + - Definition: + declaration_type: Let + variable_names: + - mutable: true + identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":5,\\\"col_stop\\\":6,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = a0;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 5 + col_stop: 6 + path: "" + content: let x = a0; + parened: false + type_: ~ + value: + Identifier: "{\"name\":\"a0\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":9,\\\"col_stop\\\":11,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = a0;\\\"}\"}" + span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 11 + path: "" + content: let x = a0; diff --git a/tests/parser/expression/literal/char_fail.leo b/tests/parser/expression/literal/char_fail.leo index 12dfdec1f4..88e48b6cc3 100644 --- a/tests/parser/expression/literal/char_fail.leo +++ b/tests/parser/expression/literal/char_fail.leo @@ -44,7 +44,9 @@ expectation: Fail '\u01000000' '\u9999999' '\u{110000}' +'\u}' + '\u{af🦀' '🦀\n' - +'🦀1🦀' '😭😂😘' diff --git a/tests/parser/expression/literal/char_parse.leo b/tests/parser/expression/literal/char_parse.leo index 60a6a6e80c..68f7edc37b 100644 --- a/tests/parser/expression/literal/char_parse.leo +++ b/tests/parser/expression/literal/char_parse.leo @@ -1,5 +1,5 @@ /* -namespace: ParseExpression +namespace: Token expectation: Pass */ diff --git a/tests/parser/expression/literal/string_fail.leo b/tests/parser/expression/literal/string_fail.leo index de90e88599..9dd43dc136 100644 --- a/tests/parser/expression/literal/string_fail.leo +++ b/tests/parser/expression/literal/string_fail.leo @@ -16,3 +16,5 @@ expectation: Fail "\xFF" "\x" + +"\u}" \ No newline at end of file diff --git a/tests/parser/program/backslash_eof.leo b/tests/parser/program/backslash_eof.leo new file mode 100644 index 0000000000..1e1a7b1d9f --- /dev/null +++ b/tests/parser/program/backslash_eof.leo @@ -0,0 +1,9 @@ +/* +namespace: Parse +expectation: Fail +*/ + +function main() { + let x = 1u8; +} +\ \ No newline at end of file diff --git a/tests/parser/program/dollar_eof.leo b/tests/parser/program/dollar_eof.leo new file mode 100644 index 0000000000..f3725ead74 --- /dev/null +++ b/tests/parser/program/dollar_eof.leo @@ -0,0 +1,9 @@ +/* +namespace: Parse +expectation: Fail +*/ + +function main() { + let x = 1u8; +} +$ \ No newline at end of file diff --git a/tests/parser/program/escape_u8_eof.leo b/tests/parser/program/escape_u8_eof.leo new file mode 100644 index 0000000000..11c57208be --- /dev/null +++ b/tests/parser/program/escape_u8_eof.leo @@ -0,0 +1,9 @@ +/* +namespace: Parse +expectation: Fail +*/ + +function main() { + let x = 1u8; +} +\1u8 \ No newline at end of file diff --git a/tests/parser/program/hex_eof.leo b/tests/parser/program/hex_eof.leo new file mode 100644 index 0000000000..041f759f12 --- /dev/null +++ b/tests/parser/program/hex_eof.leo @@ -0,0 +1,6 @@ +/* +namespace: Parse +expectation: Fail +*/ + +function main() { let a = 0x \ No newline at end of file diff --git a/tests/parser/program/pipe_eof.leo b/tests/parser/program/pipe_eof.leo new file mode 100644 index 0000000000..696c0768e7 --- /dev/null +++ b/tests/parser/program/pipe_eof.leo @@ -0,0 +1,9 @@ +/* +namespace: Parse +expectation: Fail +*/ + +function main() { + let x = 1u8; +} +| \ No newline at end of file diff --git a/tests/parser/program/q_eof.leo b/tests/parser/program/q_eof.leo new file mode 100644 index 0000000000..afffd3cd50 --- /dev/null +++ b/tests/parser/program/q_eof.leo @@ -0,0 +1,9 @@ +/* +namespace: Parse +expectation: Fail +*/ + +function main() { + let x = 1u8; +} +" \ No newline at end of file diff --git a/tests/parser/program/sq_eof.leo b/tests/parser/program/sq_eof.leo new file mode 100644 index 0000000000..c850fd39ad --- /dev/null +++ b/tests/parser/program/sq_eof.leo @@ -0,0 +1,9 @@ +/* +namespace: Parse +expectation: Fail +*/ + +function main() { + let x = 1u8; +} +' \ No newline at end of file diff --git a/tests/parser/program/tilde_eof.leo b/tests/parser/program/tilde_eof.leo new file mode 100644 index 0000000000..15a7c0c3a1 --- /dev/null +++ b/tests/parser/program/tilde_eof.leo @@ -0,0 +1,9 @@ +/* +namespace: Parse +expectation: Fail +*/ + +function main() { + let x = 1u8; +} +~ \ No newline at end of file diff --git a/tests/parser/program/unclosed_unicode_eof_fail.leo b/tests/parser/program/unclosed_unicode_eof_fail.leo new file mode 100644 index 0000000000..775ea7dda6 --- /dev/null +++ b/tests/parser/program/unclosed_unicode_eof_fail.leo @@ -0,0 +1,7 @@ +/* +namespace: Parse +expectation: Fail +*/ + +function main(s1: [char; 13], s2: [char; 4]) -> bool { + let d: char = '\u \ No newline at end of file diff --git a/tests/parser/statement/let_mut_recover.leo b/tests/parser/statement/let_mut_recover.leo index cc3fa19096..d33295bf17 100644 --- a/tests/parser/statement/let_mut_recover.leo +++ b/tests/parser/statement/let_mut_recover.leo @@ -1,9 +1,11 @@ /* -namespace: Parse +namespace: ParseStatement expectation: Fail */ -function foo() { - let mut x = 0; - let mut y = 0; // recovery witness -} +// recovery witness + +let mut x = 0; + +let mut y = 0; + diff --git a/tests/parser/unreachable/define.leo b/tests/parser/unreachable/define.leo index dcef3aeb31..2302acada1 100644 --- a/tests/parser/unreachable/define.leo +++ b/tests/parser/unreachable/define.leo @@ -4,50 +4,93 @@ expectation: Fail */ ; x = 10u8; + . x = 10u8; + import x = 10u8; + , x = 10u8; + [ x = 10u8; + ] x = 10u8; + { x = 10u8; + } x = 10u8; + ( x = 10u8; + ) x = 10u8; + : x = 10u8; + :: x = 10u8; + ? x = 10u8; + _ x = 10u8; + = x = 10u8; + == x = 10u8; + ! x = 10u8; + != x = 10u8; + > x = 10u8; + >= x = 10u8; + < x = 10u8; + <= x = 10u8; + > x = 10u8; + .. x = 10u8; + as x = 10u8; + console x = 10u8; -const x = 10u8; -let x = 10u8; + for x = 10u8; + if x = 10u8; + else x = 10u8; + i8 x = 10u8; + i16 x = 10u8; + i32 x = 10u8; + i64 x = 10u8; + i128 x = 10u8; + u8 x = 10u8; + u16 x = 10u8; + u32 x = 10u8; + u64 x = 10u8; + u128 x = 10u8; + & x = 10u8; + return x = 10u8; + self x = 10u8; + Self x = 10u8; + true x = 10u8; + false x = 10u8; -0 x = 10u8; \ No newline at end of file + +0 x = 10u8; diff --git a/tests/parser/unreachable/eat_ident.leo b/tests/parser/unreachable/eat_ident.leo index 83f080b4d1..44c1e6e2c4 100644 --- a/tests/parser/unreachable/eat_ident.leo +++ b/tests/parser/unreachable/eat_ident.leo @@ -4,54 +4,105 @@ expectation: Fail */ circuit ; + circuit . + circuit import + circuit , + circuit * + circuit + + circuit - + circuit / + circuit [ + circuit ] + circuit { + circuit } + circuit ( + circuit ) + circuit : + circuit :: + circuit ? + circuit _ + circuit = + circuit == + circuit ! + circuit != + circuit > + circuit >= + circuit < + circuit <= + circuit > + circuit .. + circuit as + circuit console + circuit const + circuit let + circuit for + circuit if + circuit else + circuit i8 + circuit i16 + circuit i32 + circuit i64 + circuit i128 + circuit u8 + circuit u16 + circuit u32 + circuit u64 + circuit u128 + circuit & + circuit return + circuit self + circuit Self + circuit true + circuit false + circuit 0 \ No newline at end of file diff --git a/tests/parser/unreachable/eat_int.leo b/tests/parser/unreachable/eat_int.leo index 4ad7af074f..20029228f8 100644 --- a/tests/parser/unreachable/eat_int.leo +++ b/tests/parser/unreachable/eat_int.leo @@ -4,54 +4,106 @@ expectation: Fail */ x.-12 + x.0_; + x.0_. + x.0_import + x.0_, + x.0_* + x.0_+ + x.0_- + x.0_/ + x.0_[ + x.0_] + x.0_{ + x.0_} + x.0_( + x.0_) + x.0_: + x.0_:: + x.0_? + x.0__ + x.0_= + x.0_== + x.0_! + x.0_!= + x.0_> + x.0_>= + x.0_< + x.0_<= + x.0_> + x.0_.. + x.0_as + x.0_console + x.0_const + x.0_let + x.0_for + x.0_if + x.0_else + x.0_i8 + x.0_i16 + x.0_i32 + x.0_i64 + x.0_i128 + x.0_u8 + x.0_u16 + x.0_u32 + x.0_u64 + x.0_u128 + x.0_& + x.0_return + x.0_self + x.0_Self + x.0_true + x.0_false + diff --git a/tests/parser/unreachable/expect_ident.leo b/tests/parser/unreachable/expect_ident.leo index b3cd3abfd5..510317b5e5 100644 --- a/tests/parser/unreachable/expect_ident.leo +++ b/tests/parser/unreachable/expect_ident.leo @@ -4,54 +4,105 @@ expectation: Fail */ x::; + x::. + x::import + x::, + x::* + x::+ + x::- + x::/ + x::[ + x::] + x::{ + x::} + x::( + x::) + x::: + x:::: + x::? + x::_ + x::= + x::== + x::! + x::!= + x::> + x::>= + x::< + x::<= + x::> + x::.. + x::as + x::console + x::const + x::let + x::for + x::if + x::else + x::i8 + x::i16 + x::i32 + x::i64 + x::i128 + x::u8 + x::u16 + x::u32 + x::u64 + x::u128 + x::& + x::return + x::self + x::Self + x::true + x::false -x::0 \ No newline at end of file + +x::0 diff --git a/tests/parser/unreachable/math_op.leo b/tests/parser/unreachable/math_op_fail.leo similarity index 65% rename from tests/parser/unreachable/math_op.leo rename to tests/parser/unreachable/math_op_fail.leo index 5d3ce66b0f..729bf30abb 100644 --- a/tests/parser/unreachable/math_op.leo +++ b/tests/parser/unreachable/math_op_fail.leo @@ -4,99 +4,112 @@ expectation: Fail */ let x = a ; b; -let x = a . b; + let x = a import b; + let x = a , b; + let x = a [ b; + let x = a ] b; + let x = a { b; + let x = a } b; + let x = a ( b; + let x = a ) b; + let x = a : b; -let x = a :: b; + let x = a ? b; + let x = a _ b; + let x = a = b; -let x = a == b; + let x = a ! b; -let x = a != b; -let x = a > b; -let x = a >= b; -let x = a < b; -let x = a <= b; -let x = a > b; + let x = a .. b; -let x = a as b; + let x = a console b; + let x = a const b; + let x = a let b; + let x = a for b; + let x = a if b; + let x = a else b; + let x = a i8 b; + let x = a i16 b; + let x = a i32 b; + let x = a i64 b; + let x = a i128 b; + let x = a u8 b; + let x = a u16 b; + let x = a u32 b; + let x = a u64 b; + let x = a u128 b; + let x = a & b; + let x = a return b; + let x = a self b; + let x = a Self b; + let x = a true b; + let x = a false b; + let x = a 0 b; + x;=b; + x.=b; -ximport=b; -x,=b; + +x,=b; // 43 + x[=b; + x]=b; + x{=b; + x}=b; + x=(; + x=); + x=:; + x=::; + x?=b; -x_=b; -x==b; -x==b; -x!=b; + x!==b; -x>=b; + x>==b; -x<=b; + x<==b; -x>=b; + x..=b; -xas=b; -xconsole=b; -xconst=b; -xlet=b; -xfor=b; -xif=b; -xelse=b; -xi8=b; -xi16=b; -xi32=b; -xi64=b; -xi128=b; -xu8=b; -xu16=b; -xu32=b; -xu64=b; -xu128=b; + x&=b; -xreturn=b; -xself=b; -xSelf=b; -xtrue=b; -xfalse=b; -x0=b; \ No newline at end of file diff --git a/tests/parser/unreachable/math_op_pass.leo b/tests/parser/unreachable/math_op_pass.leo new file mode 100644 index 0000000000..e1cc3051c8 --- /dev/null +++ b/tests/parser/unreachable/math_op_pass.leo @@ -0,0 +1,84 @@ +/* +namespace: ParseStatement +expectation: Pass +*/ + +let x = a . b; + +let x = a :: b; + +let x = a == b; + +let x = a != b; + +let x = a > b; + +let x = a >= b; + +let x = a < b; + +let x = a <= b; + +let x = a > b; + +let x = a as b; + +ximport=b; + +x_=b; + +x==b; + +x!=b; + +x>=b; + +x<=b; + +x>=b; + +xas=b; + +xconsole=b; + +xconst=b; + +xlet=b; + +xfor=b; + +xif=b; + +xelse=b; + +xi8=b; + +xi16=b; + +xi32=b; + +xi64=b; + +xi128=b; + +xu8=b; + +xu16=b; + +xu32=b; + +xu64=b; + +xu128=b; + +xreturn=b; + +xself=b; + +xSelf=b; + +xtrue=b; + +xfalse=b; + +x0=b; diff --git a/tests/parser/unreachable/postfix_fail.leo b/tests/parser/unreachable/postfix_fail.leo new file mode 100644 index 0000000000..85be94698e --- /dev/null +++ b/tests/parser/unreachable/postfix_fail.leo @@ -0,0 +1,44 @@ +/* +namespace: ParseStatement +expectation: Fail +*/ + +let x = a;; + +let x = a.; + +let x = a,; + +let x = a[; + +let x = a]; + +let x = a{; + +let x = a}; + +let x = a); + +let x = a:; + +let x = a?; + +let x = a=; + +let x = a==; + +let x = a!; + +let x = a!=; + +let x = a>; + +let x = a>=; + +let x = a<; + +let x = a<=; + +let x = a>; + +let x = a..; diff --git a/tests/parser/unreachable/postfix.leo b/tests/parser/unreachable/postfix_pass.leo similarity index 57% rename from tests/parser/unreachable/postfix.leo rename to tests/parser/unreachable/postfix_pass.leo index 2a3533e1d4..e38ba85985 100644 --- a/tests/parser/unreachable/postfix.leo +++ b/tests/parser/unreachable/postfix_pass.leo @@ -1,51 +1,55 @@ /* namespace: ParseStatement -expectation: Fail +expectation: Pass */ +// These ones do not hit the unreachable as they are treated as valid idents rather than postfix. -let x = a;; -let x = a.; let x = aimport; -let x = a,; -let x = a[; -let x = a]; -let x = a{; -let x = a}; -let x = a); -let x = a:; -let x = a?; + let x = a_; -let x = a=; -let x = a==; -let x = a!; -let x = a!=; -let x = a>; -let x = a>=; -let x = a<; -let x = a<=; -let x = a>; -let x = a..; + let x = aas; + let x = aconsole; + let x = aconst; + let x = alet; + let x = afor; + let x = aif; + let x = aelse; + let x = ai8; + let x = ai16; + let x = ai32; + let x = ai64; + let x = ai128; + let x = au8; + let x = au16; + let x = au32; + let x = au64; + let x = au128; -let x = a&; + let x = areturn; + let x = aself; + let x = aSelf; + let x = atrue; + let x = afalse; -let x = a0; \ No newline at end of file + +let x = a0; From 377c65be21fee80d846c1b3c529ed3225bc66c7d Mon Sep 17 00:00:00 2001 From: gluax <16431709+gluax@users.noreply.github.com> Date: Wed, 9 Mar 2022 12:08:15 -0800 Subject: [PATCH 021/174] fix issues from fixing a panic --- compiler/parser/src/tokenizer/lexer.rs | 10 +++++++++- leo/errors/src/parser/parser_errors.rs | 10 +++++++++- .../parser/parser/expression/literal/string.leo.out | 4 ++-- .../parser/expression/literal/string_fail.leo.out | 1 + .../parser/expression/literal/string_parse.leo.out | 6 +----- .../parser/parser/serialize/palindrome.leo.out | 10 ---------- tests/parser/expression/literal/string_fail.leo | 4 +++- tests/parser/statement/let_mut_recover.leo | 12 +++++------- 8 files changed, 30 insertions(+), 27 deletions(-) diff --git a/compiler/parser/src/tokenizer/lexer.rs b/compiler/parser/src/tokenizer/lexer.rs index 38c26927bc..8c6f2c008c 100644 --- a/compiler/parser/src/tokenizer/lexer.rs +++ b/compiler/parser/src/tokenizer/lexer.rs @@ -223,7 +223,15 @@ impl Token { // If it's an emoji get the length. if input[i] & 0x80 > 0 { len = Self::utf8_byte_count(input[i]); - i += len - 1; + i += len; + + if unicode { + return Err( + ParserError::lexer_emoji_inside_escaped_unicode_char(&input_tendril[0..i]).into(), + ); + } + + continue; } if !in_escape { diff --git a/leo/errors/src/parser/parser_errors.rs b/leo/errors/src/parser/parser_errors.rs index cc7227897d..7a1db85007 100644 --- a/leo/errors/src/parser/parser_errors.rs +++ b/leo/errors/src/parser/parser_errors.rs @@ -367,11 +367,19 @@ create_errors!( help: None, } - /// When a escaped unicode char was given but not opend. + /// When a escaped unicode char was given but not opened. @backtraced lexer_unopened_escaped_unicode_char { args: (input: impl Display), msg: format!("There was no opening `{{` after starting an escaped unicode `{}`.", input), help: None, } + + /// When a escaped unicode char has an emoji in it. + @backtraced + lexer_emoji_inside_escaped_unicode_char { + args: (input: impl Display), + msg: format!("There was an emoji found in the escaped unicode character: `{}`.", input), + help: None, + } ); diff --git a/tests/expectations/parser/parser/expression/literal/string.leo.out b/tests/expectations/parser/parser/expression/literal/string.leo.out index c6b41bc0d5..a346d6b703 100644 --- a/tests/expectations/parser/parser/expression/literal/string.leo.out +++ b/tests/expectations/parser/parser/expression/literal/string.leo.out @@ -15,5 +15,5 @@ outputs: - "'\"\n\"' @ 1:1-7" - "'\"\u007f\"' @ 1:1-7" - "'\"aa \\ \" \n aa \t \r \u0000\"' @ 1:1-28" - - "'\"test 😒€\"' @ 1:1-15" - - "'\"😭😂😘\"' @ 1:1-15" + - "'\"test \"' @ 1:1-15" + - "'\"\"' @ 1:1-15" diff --git a/tests/expectations/parser/parser/expression/literal/string_fail.leo.out b/tests/expectations/parser/parser/expression/literal/string_fail.leo.out index bb50d01fc0..8865fffa53 100644 --- a/tests/expectations/parser/parser/expression/literal/string_fail.leo.out +++ b/tests/expectations/parser/parser/expression/literal/string_fail.leo.out @@ -10,3 +10,4 @@ outputs: - "Error [EPAR0370036]: Expected a valid hex character but found `255`." - "Error [EPAR0370027]: Expected a closed string but found `\"\\x\"`." - "Error [EPAR0370042]: There was no opening `{` after starting an escaped unicode `\\u}`." + - "Error [EPAR0370043]: There was an emoji found in the escaped unicode character: `\"\\u6🦀`." diff --git a/tests/expectations/parser/parser/expression/literal/string_parse.leo.out b/tests/expectations/parser/parser/expression/literal/string_parse.leo.out index cd98aa67b8..2f4bf81ada 100644 --- a/tests/expectations/parser/parser/expression/literal/string_parse.leo.out +++ b/tests/expectations/parser/parser/expression/literal/string_parse.leo.out @@ -177,8 +177,6 @@ outputs: - Scalar: 115 - Scalar: 116 - Scalar: 32 - - Scalar: 128530 - - Scalar: 8364 - span: line_start: 1 line_stop: 1 @@ -188,9 +186,7 @@ outputs: content: "\"test 😒€\"" - Value: String: - - - Scalar: 128557 - - Scalar: 128514 - - Scalar: 128536 + - [] - span: line_start: 1 line_stop: 1 diff --git a/tests/expectations/parser/parser/serialize/palindrome.leo.out b/tests/expectations/parser/parser/serialize/palindrome.leo.out index 2b42f7d562..7d884ebcbc 100644 --- a/tests/expectations/parser/parser/serialize/palindrome.leo.out +++ b/tests/expectations/parser/parser/serialize/palindrome.leo.out @@ -423,10 +423,6 @@ outputs: arguments: - Value: String: - - Scalar: 128512 - - Scalar: 128512 - - Scalar: 128512 - - Scalar: 128512 - Scalar: 128512 - Scalar: 32 - Scalar: 32 @@ -437,12 +433,6 @@ outputs: - Scalar: 32 - Scalar: 32 - Scalar: 32 - - Scalar: 32 - - Scalar: 128512 - - Scalar: 128512 - - Scalar: 128512 - - Scalar: 128512 - - Scalar: 128512 - Console: function: Assert: diff --git a/tests/parser/expression/literal/string_fail.leo b/tests/parser/expression/literal/string_fail.leo index 9dd43dc136..558a13ff58 100644 --- a/tests/parser/expression/literal/string_fail.leo +++ b/tests/parser/expression/literal/string_fail.leo @@ -17,4 +17,6 @@ expectation: Fail "\x" -"\u}" \ No newline at end of file +"\u}" + +"\u6🦀}" \ No newline at end of file diff --git a/tests/parser/statement/let_mut_recover.leo b/tests/parser/statement/let_mut_recover.leo index d33295bf17..cc3fa19096 100644 --- a/tests/parser/statement/let_mut_recover.leo +++ b/tests/parser/statement/let_mut_recover.leo @@ -1,11 +1,9 @@ /* -namespace: ParseStatement +namespace: Parse expectation: Fail */ -// recovery witness - -let mut x = 0; - -let mut y = 0; - +function foo() { + let mut x = 0; + let mut y = 0; // recovery witness +} From 3c258bf3a4ac91f1a2215512d24312d75934e652 Mon Sep 17 00:00:00 2001 From: 0rphon <59403052+0rphon@users.noreply.github.com> Date: Wed, 9 Mar 2022 15:16:52 -0800 Subject: [PATCH 022/174] code cleanup, added tests, marked dangerous code for review --- .../src/canonicalization/canonicalizer.rs | 4 ++-- .../src/import_resolution/importer.rs | 2 +- compiler/parser/src/tokenizer/lexer.rs | 24 +++++++++---------- compiler/parser/src/tokenizer/mod.rs | 2 +- leo/package/src/root/manifest.rs | 6 ++--- leo/span/src/span.rs | 2 +- leo/span/src/tendril_json.rs | 2 +- .../expression/literal/char_fail.leo.out | 18 +++++++++----- .../expression/literal/int_fail.leo.out | 7 ++++++ .../expression/literal/string_fail.leo.out | 3 +++ tests/parser/expression/literal/char_fail.leo | 20 ++++++++++------ tests/parser/expression/literal/int_fail.leo | 8 +++++++ .../parser/expression/literal/string_fail.leo | 6 +++++ 13 files changed, 70 insertions(+), 34 deletions(-) create mode 100644 tests/expectations/parser/parser/expression/literal/int_fail.leo.out create mode 100644 tests/parser/expression/literal/int_fail.leo diff --git a/compiler/ast-passes/src/canonicalization/canonicalizer.rs b/compiler/ast-passes/src/canonicalization/canonicalizer.rs index 592107d434..8ce1e000dd 100644 --- a/compiler/ast-passes/src/canonicalization/canonicalizer.rs +++ b/compiler/ast-passes/src/canonicalization/canonicalizer.rs @@ -550,7 +550,7 @@ impl ReconstructingReducer for Canonicalizer { for (index, character) in string.iter().enumerate() { let col_start = span.col_start + index + 1 + col_adder; // account for open quote let bytes = span.content.clone().into_bytes(); - let col_stop = if bytes[col_start - 1] == b'\\' { + let col_stop = if bytes[col_start - 1] == b'\\' { // 0rphon let mut width = 0; match bytes[col_start] { @@ -558,7 +558,7 @@ impl ReconstructingReducer for Canonicalizer { b'u' => { width += 1; let mut index = 1; - while bytes[col_start + index] != b'}' { + while bytes[col_start + index] != b'}' { // 0rphon width += 1; index += 1; } diff --git a/compiler/ast-passes/src/import_resolution/importer.rs b/compiler/ast-passes/src/import_resolution/importer.rs index 808341433e..2b8fd967f4 100644 --- a/compiler/ast-passes/src/import_resolution/importer.rs +++ b/compiler/ast-passes/src/import_resolution/importer.rs @@ -48,7 +48,7 @@ impl Importer { let pretty_package = package.join("."); let resolved_package = - match wrapped_resolver.resolve_package(&package.iter().map(|x| &**x).collect::>()[..], &span)? { + match wrapped_resolver.resolve_package(&package.iter().map(|x| &**x).collect::>(), &span)? { Some(x) => x, None => return Err(AstError::unresolved_import(pretty_package, &span).into()), }; diff --git a/compiler/parser/src/tokenizer/lexer.rs b/compiler/parser/src/tokenizer/lexer.rs index 07222593d1..36f8e1acab 100644 --- a/compiler/parser/src/tokenizer/lexer.rs +++ b/compiler/parser/src/tokenizer/lexer.rs @@ -32,7 +32,7 @@ fn eat(input: &[u8], wanted: &str) -> Option { if input.len() < wanted.len() { return None; } - if &input[0..wanted.len()] == wanted { + if &input[..wanted.len()] == wanted { // 0rphon return Some(wanted.len()); } None @@ -70,7 +70,7 @@ impl Token { if escaped { let string = input_tendril.to_string(); - let escaped = &string[1..string.len()]; + let escaped = &string[1..string.len()]; // 0rphon if escaped.len() != 1 { return Err(ParserError::lexer_escaped_char_incorrect_length(escaped).into()); @@ -92,7 +92,7 @@ impl Token { if hex { let string = input_tendril.to_string(); - let hex_string = &string[2..string.len()]; + let hex_string = &string[2..string.len()]; // 0rphon if hex_string.len() != 2 { return Err(ParserError::lexer_escaped_hex_incorrect_length(hex_string).into()); @@ -114,7 +114,7 @@ impl Token { let unicode_number = &string[3..string.len() - 1]; let len = unicode_number.len(); - if !(1..=6).contains(&len) { + if !(1..=6).contains(&len) { // 0rphon return Err(ParserError::lexer_invalid_escaped_unicode_length(unicode_number).into()); } else if let Ok(hex) = u32::from_str_radix(unicode_number, 16) { if let Some(character) = std::char::from_u32(hex) { @@ -130,7 +130,7 @@ impl Token { if input_tendril.to_string().chars().count() != 1 { // If char doesn't close. - return Err(ParserError::lexer_char_not_closed(&input_tendril[0..]).into()); + return Err(ParserError::lexer_char_not_closed(&input_tendril).into()); } else if let Some(character) = input_tendril.to_string().chars().next() { // If its a simple char. return Ok(Char::Scalar(character)); @@ -159,7 +159,7 @@ impl Token { while i < input.len() { if i == 1 && input[0] == b'0' && input[i] == b'x' { - return Err(ParserError::lexer_hex_number_provided(&input_tendril[0..3]).into()); + return Err(ParserError::lexer_hex_number_provided(&input_tendril[..3]).into()); } if !input[i].is_ascii_digit() { break; @@ -276,7 +276,7 @@ impl Token { } if i == input.len() || !end { - return Err(ParserError::lexer_string_not_closed(String::from_utf8_lossy(&input[0..i])).into()); + return Err(ParserError::lexer_string_not_closed(String::from_utf8_lossy(&input[..i])).into()); // 0rphon } return Ok((i + 1, Token::StringLit(string))); @@ -297,14 +297,14 @@ impl Token { continue; } else if input[i] & 0x80 > 0 && unicode_char { i += Self::utf8_byte_count(input[i]); - return Err(ParserError::lexer_invalid_char(&input_tendril[0..i]).into()); + return Err(ParserError::lexer_invalid_char(&input_tendril[..i]).into()); } else if !in_escape || unicode_char { if input[i] == b'\'' { end = true; break; } else if unicode_char { return Err(ParserError::lexer_invalid_char( - &input_tendril[0..input_tendril[1..].find('\'').unwrap_or(i + 1)], + &input_tendril[..input_tendril[1..].find('\'').unwrap_or(i + 1)], ) .into()); } else if input[i] == b'\\' { @@ -330,7 +330,7 @@ impl Token { } if !end { - return Err(ParserError::lexer_char_not_closed(String::from_utf8_lossy(&input[0..i])).into()); + return Err(ParserError::lexer_char_not_closed(String::from_utf8_lossy(&input[..i])).into()); } let character = Self::eat_char( @@ -407,7 +407,7 @@ impl Token { eol + 4 } else { return Err(ParserError::lexer_block_comment_does_not_close_before_eof( - String::from_utf8_lossy(&input[0..]), + String::from_utf8_lossy(&input), ) .into()); }; @@ -500,7 +500,7 @@ impl Token { )); } - Err(ParserError::could_not_lex(String::from_utf8_lossy(&input[0..])).into()) + Err(ParserError::could_not_lex(String::from_utf8_lossy(&input)).into()) } } diff --git a/compiler/parser/src/tokenizer/mod.rs b/compiler/parser/src/tokenizer/mod.rs index 4ffdc96026..2289704a83 100644 --- a/compiler/parser/src/tokenizer/mod.rs +++ b/compiler/parser/src/tokenizer/mod.rs @@ -259,7 +259,7 @@ ppp test let token_raw = token.token.to_string(); let start = line_indicies.get(token.span.line_start - 1).unwrap(); let stop = line_indicies.get(token.span.line_stop - 1).unwrap(); - let original = &raw[*start + token.span.col_start - 1..*stop + token.span.col_stop - 1]; + let original = &raw[*start + token.span.col_start - 1..*stop + token.span.col_stop - 1]; // 0rphon assert_eq!(original, &token_raw); } }) diff --git a/leo/package/src/root/manifest.rs b/leo/package/src/root/manifest.rs index c72624bc96..378d080e65 100644 --- a/leo/package/src/root/manifest.rs +++ b/leo/package/src/root/manifest.rs @@ -195,7 +195,7 @@ impl TryFrom<&Path> for Manifest { if line.starts_with("remote") { let remote = line .split('=') // Split the line as 'remote' = '"{author}/{package_name}"' - .collect::>()[1]; // Fetch just '"{author}/{package_name}"' + .nth(1).unwrap(); // Fetch just '"{author}/{package_name}"' old_remote_format = Some(remote); // Retain the old remote format if the `manifest_refactor_remote` is not enabled @@ -238,8 +238,8 @@ impl TryFrom<&Path> for Manifest { // Fetch the author from the old remote. let remote_author = old_remote .split('/') // Split the old remote as '"{author}' and '{package_name}"' - .collect::>()[0] // Fetch just the '"{author}' - .replace(&['\"', ' '][..], ""); // Remove the quotes from the author string + .nth(0).unwrap() // Fetch just the '"{author}' + .replace(['\"', ' '], ""); // Remove the quotes from the author string // Construct the new remote section. let new_remote = format!( diff --git a/leo/span/src/span.rs b/leo/span/src/span.rs index 50f2d32080..be3db2dacd 100644 --- a/leo/span/src/span.rs +++ b/leo/span/src/span.rs @@ -90,7 +90,7 @@ impl Serialize for Span { } else { state.serialize_field("path", "")?; } - state.serialize_field("content", &self.content[..])?; + state.serialize_field("content", self.content.as_ref())?; state.end() } } diff --git a/leo/span/src/tendril_json.rs b/leo/span/src/tendril_json.rs index d9a7290f0a..9a788e56a3 100644 --- a/leo/span/src/tendril_json.rs +++ b/leo/span/src/tendril_json.rs @@ -21,7 +21,7 @@ use tendril::StrTendril; /// Serialization for the StrTendril type. pub fn serialize(tendril: &StrTendril, serializer: S) -> Result { - serializer.serialize_str(&tendril[..]) + serializer.serialize_str(&tendril) } /// Deserialization for the StrTendril type. diff --git a/tests/expectations/parser/parser/expression/literal/char_fail.leo.out b/tests/expectations/parser/parser/expression/literal/char_fail.leo.out index ece3a8f208..8137ce1700 100644 --- a/tests/expectations/parser/parser/expression/literal/char_fail.leo.out +++ b/tests/expectations/parser/parser/expression/literal/char_fail.leo.out @@ -3,12 +3,15 @@ namespace: Token expectation: Fail outputs: - "Error [EPAR0370028]: Expected a closed char but found `'\\'`." + - "Error [EPAR0370032]: Could not lex the following content: `\\`." + - "Error [EPAR0370028]: Expected a closed char but found `'\\`." + - "Error [EPAR0370032]: Could not lex the following content: `\\n`." - "Error [EPAR0370028]: Expected a closed char but found `'a`." - "Error [EPAR0370024]: Expected more characters to lex but found none." - - "Error [EPAR0370036]: Expected a valid hex character but found `154`." - "Error [EPAR0370035]: Could not lex the following escaped hex due to being given more than two chars: `7`." - - "Error [EPAR0370028]: Expected a closed char but found `\\x7g`." - "Error [EPAR0370035]: Could not lex the following escaped hex due to being given more than two chars: `z`." + - "Error [EPAR0370036]: Expected a valid hex character but found `154`." + - "Error [EPAR0370028]: Expected a closed char but found `\\x7g`." - "Error [EPAR0370036]: Expected a valid hex character but found `128`." - "Error [EPAR0370036]: Expected a valid hex character but found `193`." - "Error [EPAR0370036]: Expected a valid hex character but found `194`." @@ -17,7 +20,6 @@ outputs: - "Error [EPAR0370036]: Expected a valid hex character but found `224`." - "Error [EPAR0370036]: Expected a valid hex character but found `159`." - "Error [EPAR0370028]: Expected a closed char but found `abcdefg`." - - "Error [EPAR0370033]: Could not lex the following escaped char due to being given more than one char: `t\\t`." - "Error [EPAR0370026]: Expected a valid escape character but found `a`." - "Error [EPAR0370026]: Expected a valid escape character but found `z`." - "Error [EPAR0370026]: Expected a valid escape character but found `A`." @@ -27,16 +29,20 @@ outputs: - "Error [EPAR0370026]: Expected a valid escape character but found `*`." - "Error [EPAR0370035]: Could not lex the following escaped hex due to being given more than two chars: ``." - "Error [EPAR0370026]: Expected a valid escape character but found `117`." - - "Error [EPAR0370038]: The escaped unicode char `bbbbb}\\u{aaaa` is not within valid length of [1, 6]." + - "Error [EPAR0370033]: Could not lex the following escaped char due to being given more than one char: `t\\t`." - "Error [EPAR0370026]: Expected a valid escape character but found `117`." - "Error [EPAR0370026]: Expected a valid escape character but found `117`." + - "Error [EPAR0370024]: Expected more characters to lex but found none." + - "Error [EPAR0370029]: Expected valid character but found `'🦀\\`." - "Error [EPAR0370026]: Expected a valid escape character but found `117`." + - "Error [EPAR0370024]: Expected more characters to lex but found none." + - "Error [EPAR0370024]: Expected more characters to lex but found none." + - "Error [EPAR0370037]: There was no closing `}` after a escaped unicode `\\u{af🦀`." - "Error [EPAR0370037]: There was no closing `}` after a escaped unicode `\\u{2764z`." - "Error [EPAR0370028]: Expected a closed char but found `\\u{276g}`." - "Error [EPAR0370026]: Expected a valid escape character but found `117`." - "Error [EPAR0370026]: Expected a valid escape character but found `117`." - "Error [EPAR0370026]: Expected a valid escape character but found `117`." - "Error [EPAR0370039]: The escaped unicode char `110000` is greater than 0x10FFFF." - - "Error [EPAR0370037]: There was no closing `}` after a escaped unicode `\\u{af🦀`." - - "Error [EPAR0370029]: Expected valid character but found `'🦀\\`." + - "Error [EPAR0370038]: The escaped unicode char `bbbbb}\\u{aaaa` is not within valid length of [1, 6]." - "Error [EPAR0370029]: Expected valid character but found `'😭😂`." diff --git a/tests/expectations/parser/parser/expression/literal/int_fail.leo.out b/tests/expectations/parser/parser/expression/literal/int_fail.leo.out new file mode 100644 index 0000000000..65e9f563b7 --- /dev/null +++ b/tests/expectations/parser/parser/expression/literal/int_fail.leo.out @@ -0,0 +1,7 @@ +--- +namespace: Token +expectation: Fail +outputs: + - "Error [EPAR0370040]: A hex number `0xb..` was provided but hex is not allowed." + - "Error [EPAR0370040]: A hex number `0xb..` was provided but hex is not allowed." + - "Error [EPAR0370040]: A hex number `0xb..` was provided but hex is not allowed." diff --git a/tests/expectations/parser/parser/expression/literal/string_fail.leo.out b/tests/expectations/parser/parser/expression/literal/string_fail.leo.out index 7b8f745fad..17c704ae04 100644 --- a/tests/expectations/parser/parser/expression/literal/string_fail.leo.out +++ b/tests/expectations/parser/parser/expression/literal/string_fail.leo.out @@ -10,3 +10,6 @@ outputs: - "Error [EPAR0370027]: Expected a closed string but found `\"\\u\"`." - "Error [EPAR0370036]: Expected a valid hex character but found `255`." - "Error [EPAR0370027]: Expected a closed string but found `\"\\x\"`." + - "Error [EPAR0370028]: Expected a closed char but found `\\x\" `." + - "Error [EPAR0370028]: Expected a closed char but found `\\x\" `." + - "Error [EPAR0370027]: Expected a closed string but found `\"\\u{af🦀\"`." diff --git a/tests/parser/expression/literal/char_fail.leo b/tests/parser/expression/literal/char_fail.leo index 12dfdec1f4..1b3c896f29 100644 --- a/tests/parser/expression/literal/char_fail.leo +++ b/tests/parser/expression/literal/char_fail.leo @@ -4,15 +4,18 @@ expectation: Fail */ '\' +\ +'\ +\n 'a '' -'\x9A' '\x7' -'\x7g' '\xz' +'\x9A' +'\x7g' '\x80' '\xc1' '\xc2' @@ -23,7 +26,6 @@ expectation: Fail 'abcdefg' -'\t\t' '\a' '\z' '\A' @@ -33,18 +35,22 @@ expectation: Fail '\*' '\x' '\u' +'\t\t' -'\u{bbbbb}\u{aaaa}' '\uz' '\u1' +'' // 0rphon '\u}; +'🦀\n' '\u123' +'' //0rphon '🦀1🦀' +'' //0rphon '\u6🦀}' +'\u{af🦀' '\u{2764z' '\u{276g}' +'\u9999999' '\u00000000' '\u01000000' -'\u9999999' '\u{110000}' -'\u{af🦀' -'🦀\n' +'\u{bbbbb}\u{aaaa}' '😭😂😘' diff --git a/tests/parser/expression/literal/int_fail.leo b/tests/parser/expression/literal/int_fail.leo new file mode 100644 index 0000000000..d4155676a9 --- /dev/null +++ b/tests/parser/expression/literal/int_fail.leo @@ -0,0 +1,8 @@ +/* +namespace: Token +expectation: Fail +*/ + +0xb +0xb // 0rphon 0x +0xbfield \ No newline at end of file diff --git a/tests/parser/expression/literal/string_fail.leo b/tests/parser/expression/literal/string_fail.leo index 41545172dd..c4a783461b 100644 --- a/tests/parser/expression/literal/string_fail.leo +++ b/tests/parser/expression/literal/string_fail.leo @@ -18,3 +18,9 @@ expectation: Fail "\xFF" "\x" + +"\x" // 0rphon "\u}" + +"\x" // 0rphon "\u6🦀}" + +"\u{af🦀" From ca3ae89a3eb3111f18a63c1f9d241be4607f1c54 Mon Sep 17 00:00:00 2001 From: Alessandro Coglio Date: Thu, 10 Mar 2022 15:23:58 -0800 Subject: [PATCH 023/174] [ABNF] Rename 'natural' to 'numeral'. This applies both to the rule name and to the terminology used for that, namely for a non-empty sequence of decimal digits. While 'natural' was meant to describe a natural number (i.e. a non-negative integer: 0, 1, 2, ...), it is perhaps not a familiar term to many users. On the other hand, 'integer', while often used in programming languages for this kind of thing, is not ideal as integers may be negative. Also, assuming type inference, a lone numeral like `17` may actually not denote an integer number at all, because it may actually denote a group element if type inference turns it into `17group`, and group elements are not integers. All in all, 'numeral' seems like a good term, also according to its dictionary definition. It is used in the Java grammar to denote this kind of thing, for instance. If, in the future, we want to allow hexadecimal, octal, or binary notation, we could rename this to `decimal-numeral`, introduce `hexadecimal-numeral`, `octal-numeral`, and `binary-numeral`, and `numeral` as the union of these. --- docs/grammar/README.md | 46 +++++++++++++++++------------------ docs/grammar/abnf-grammar.txt | 30 +++++++++++------------ 2 files changed, 38 insertions(+), 38 deletions(-) diff --git a/docs/grammar/README.md b/docs/grammar/README.md index a0043ded57..cb8cb1dc5e 100644 --- a/docs/grammar/README.md +++ b/docs/grammar/README.md @@ -635,56 +635,56 @@ annotation-name = "@" identifier Go to: _[identifier](#user-content-identifier)_; -A natural (number) is a sequence of one or more decimal digits. +A numeral is a sequence of one or more decimal digits. We allow leading zeros, e.g. `007`. - + ```abnf -natural = 1*decimal-digit +numeral = 1*decimal-digit ``` -Unsigned literals are naturals followed by unsigned types. +Unsigned literals are numerals followed by unsigned types. ```abnf -unsigned-literal = natural ( %s"u8" / %s"u16" / %s"u32" / %s"u64" / %s"u128" ) +unsigned-literal = numeral ( %s"u8" / %s"u16" / %s"u32" / %s"u64" / %s"u128" ) ``` -Go to: _[natural](#user-content-natural)_; +Go to: _[numeral](#user-content-numeral)_; -Signed literals are naturals followed by signed types. +Signed literals are numerals followed by signed types. ```abnf -signed-literal = natural ( %s"i8" / %s"i16" / %s"i32" / %s"i64" / %s"i128" ) +signed-literal = numeral ( %s"i8" / %s"i16" / %s"i32" / %s"i64" / %s"i128" ) ``` -Go to: _[natural](#user-content-natural)_; +Go to: _[numeral](#user-content-numeral)_; -Field literals are naturals followed by the type of field elements. +Field literals are numerals followed by the type of field elements. ```abnf -field-literal = natural %s"field" +field-literal = numeral %s"field" ``` -Go to: _[natural](#user-content-natural)_; +Go to: _[numeral](#user-content-numeral)_; There are two kinds of group literals. -One is a single natural followed by the type of group elements, -which denotes the scalar product of the generator point by the natural. +One is a single numeral followed by the type of group elements, +which denotes the scalar product of the generator point by the numeral. The other kind is not a token because it allows some whitespace inside; therefore, it is defined in the syntactic grammar. ```abnf -product-group-literal = natural %s"group" +product-group-literal = numeral %s"group" ``` -Go to: _[natural](#user-content-natural)_; +Go to: _[numeral](#user-content-numeral)_; Boolean literals are the usual two. @@ -991,7 +991,7 @@ An array type consists of an element type and an indication of dimensions. There is either a single dimension, or a tuple of one or more dimensions. -Each dimension is a natural. +Each dimension is a numeral. ```abnf @@ -1003,10 +1003,10 @@ Go to: _[array-dimensions](#user-content-array-dimensions), [type](#user-content ```abnf -array-dimensions = natural / "(" natural *( "," natural ) ")" +array-dimensions = numeral / "(" numeral *( "," numeral ) ")" ``` -Go to: _[natural](#user-content-natural)_; +Go to: _[numeral](#user-content-numeral)_; The keyword `Self` denotes the enclosing circuit type. @@ -1069,10 +1069,10 @@ because it consists of affine point coordinates. ```abnf -group-coordinate = [ "-" ] natural / "+" / "-" / "_" +group-coordinate = [ "-" ] numeral / "+" / "-" / "_" ``` -Go to: _[natural](#user-content-natural)_; +Go to: _[numeral](#user-content-numeral)_; @@ -1275,7 +1275,7 @@ Go to: _[expression](#user-content-expression)_; ```abnf postfix-expression = primary-expression - / postfix-expression "." natural + / postfix-expression "." numeral / postfix-expression "." identifier / identifier function-arguments / postfix-expression "." identifier function-arguments @@ -1285,7 +1285,7 @@ postfix-expression = primary-expression / postfix-expression "[" [expression] ".." [expression] "]" ``` -Go to: _[expression](#user-content-expression), [function-arguments](#user-content-function-arguments), [identifier](#user-content-identifier), [named-type](#user-content-named-type), [natural](#user-content-natural), [postfix-expression](#user-content-postfix-expression), [primary-expression](#user-content-primary-expression)_; +Go to: _[expression](#user-content-expression), [function-arguments](#user-content-function-arguments), [identifier](#user-content-identifier), [named-type](#user-content-named-type), [numeral](#user-content-numeral), [postfix-expression](#user-content-postfix-expression), [primary-expression](#user-content-primary-expression)_; Unary operators have the highest operator precedence. diff --git a/docs/grammar/abnf-grammar.txt b/docs/grammar/abnf-grammar.txt index ef65d4438d..2a080affdb 100644 --- a/docs/grammar/abnf-grammar.txt +++ b/docs/grammar/abnf-grammar.txt @@ -451,30 +451,30 @@ identifier = letter *( letter / decimal-digit / "_" ) annotation-name = "@" identifier -; A natural (number) is a sequence of one or more decimal digits. +; A numeral is a sequence of one or more decimal digits. ; We allow leading zeros, e.g. `007`. -natural = 1*decimal-digit +numeral = 1*decimal-digit -; Unsigned literals are naturals followed by unsigned types. +; Unsigned literals are numerals followed by unsigned types. -unsigned-literal = natural ( %s"u8" / %s"u16" / %s"u32" / %s"u64" / %s"u128" ) +unsigned-literal = numeral ( %s"u8" / %s"u16" / %s"u32" / %s"u64" / %s"u128" ) -; Signed literals are naturals followed by signed types. +; Signed literals are numerals followed by signed types. -signed-literal = natural ( %s"i8" / %s"i16" / %s"i32" / %s"i64" / %s"i128" ) +signed-literal = numeral ( %s"i8" / %s"i16" / %s"i32" / %s"i64" / %s"i128" ) -; Field literals are naturals followed by the type of field elements. +; Field literals are numerals followed by the type of field elements. -field-literal = natural %s"field" +field-literal = numeral %s"field" ; There are two kinds of group literals. -; One is a single natural followed by the type of group elements, -; which denotes the scalar product of the generator point by the natural. +; One is a single numeral followed by the type of group elements, +; which denotes the scalar product of the generator point by the numeral. ; The other kind is not a token because it allows some whitespace inside; ; therefore, it is defined in the syntactic grammar. -product-group-literal = natural %s"group" +product-group-literal = numeral %s"group" ; Boolean literals are the usual two. @@ -640,11 +640,11 @@ tuple-type = "(" [ type 1*( "," type ) ] ")" ; and an indication of dimensions. ; There is either a single dimension, ; or a tuple of one or more dimensions. -; Each dimension is a natural. +; Each dimension is a numeral. array-type = "[" type ";" array-dimensions "]" -array-dimensions = natural / "(" natural *( "," natural ) ")" +array-dimensions = numeral / "(" numeral *( "," numeral ) ")" ; The keyword `Self` denotes the enclosing circuit type. ; It is only allowed inside a circuit type declaration. @@ -683,7 +683,7 @@ named-type = identifier / self-type / scalar-type ; This is an affine group literal, ; because it consists of affine point coordinates. -group-coordinate = [ "-" ] natural / "+" / "-" / "_" +group-coordinate = [ "-" ] numeral / "+" / "-" / "_" affine-group-literal = "(" group-coordinate "," group-coordinate %s")group" @@ -793,7 +793,7 @@ circuit-expression = circuit-construction function-arguments = "(" [ expression *( "," expression ) ] ")" postfix-expression = primary-expression - / postfix-expression "." natural + / postfix-expression "." numeral / postfix-expression "." identifier / identifier function-arguments / postfix-expression "." identifier function-arguments From 3f6b17646c56c40a58ba725f08969c248a0a96ad Mon Sep 17 00:00:00 2001 From: Alessandro Coglio Date: Thu, 10 Mar 2022 15:31:31 -0800 Subject: [PATCH 024/174] [ABNF] Add a clarification to the documentation. No grammar change in this commit. --- docs/grammar/abnf-grammar.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/grammar/abnf-grammar.txt b/docs/grammar/abnf-grammar.txt index 2a080affdb..9f326325b8 100644 --- a/docs/grammar/abnf-grammar.txt +++ b/docs/grammar/abnf-grammar.txt @@ -59,7 +59,7 @@ ; usable as last resort in the definiens of a nonterminal. ; While BNF allows arbitrary terminals, -; ABNF uses only natural numbers as terminals, +; ABNF uses only natural numbers (i.e. non-negative integers) as terminals, ; and denotes them via: ; (i) binary, decimal, or hexadecimal sequences, ; e.g. `%b1.11.1010`, `%d1.3.10`, and `%x.1.3.A` From 2c30cba70f928cbc4b3efb2efb4da816e2aa4396 Mon Sep 17 00:00:00 2001 From: gluax <16431709+gluax@users.noreply.github.com> Date: Mon, 14 Mar 2022 07:58:51 -0700 Subject: [PATCH 025/174] remove parened field --- .../src/canonicalization/canonicalizer.rs | 10 +-- .../src/import_resolution/importer.rs | 2 +- .../ast/src/reducer/reconstructing_reducer.rs | 1 - compiler/ast/src/statements/definition/mod.rs | 2 - compiler/parser/src/parser/statement.rs | 18 +++-- compiler/parser/src/tokenizer/lexer.rs | 8 +- leo/errors/src/ast/ast_errors.rs | 8 -- leo/errors/src/parser/parser_errors.rs | 8 ++ .../serialize/linear_regression.leo.out | 15 ---- .../parser/serialize/palindrome.leo.out | 7 -- .../parser/serialize/pedersen_hash.leo.out | 2 - .../parser/statement/definition.leo.out | 73 ------------------- .../parser/statement/definition_fail.leo.out | 2 + .../parser/unreachable/math_op_pass.leo.out | 10 --- .../parser/unreachable/postfix_pass.leo.out | 25 ------- tests/parser/statement/definition.leo | 2 - tests/parser/statement/definition_fail.leo | 4 + 17 files changed, 30 insertions(+), 167 deletions(-) diff --git a/compiler/ast-passes/src/canonicalization/canonicalizer.rs b/compiler/ast-passes/src/canonicalization/canonicalizer.rs index 592107d434..58260fbb95 100644 --- a/compiler/ast-passes/src/canonicalization/canonicalizer.rs +++ b/compiler/ast-passes/src/canonicalization/canonicalizer.rs @@ -376,7 +376,6 @@ impl Canonicalizer { Statement::Definition(DefinitionStatement { declaration_type: definition.declaration_type.clone(), variable_names: definition.variable_names.clone(), - parened: definition.parened, type_, value, span: definition.span.clone(), @@ -621,18 +620,11 @@ impl ReconstructingReducer for Canonicalizer { type_: Option, value: Expression, ) -> Result { - match &type_ { - Some(Type::Tuple(elements)) if elements.len() != 1 => {} - _ if definition.parened => { - return Err(AstError::invalid_parens_around_single_variable(&definition.span).into()); - } - _ => {} - } + let type_ = self.canonicalize_self_type(type_.as_ref()); Ok(DefinitionStatement { declaration_type: definition.declaration_type.clone(), variable_names, - parened: definition.parened, type_, value, span: definition.span.clone(), diff --git a/compiler/ast-passes/src/import_resolution/importer.rs b/compiler/ast-passes/src/import_resolution/importer.rs index 808341433e..2b8fd967f4 100644 --- a/compiler/ast-passes/src/import_resolution/importer.rs +++ b/compiler/ast-passes/src/import_resolution/importer.rs @@ -48,7 +48,7 @@ impl Importer { let pretty_package = package.join("."); let resolved_package = - match wrapped_resolver.resolve_package(&package.iter().map(|x| &**x).collect::>()[..], &span)? { + match wrapped_resolver.resolve_package(&package.iter().map(|x| &**x).collect::>(), &span)? { Some(x) => x, None => return Err(AstError::unresolved_import(pretty_package, &span).into()), }; diff --git a/compiler/ast/src/reducer/reconstructing_reducer.rs b/compiler/ast/src/reducer/reconstructing_reducer.rs index 939180a96a..73ea29f35c 100644 --- a/compiler/ast/src/reducer/reconstructing_reducer.rs +++ b/compiler/ast/src/reducer/reconstructing_reducer.rs @@ -286,7 +286,6 @@ pub trait ReconstructingReducer { Ok(DefinitionStatement { declaration_type: definition.declaration_type.clone(), variable_names, - parened: definition.parened, type_, value, span: definition.span.clone(), diff --git a/compiler/ast/src/statements/definition/mod.rs b/compiler/ast/src/statements/definition/mod.rs index fe4ccba13d..b73ae7b28b 100644 --- a/compiler/ast/src/statements/definition/mod.rs +++ b/compiler/ast/src/statements/definition/mod.rs @@ -33,8 +33,6 @@ pub struct DefinitionStatement { pub declaration_type: Declare, /// The bindings / variable names to declare. pub variable_names: Vec, - /// Tracks whether the variable(s) are in parens. - pub parened: bool, /// The types of the bindings, if specified, or inferred otherwise. pub type_: Option, /// An initializer value for the bindings. diff --git a/compiler/parser/src/parser/statement.rs b/compiler/parser/src/parser/statement.rs index d988363c33..115bc79c5c 100644 --- a/compiler/parser/src/parser/statement.rs +++ b/compiler/parser/src/parser/statement.rs @@ -295,14 +295,17 @@ impl ParserContext<'_> { let declare = self.expect_oneof(&[Token::Let, Token::Const])?; // Parse variable names. - let (variable_names, parened) = if self.peek_is_left_par() { - ( - self.parse_paren_comma_list(|p| p.parse_variable_name(&declare).map(Some)) - .map(|(vars, ..)| vars)?, - true, - ) + let variable_names = if self.peek_is_left_par() { + let vars = self.parse_paren_comma_list(|p| p.parse_variable_name(&declare).map(Some)) + .map(|(vars, ..)| vars)?; + + if vars.len() == 1 { + return Err(ParserError::invalid_parens_around_single_variable(vars[0].span()).into()); + } + + vars } else { - (vec![self.parse_variable_name(&declare)?], false) + vec![self.parse_variable_name(&declare)?] }; // Parse an optional type ascription. @@ -323,7 +326,6 @@ impl ParserContext<'_> { _ => unreachable!("parse_definition_statement_ shouldn't produce this"), }, variable_names, - parened, type_, value: expr, }) diff --git a/compiler/parser/src/tokenizer/lexer.rs b/compiler/parser/src/tokenizer/lexer.rs index 8c6f2c008c..980a7dc59a 100644 --- a/compiler/parser/src/tokenizer/lexer.rs +++ b/compiler/parser/src/tokenizer/lexer.rs @@ -46,7 +46,7 @@ fn eat_identifier(input_tendril: &StrTendril) -> Option { if input_tendril.is_empty() { return None; } - let input = input_tendril[..].as_bytes(); + let input = input_tendril.as_bytes(); if !input[0].is_ascii_alphabetic() { return None; @@ -73,7 +73,7 @@ impl Token { if escaped { let string = input_tendril.to_string(); - let escaped = &string[1..string.len()]; + let escaped = &string[1..input_tendril.len()]; if escaped.len() != 1 { return Err(ParserError::lexer_escaped_char_incorrect_length(escaped).into()); @@ -158,7 +158,7 @@ impl Token { if input_tendril.is_empty() { return Err(ParserError::lexer_empty_input_tendril().into()); } - let input = input_tendril[..].as_bytes(); + let input = input_tendril.as_bytes(); if !input[0].is_ascii_digit() { return Err(ParserError::lexer_eat_integer_leading_zero(String::from_utf8_lossy(input)).into()); } @@ -205,7 +205,7 @@ impl Token { if input_tendril.is_empty() { return Err(ParserError::lexer_empty_input_tendril().into()); } - let input = input_tendril[..].as_bytes(); + let input = input_tendril.as_bytes(); match input[0] { x if x.is_ascii_whitespace() => return Ok((1, Token::WhiteSpace)), b'"' => { diff --git a/leo/errors/src/ast/ast_errors.rs b/leo/errors/src/ast/ast_errors.rs index 031bc6f87f..73d37132dd 100644 --- a/leo/errors/src/ast/ast_errors.rs +++ b/leo/errors/src/ast/ast_errors.rs @@ -138,12 +138,4 @@ create_errors!( msg: "tuples of 1 element are not allowed", help: None, } - - /// For when a user puts parens around a single defined variable. - @formatted - invalid_parens_around_single_variable { - args: (), - msg: "do not put parens around single variable names", - help: None, - } ); diff --git a/leo/errors/src/parser/parser_errors.rs b/leo/errors/src/parser/parser_errors.rs index 7a1db85007..aad2d6896f 100644 --- a/leo/errors/src/parser/parser_errors.rs +++ b/leo/errors/src/parser/parser_errors.rs @@ -382,4 +382,12 @@ create_errors!( msg: format!("There was an emoji found in the escaped unicode character: `{}`.", input), help: None, } + + /// For when a user puts parens around a single defined variable. + @formatted + invalid_parens_around_single_variable { + args: (), + msg: "do not put parens around single variable names", + help: None, + } ); diff --git a/tests/expectations/parser/parser/serialize/linear_regression.leo.out b/tests/expectations/parser/parser/serialize/linear_regression.leo.out index f9cb892e7f..91a060a842 100644 --- a/tests/expectations/parser/parser/serialize/linear_regression.leo.out +++ b/tests/expectations/parser/parser/serialize/linear_regression.leo.out @@ -95,7 +95,6 @@ outputs: variable_names: - mutable: true identifier: "{\"name\":\"num_points\",\"span\":\"{\\\"line_start\\\":23,\\\"line_stop\\\":23,\\\"col_start\\\":13,\\\"col_stop\\\":23,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\" let num_points = 5i32;\\\"}\"}" - parened: false type_: ~ value: Value: @@ -107,7 +106,6 @@ outputs: variable_names: - mutable: true identifier: "{\"name\":\"x_sum\",\"span\":\"{\\\"line_start\\\":25,\\\"line_stop\\\":25,\\\"col_start\\\":13,\\\"col_stop\\\":18,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\" let x_sum = 0i32; \\\"}\"}" - parened: false type_: ~ value: Value: @@ -119,7 +117,6 @@ outputs: variable_names: - mutable: true identifier: "{\"name\":\"y_sum\",\"span\":\"{\\\"line_start\\\":26,\\\"line_stop\\\":26,\\\"col_start\\\":13,\\\"col_stop\\\":18,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\" let y_sum = 0i32; \\\"}\"}" - parened: false type_: ~ value: Value: @@ -131,7 +128,6 @@ outputs: variable_names: - mutable: true identifier: "{\"name\":\"xy_sum\",\"span\":\"{\\\"line_start\\\":27,\\\"line_stop\\\":27,\\\"col_start\\\":13,\\\"col_stop\\\":19,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\" let xy_sum = 0i32; \\\"}\"}" - parened: false type_: ~ value: Value: @@ -143,7 +139,6 @@ outputs: variable_names: - mutable: true identifier: "{\"name\":\"x2_sum\",\"span\":\"{\\\"line_start\\\":28,\\\"line_stop\\\":28,\\\"col_start\\\":13,\\\"col_stop\\\":19,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\" let x2_sum = 0i32; \\\"}\"}" - parened: false type_: ~ value: Value: @@ -294,7 +289,6 @@ outputs: variable_names: - mutable: true identifier: "{\"name\":\"numerator\",\"span\":\"{\\\"line_start\\\":35,\\\"line_stop\\\":35,\\\"col_start\\\":13,\\\"col_stop\\\":22,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\" let numerator = (num_points * xy_sum) - (x_sum * y_sum); \\\"}\"}" - parened: false type_: ~ value: Binary: @@ -318,7 +312,6 @@ outputs: variable_names: - mutable: true identifier: "{\"name\":\"denominator\",\"span\":\"{\\\"line_start\\\":36,\\\"line_stop\\\":36,\\\"col_start\\\":13,\\\"col_stop\\\":24,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\" let denominator = (num_points * x2_sum) - (x_sum * x_sum);\\\"}\"}" - parened: false type_: ~ value: Binary: @@ -342,7 +335,6 @@ outputs: variable_names: - mutable: true identifier: "{\"name\":\"slope\",\"span\":\"{\\\"line_start\\\":37,\\\"line_stop\\\":37,\\\"col_start\\\":13,\\\"col_stop\\\":18,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\" let slope = numerator / denominator;\\\"}\"}" - parened: false type_: ~ value: Binary: @@ -376,7 +368,6 @@ outputs: variable_names: - mutable: true identifier: "{\"name\":\"num_points\",\"span\":\"{\\\"line_start\\\":42,\\\"line_stop\\\":42,\\\"col_start\\\":13,\\\"col_stop\\\":23,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\" let num_points = 5i32; \\\"}\"}" - parened: false type_: ~ value: Value: @@ -388,7 +379,6 @@ outputs: variable_names: - mutable: true identifier: "{\"name\":\"x_sum\",\"span\":\"{\\\"line_start\\\":44,\\\"line_stop\\\":44,\\\"col_start\\\":13,\\\"col_stop\\\":18,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\" let x_sum = 0i32;\\\"}\"}" - parened: false type_: ~ value: Value: @@ -400,7 +390,6 @@ outputs: variable_names: - mutable: true identifier: "{\"name\":\"y_sum\",\"span\":\"{\\\"line_start\\\":45,\\\"line_stop\\\":45,\\\"col_start\\\":13,\\\"col_stop\\\":18,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\" let y_sum = 0i32;\\\"}\"}" - parened: false type_: ~ value: Value: @@ -511,7 +500,6 @@ outputs: variable_names: - mutable: true identifier: "{\"name\":\"points\",\"span\":\"{\\\"line_start\\\":56,\\\"line_stop\\\":56,\\\"col_start\\\":7,\\\"col_stop\\\":13,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\" let points: [Point; 5] = [\\\"}\"}" - parened: false type_: Array: - Identifier: "{\"name\":\"Point\",\"span\":\"{\\\"line_start\\\":56,\\\"line_stop\\\":56,\\\"col_start\\\":16,\\\"col_stop\\\":21,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\" let points: [Point; 5] = [\\\"}\"}" @@ -634,7 +622,6 @@ outputs: variable_names: - mutable: true identifier: "{\"name\":\"reg\",\"span\":\"{\\\"line_start\\\":63,\\\"line_stop\\\":63,\\\"col_start\\\":7,\\\"col_stop\\\":10,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\" let reg = LinearRegression::new(points);\\\"}\"}" - parened: false type_: ~ value: Call: @@ -652,7 +639,6 @@ outputs: variable_names: - mutable: true identifier: "{\"name\":\"slope\",\"span\":\"{\\\"line_start\\\":64,\\\"line_stop\\\":64,\\\"col_start\\\":7,\\\"col_stop\\\":12,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\" let slope = reg.slope();\\\"}\"}" - parened: false type_: ~ value: Call: @@ -669,7 +655,6 @@ outputs: variable_names: - mutable: true identifier: "{\"name\":\"offset\",\"span\":\"{\\\"line_start\\\":65,\\\"line_stop\\\":65,\\\"col_start\\\":7,\\\"col_stop\\\":13,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\" let offset = reg.offset(slope);\\\"}\"}" - parened: false type_: ~ value: Call: diff --git a/tests/expectations/parser/parser/serialize/palindrome.leo.out b/tests/expectations/parser/parser/serialize/palindrome.leo.out index 7d884ebcbc..df0ea483e8 100644 --- a/tests/expectations/parser/parser/serialize/palindrome.leo.out +++ b/tests/expectations/parser/parser/serialize/palindrome.leo.out @@ -56,7 +56,6 @@ outputs: variable_names: - mutable: false identifier: "{\"name\":\"str_len\",\"span\":\"{\\\"line_start\\\":11,\\\"line_stop\\\":11,\\\"col_start\\\":11,\\\"col_stop\\\":18,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\" const str_len = 20u32; // saving const for convenience\\\"}\"}" - parened: false type_: ~ value: Value: @@ -68,7 +67,6 @@ outputs: variable_names: - mutable: true identifier: "{\"name\":\"result\",\"span\":\"{\\\"line_start\\\":14,\\\"line_stop\\\":14,\\\"col_start\\\":9,\\\"col_stop\\\":15,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\" let result = true;\\\"}\"}" - parened: false type_: ~ value: Value: @@ -78,7 +76,6 @@ outputs: variable_names: - mutable: true identifier: "{\"name\":\"processed\",\"span\":\"{\\\"line_start\\\":15,\\\"line_stop\\\":15,\\\"col_start\\\":9,\\\"col_stop\\\":18,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\" let processed = 0u8;\\\"}\"}" - parened: false type_: ~ value: Value: @@ -106,7 +103,6 @@ outputs: variable_names: - mutable: true identifier: "{\"name\":\"start_sym\",\"span\":\"{\\\"line_start\\\":18,\\\"line_stop\\\":18,\\\"col_start\\\":13,\\\"col_stop\\\":22,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\" let start_sym = str[start];\\\"}\"}" - parened: false type_: ~ value: Access: @@ -133,7 +129,6 @@ outputs: variable_names: - mutable: true identifier: "{\"name\":\"skipped\",\"span\":\"{\\\"line_start\\\":20,\\\"line_stop\\\":20,\\\"col_start\\\":17,\\\"col_stop\\\":24,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\" let skipped = 0u8;\\\"}\"}" - parened: false type_: ~ value: Value: @@ -145,7 +140,6 @@ outputs: variable_names: - mutable: true identifier: "{\"name\":\"end_empty\",\"span\":\"{\\\"line_start\\\":21,\\\"line_stop\\\":21,\\\"col_start\\\":17,\\\"col_stop\\\":26,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\" let end_empty = 0u8;\\\"}\"}" - parened: false type_: ~ value: Value: @@ -157,7 +151,6 @@ outputs: variable_names: - mutable: true identifier: "{\"name\":\"end_sym\",\"span\":\"{\\\"line_start\\\":22,\\\"line_stop\\\":22,\\\"col_start\\\":17,\\\"col_stop\\\":24,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\" let end_sym = ' ';\\\"}\"}" - parened: false type_: ~ value: Value: diff --git a/tests/expectations/parser/parser/serialize/pedersen_hash.leo.out b/tests/expectations/parser/parser/serialize/pedersen_hash.leo.out index 5d6bad730c..9ac6f544ab 100644 --- a/tests/expectations/parser/parser/serialize/pedersen_hash.leo.out +++ b/tests/expectations/parser/parser/serialize/pedersen_hash.leo.out @@ -64,7 +64,6 @@ outputs: variable_names: - mutable: true identifier: "{\"name\":\"digest\",\"span\":\"{\\\"line_start\\\":12,\\\"line_stop\\\":12,\\\"col_start\\\":13,\\\"col_stop\\\":19,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\" let digest: group = 0group;\\\"}\"}" - parened: false type_: Group value: Value: @@ -144,7 +143,6 @@ outputs: variable_names: - mutable: false identifier: "{\"name\":\"pedersen\",\"span\":\"{\\\"line_start\\\":24,\\\"line_stop\\\":24,\\\"col_start\\\":11,\\\"col_stop\\\":19,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\" const pedersen = PedersenHash::new(parameters);\\\"}\"}" - parened: false type_: ~ value: Call: diff --git a/tests/expectations/parser/parser/statement/definition.leo.out b/tests/expectations/parser/parser/statement/definition.leo.out index 359dc7bffe..8af02e1c17 100644 --- a/tests/expectations/parser/parser/statement/definition.leo.out +++ b/tests/expectations/parser/parser/statement/definition.leo.out @@ -14,7 +14,6 @@ outputs: col_stop: 6 path: "" content: let x = expr; - parened: false type_: ~ value: Identifier: "{\"name\":\"expr\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":9,\\\"col_stop\\\":13,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = expr;\\\"}\"}" @@ -37,7 +36,6 @@ outputs: col_stop: 6 path: "" content: let x = (); - parened: false type_: ~ value: TupleInit: @@ -68,7 +66,6 @@ outputs: col_stop: 6 path: "" content: let x = x+y; - parened: false type_: ~ value: Binary: @@ -103,7 +100,6 @@ outputs: col_stop: 6 path: "" content: "let x = (x,y);" - parened: false type_: ~ value: TupleInit: @@ -136,7 +132,6 @@ outputs: col_stop: 6 path: "" content: let x = x(); - parened: false type_: ~ value: Call: @@ -169,7 +164,6 @@ outputs: col_stop: 8 path: "" content: const x = expr; - parened: false type_: ~ value: Identifier: "{\"name\":\"expr\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":11,\\\"col_stop\\\":15,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"const x = expr;\\\"}\"}" @@ -192,7 +186,6 @@ outputs: col_stop: 8 path: "" content: const x = (); - parened: false type_: ~ value: TupleInit: @@ -223,7 +216,6 @@ outputs: col_stop: 8 path: "" content: const x = x+y; - parened: false type_: ~ value: Binary: @@ -258,7 +250,6 @@ outputs: col_stop: 8 path: "" content: "const x = (x,y);" - parened: false type_: ~ value: TupleInit: @@ -291,7 +282,6 @@ outputs: col_stop: 8 path: "" content: const x = x(); - parened: false type_: ~ value: Call: @@ -324,7 +314,6 @@ outputs: col_stop: 6 path: "" content: "let x: u32 = expr;" - parened: false type_: IntegerType: U32 value: @@ -348,7 +337,6 @@ outputs: col_stop: 6 path: "" content: "let x: u32 = ();" - parened: false type_: IntegerType: U32 value: @@ -380,7 +368,6 @@ outputs: col_stop: 6 path: "" content: "let x: u32 = x+y;" - parened: false type_: IntegerType: U32 value: @@ -416,7 +403,6 @@ outputs: col_stop: 6 path: "" content: "let x: u32 = (x,y);" - parened: false type_: IntegerType: U32 value: @@ -450,7 +436,6 @@ outputs: col_stop: 6 path: "" content: "let x: u32 = x();" - parened: false type_: IntegerType: U32 value: @@ -484,7 +469,6 @@ outputs: col_stop: 8 path: "" content: "const x: u32 = expr;" - parened: false type_: IntegerType: U32 value: @@ -508,7 +492,6 @@ outputs: col_stop: 8 path: "" content: "const x: u32 = ();" - parened: false type_: IntegerType: U32 value: @@ -540,7 +523,6 @@ outputs: col_stop: 8 path: "" content: "const x: u32 = x+y;" - parened: false type_: IntegerType: U32 value: @@ -576,7 +558,6 @@ outputs: col_stop: 8 path: "" content: "const x: u32 = (x,y);" - parened: false type_: IntegerType: U32 value: @@ -610,7 +591,6 @@ outputs: col_stop: 8 path: "" content: "const x: u32 = x();" - parened: false type_: IntegerType: U32 value: @@ -653,7 +633,6 @@ outputs: col_stop: 10 path: "" content: "let (x, y) = expr;" - parened: true type_: ~ value: Identifier: "{\"name\":\"expr\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":14,\\\"col_stop\\\":18,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let (x, y) = expr;\\\"}\"}" @@ -685,7 +664,6 @@ outputs: col_stop: 10 path: "" content: "let (x, y) = ();" - parened: true type_: ~ value: TupleInit: @@ -725,7 +703,6 @@ outputs: col_stop: 10 path: "" content: "let (x, y) = x+y;" - parened: true type_: ~ value: Binary: @@ -769,7 +746,6 @@ outputs: col_stop: 10 path: "" content: "let (x, y) = (x,y);" - parened: true type_: ~ value: TupleInit: @@ -811,7 +787,6 @@ outputs: col_stop: 10 path: "" content: "let (x, y) = x();" - parened: true type_: ~ value: Call: @@ -853,7 +828,6 @@ outputs: col_stop: 12 path: "" content: "const (x, y) = expr;" - parened: true type_: ~ value: Identifier: "{\"name\":\"expr\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":16,\\\"col_stop\\\":20,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"const (x, y) = expr;\\\"}\"}" @@ -885,7 +859,6 @@ outputs: col_stop: 12 path: "" content: "const (x, y) = ();" - parened: true type_: ~ value: TupleInit: @@ -925,7 +898,6 @@ outputs: col_stop: 12 path: "" content: "const (x, y) = x+y;" - parened: true type_: ~ value: Binary: @@ -969,7 +941,6 @@ outputs: col_stop: 12 path: "" content: "const (x, y) = (x,y);" - parened: true type_: ~ value: TupleInit: @@ -1011,7 +982,6 @@ outputs: col_stop: 12 path: "" content: "const (x, y) = x();" - parened: true type_: ~ value: Call: @@ -1053,7 +1023,6 @@ outputs: col_stop: 10 path: "" content: "let (x, y): u32 = expr;" - parened: true type_: IntegerType: U32 value: @@ -1086,7 +1055,6 @@ outputs: col_stop: 10 path: "" content: "let (x, y): u32 = ();" - parened: true type_: IntegerType: U32 value: @@ -1127,7 +1095,6 @@ outputs: col_stop: 10 path: "" content: "let (x, y): u32 = x+y;" - parened: true type_: IntegerType: U32 value: @@ -1172,7 +1139,6 @@ outputs: col_stop: 10 path: "" content: "let (x, y): u32 = (x,y);" - parened: true type_: IntegerType: U32 value: @@ -1215,7 +1181,6 @@ outputs: col_stop: 10 path: "" content: "let (x, y): u32 = x();" - parened: true type_: IntegerType: U32 value: @@ -1258,7 +1223,6 @@ outputs: col_stop: 12 path: "" content: "const (x, y): u32 = expr;" - parened: true type_: IntegerType: U32 value: @@ -1291,7 +1255,6 @@ outputs: col_stop: 12 path: "" content: "const (x, y): u32 = ();" - parened: true type_: IntegerType: U32 value: @@ -1332,7 +1295,6 @@ outputs: col_stop: 12 path: "" content: "const (x, y): u32 = x+y;" - parened: true type_: IntegerType: U32 value: @@ -1377,7 +1339,6 @@ outputs: col_stop: 12 path: "" content: "const (x, y): u32 = (x,y);" - parened: true type_: IntegerType: U32 value: @@ -1420,7 +1381,6 @@ outputs: col_stop: 12 path: "" content: "const (x, y): u32 = x();" - parened: true type_: IntegerType: U32 value: @@ -1463,7 +1423,6 @@ outputs: col_stop: 9 path: "" content: "let (x,y,) = ();" - parened: true type_: ~ value: TupleInit: @@ -1482,37 +1441,6 @@ outputs: col_stop: 16 path: "" content: "let (x,y,) = ();" - - Definition: - declaration_type: Let - variable_names: - - mutable: true - identifier: "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":6,\\\"col_stop\\\":7,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let (x,) = ();\\\"}\"}" - span: - line_start: 1 - line_stop: 1 - col_start: 6 - col_stop: 7 - path: "" - content: "let (x,) = ();" - parened: true - type_: ~ - value: - TupleInit: - elements: [] - span: - line_start: 1 - line_stop: 1 - col_start: 12 - col_stop: 14 - path: "" - content: "let (x,) = ();" - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 14 - path: "" - content: "let (x,) = ();" - Definition: declaration_type: Let variable_names: @@ -1525,7 +1453,6 @@ outputs: col_stop: 6 path: "" content: "let x: [[u8; 2]; 2] = [[0,0], [0,0]];" - parened: false type_: Array: - Array: diff --git a/tests/expectations/parser/parser/statement/definition_fail.leo.out b/tests/expectations/parser/parser/statement/definition_fail.leo.out index 11640aa977..de285cc983 100644 --- a/tests/expectations/parser/parser/statement/definition_fail.leo.out +++ b/tests/expectations/parser/parser/statement/definition_fail.leo.out @@ -25,3 +25,5 @@ outputs: - "Error [EPAR0370009]: unexpected string: expected 'ident', got ','\n --> test:1:10\n |\n 1 | let (x,y,,) = ();\n | ^" - "Error [EPAR0370009]: unexpected string: expected 'ident', got ','\n --> test:1:6\n |\n 1 | let (,x,y) = ();\n | ^" - "Error [EPAR0370009]: unexpected string: expected 'ident', got ','\n --> test:1:8\n |\n 1 | let (x,,y) = ();\n | ^" + - "Error [EPAR0370044]: do not put parens around single variable names\n --> test:1:6\n |\n 1 | let (x) = ...;\n | ^" + - "Error [EPAR0370044]: do not put parens around single variable names\n --> test:1:6\n |\n 1 | let (x,) = ...;\n | ^" diff --git a/tests/expectations/parser/parser/unreachable/math_op_pass.leo.out b/tests/expectations/parser/parser/unreachable/math_op_pass.leo.out index a23a423e96..051886207a 100644 --- a/tests/expectations/parser/parser/unreachable/math_op_pass.leo.out +++ b/tests/expectations/parser/parser/unreachable/math_op_pass.leo.out @@ -14,7 +14,6 @@ outputs: col_stop: 6 path: "" content: let x = a . b; - parened: false type_: ~ value: Access: @@ -49,7 +48,6 @@ outputs: col_stop: 6 path: "" content: "let x = a :: b;" - parened: false type_: ~ value: Access: @@ -84,7 +82,6 @@ outputs: col_stop: 6 path: "" content: let x = a == b; - parened: false type_: ~ value: Binary: @@ -119,7 +116,6 @@ outputs: col_stop: 6 path: "" content: let x = a != b; - parened: false type_: ~ value: Binary: @@ -154,7 +150,6 @@ outputs: col_stop: 6 path: "" content: let x = a > b; - parened: false type_: ~ value: Binary: @@ -189,7 +184,6 @@ outputs: col_stop: 6 path: "" content: let x = a >= b; - parened: false type_: ~ value: Binary: @@ -224,7 +218,6 @@ outputs: col_stop: 6 path: "" content: let x = a < b; - parened: false type_: ~ value: Binary: @@ -259,7 +252,6 @@ outputs: col_stop: 6 path: "" content: let x = a <= b; - parened: false type_: ~ value: Binary: @@ -294,7 +286,6 @@ outputs: col_stop: 6 path: "" content: let x = a > b; - parened: false type_: ~ value: Binary: @@ -329,7 +320,6 @@ outputs: col_stop: 6 path: "" content: let x = a as b; - parened: false type_: ~ value: Cast: diff --git a/tests/expectations/parser/parser/unreachable/postfix_pass.leo.out b/tests/expectations/parser/parser/unreachable/postfix_pass.leo.out index 1912ac68ff..8f75bd5665 100644 --- a/tests/expectations/parser/parser/unreachable/postfix_pass.leo.out +++ b/tests/expectations/parser/parser/unreachable/postfix_pass.leo.out @@ -33,7 +33,6 @@ outputs: col_stop: 6 path: "" content: let x = aimport; - parened: false type_: ~ value: Identifier: "{\"name\":\"aimport\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":9,\\\"col_stop\\\":16,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = aimport;\\\"}\"}" @@ -56,7 +55,6 @@ outputs: col_stop: 6 path: "" content: let x = a_; - parened: false type_: ~ value: Identifier: "{\"name\":\"a_\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":9,\\\"col_stop\\\":11,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = a_;\\\"}\"}" @@ -79,7 +77,6 @@ outputs: col_stop: 6 path: "" content: let x = aas; - parened: false type_: ~ value: Identifier: "{\"name\":\"aas\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":9,\\\"col_stop\\\":12,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = aas;\\\"}\"}" @@ -102,7 +99,6 @@ outputs: col_stop: 6 path: "" content: let x = aconsole; - parened: false type_: ~ value: Identifier: "{\"name\":\"aconsole\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":9,\\\"col_stop\\\":17,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = aconsole;\\\"}\"}" @@ -125,7 +121,6 @@ outputs: col_stop: 6 path: "" content: let x = aconst; - parened: false type_: ~ value: Identifier: "{\"name\":\"aconst\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":9,\\\"col_stop\\\":15,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = aconst;\\\"}\"}" @@ -148,7 +143,6 @@ outputs: col_stop: 6 path: "" content: let x = alet; - parened: false type_: ~ value: Identifier: "{\"name\":\"alet\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":9,\\\"col_stop\\\":13,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = alet;\\\"}\"}" @@ -171,7 +165,6 @@ outputs: col_stop: 6 path: "" content: let x = afor; - parened: false type_: ~ value: Identifier: "{\"name\":\"afor\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":9,\\\"col_stop\\\":13,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = afor;\\\"}\"}" @@ -194,7 +187,6 @@ outputs: col_stop: 6 path: "" content: let x = aif; - parened: false type_: ~ value: Identifier: "{\"name\":\"aif\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":9,\\\"col_stop\\\":12,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = aif;\\\"}\"}" @@ -217,7 +209,6 @@ outputs: col_stop: 6 path: "" content: let x = aelse; - parened: false type_: ~ value: Identifier: "{\"name\":\"aelse\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":9,\\\"col_stop\\\":14,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = aelse;\\\"}\"}" @@ -240,7 +231,6 @@ outputs: col_stop: 6 path: "" content: let x = ai8; - parened: false type_: ~ value: Identifier: "{\"name\":\"ai8\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":9,\\\"col_stop\\\":12,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = ai8;\\\"}\"}" @@ -263,7 +253,6 @@ outputs: col_stop: 6 path: "" content: let x = ai16; - parened: false type_: ~ value: Identifier: "{\"name\":\"ai16\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":9,\\\"col_stop\\\":13,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = ai16;\\\"}\"}" @@ -286,7 +275,6 @@ outputs: col_stop: 6 path: "" content: let x = ai32; - parened: false type_: ~ value: Identifier: "{\"name\":\"ai32\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":9,\\\"col_stop\\\":13,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = ai32;\\\"}\"}" @@ -309,7 +297,6 @@ outputs: col_stop: 6 path: "" content: let x = ai64; - parened: false type_: ~ value: Identifier: "{\"name\":\"ai64\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":9,\\\"col_stop\\\":13,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = ai64;\\\"}\"}" @@ -332,7 +319,6 @@ outputs: col_stop: 6 path: "" content: let x = ai128; - parened: false type_: ~ value: Identifier: "{\"name\":\"ai128\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":9,\\\"col_stop\\\":14,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = ai128;\\\"}\"}" @@ -355,7 +341,6 @@ outputs: col_stop: 6 path: "" content: let x = au8; - parened: false type_: ~ value: Identifier: "{\"name\":\"au8\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":9,\\\"col_stop\\\":12,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = au8;\\\"}\"}" @@ -378,7 +363,6 @@ outputs: col_stop: 6 path: "" content: let x = au16; - parened: false type_: ~ value: Identifier: "{\"name\":\"au16\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":9,\\\"col_stop\\\":13,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = au16;\\\"}\"}" @@ -401,7 +385,6 @@ outputs: col_stop: 6 path: "" content: let x = au32; - parened: false type_: ~ value: Identifier: "{\"name\":\"au32\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":9,\\\"col_stop\\\":13,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = au32;\\\"}\"}" @@ -424,7 +407,6 @@ outputs: col_stop: 6 path: "" content: let x = au64; - parened: false type_: ~ value: Identifier: "{\"name\":\"au64\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":9,\\\"col_stop\\\":13,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = au64;\\\"}\"}" @@ -447,7 +429,6 @@ outputs: col_stop: 6 path: "" content: let x = au128; - parened: false type_: ~ value: Identifier: "{\"name\":\"au128\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":9,\\\"col_stop\\\":14,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = au128;\\\"}\"}" @@ -470,7 +451,6 @@ outputs: col_stop: 6 path: "" content: let x = areturn; - parened: false type_: ~ value: Identifier: "{\"name\":\"areturn\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":9,\\\"col_stop\\\":16,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = areturn;\\\"}\"}" @@ -493,7 +473,6 @@ outputs: col_stop: 6 path: "" content: let x = aself; - parened: false type_: ~ value: Identifier: "{\"name\":\"aself\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":9,\\\"col_stop\\\":14,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = aself;\\\"}\"}" @@ -516,7 +495,6 @@ outputs: col_stop: 6 path: "" content: let x = aSelf; - parened: false type_: ~ value: Identifier: "{\"name\":\"aSelf\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":9,\\\"col_stop\\\":14,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = aSelf;\\\"}\"}" @@ -539,7 +517,6 @@ outputs: col_stop: 6 path: "" content: let x = atrue; - parened: false type_: ~ value: Identifier: "{\"name\":\"atrue\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":9,\\\"col_stop\\\":14,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = atrue;\\\"}\"}" @@ -562,7 +539,6 @@ outputs: col_stop: 6 path: "" content: let x = afalse; - parened: false type_: ~ value: Identifier: "{\"name\":\"afalse\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":9,\\\"col_stop\\\":15,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = afalse;\\\"}\"}" @@ -585,7 +561,6 @@ outputs: col_stop: 6 path: "" content: let x = a0; - parened: false type_: ~ value: Identifier: "{\"name\":\"a0\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":9,\\\"col_stop\\\":11,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"let x = a0;\\\"}\"}" diff --git a/tests/parser/statement/definition.leo b/tests/parser/statement/definition.leo index ff3b33ede3..f78d200b04 100644 --- a/tests/parser/statement/definition.leo +++ b/tests/parser/statement/definition.leo @@ -97,6 +97,4 @@ const (x, y): u32 = x(); let (x,y,) = (); -let (x,) = (); - let x: [[u8; 2]; 2] = [[0,0], [0,0]]; diff --git a/tests/parser/statement/definition_fail.leo b/tests/parser/statement/definition_fail.leo index 7bdfc14af2..70c6d47ab6 100644 --- a/tests/parser/statement/definition_fail.leo +++ b/tests/parser/statement/definition_fail.leo @@ -52,3 +52,7 @@ let (x,y,,) = (); let (,x,y) = (); let (x,,y) = (); + +let (x) = ...; + +let (x,) = ...; \ No newline at end of file From 9a45c2ae99d927fd3eb9fba16a2fff676b94ca1e Mon Sep 17 00:00:00 2001 From: gluax <16431709+gluax@users.noreply.github.com> Date: Mon, 14 Mar 2022 08:07:01 -0700 Subject: [PATCH 026/174] fix array around 1 element array dim size --- compiler/parser/src/parser/type_.rs | 2 + leo/errors/src/parser/parser_errors.rs | 8 ++++ .../parser/expression/array_init.leo.out | 21 --------- .../parser/expression/array_init_fail.leo.out | 1 + .../parser/expression/array_len.leo.out | 43 ------------------- tests/parser/expression/array_init.leo | 2 - tests/parser/expression/array_init_fail.leo | 2 + tests/parser/expression/array_len.leo | 2 - 8 files changed, 13 insertions(+), 68 deletions(-) diff --git a/compiler/parser/src/parser/type_.rs b/compiler/parser/src/parser/type_.rs index f634fee8ed..1d4f100581 100644 --- a/compiler/parser/src/parser/type_.rs +++ b/compiler/parser/src/parser/type_.rs @@ -75,6 +75,8 @@ impl ParserContext<'_> { })?; if dims.is_empty() && !had_item_err { self.emit_err(ParserError::array_tuple_dimensions_empty(&span)); + } else if dims.len() == 1 { + self.emit_err(ParserError::invalid_parens_around_single_array_dimension_size(&span)); } ArrayDimensions(dims.into()) }) diff --git a/leo/errors/src/parser/parser_errors.rs b/leo/errors/src/parser/parser_errors.rs index aad2d6896f..08a5905e44 100644 --- a/leo/errors/src/parser/parser_errors.rs +++ b/leo/errors/src/parser/parser_errors.rs @@ -390,4 +390,12 @@ create_errors!( msg: "do not put parens around single variable names", help: None, } + + /// For when a user puts parens around a single defined variable. + @formatted + invalid_parens_around_single_array_dimension_size { + args: (), + msg: "do not put parens around single dimension array size", + help: None, + } ); diff --git a/tests/expectations/parser/parser/expression/array_init.leo.out b/tests/expectations/parser/parser/expression/array_init.leo.out index bf542ace05..cd7972a8d9 100644 --- a/tests/expectations/parser/parser/expression/array_init.leo.out +++ b/tests/expectations/parser/parser/expression/array_init.leo.out @@ -45,27 +45,6 @@ outputs: col_stop: 7 path: "" content: "[0; 1]" - - ArrayInit: - element: - Value: - Implicit: - - "0" - - span: - line_start: 1 - line_stop: 1 - col_start: 2 - col_stop: 3 - path: "" - content: "[0; (1)]" - dimensions: - - value: "1" - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 9 - path: "" - content: "[0; (1)]" - ArrayInit: element: Value: diff --git a/tests/expectations/parser/parser/expression/array_init_fail.leo.out b/tests/expectations/parser/parser/expression/array_init_fail.leo.out index d8a72305fd..c38384b2b3 100644 --- a/tests/expectations/parser/parser/expression/array_init_fail.leo.out +++ b/tests/expectations/parser/parser/expression/array_init_fail.leo.out @@ -5,3 +5,4 @@ outputs: - "Error [EPAR0370010]: illegal spread in array initializer\n --> test:1:1\n |\n 1 | [...0u8; 1]\n | ^^^^^^^" - "Error [EPAR0370010]: illegal spread in array initializer\n --> test:1:1\n |\n 1 | [...0; 1]\n | ^^^^^" - "Error [EPAR0370023]: Array dimensions specified as a tuple cannot be empty.\n --> test:1:5\n |\n 1 | [0; ()]\n | ^^" + - "Error [EPAR0370045]: do not put parens around single dimension array size\n --> test:1:5\n |\n 1 | [0; (1)]\n | ^^^" diff --git a/tests/expectations/parser/parser/expression/array_len.leo.out b/tests/expectations/parser/parser/expression/array_len.leo.out index 5d31cbeb55..1007e7ea87 100644 --- a/tests/expectations/parser/parser/expression/array_len.leo.out +++ b/tests/expectations/parser/parser/expression/array_len.leo.out @@ -89,49 +89,6 @@ outputs: col_stop: 13 path: "" content: "[0; 1].len()" - - Call: - function: - Access: - Member: - inner: - ArrayInit: - element: - Value: - Implicit: - - "0" - - span: - line_start: 1 - line_stop: 1 - col_start: 2 - col_stop: 3 - path: "" - content: "[0; (1)].len()" - dimensions: - - value: "1" - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 9 - path: "" - content: "[0; (1)].len()" - name: "{\"name\":\"len\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":10,\\\"col_stop\\\":13,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"[0; (1)].len()\\\"}\"}" - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 13 - path: "" - content: "[0; (1)].len()" - type_: ~ - arguments: [] - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 15 - path: "" - content: "[0; (1)].len()" - Call: function: Access: diff --git a/tests/parser/expression/array_init.leo b/tests/parser/expression/array_init.leo index 343be881e7..38826f66e7 100644 --- a/tests/parser/expression/array_init.leo +++ b/tests/parser/expression/array_init.leo @@ -7,8 +7,6 @@ expectation: Pass [0; 1] -[0; (1)] - [0; (1, 2)] [0; (1, 2,)] diff --git a/tests/parser/expression/array_init_fail.leo b/tests/parser/expression/array_init_fail.leo index 8cd5b5eb0b..95b21d3199 100644 --- a/tests/parser/expression/array_init_fail.leo +++ b/tests/parser/expression/array_init_fail.leo @@ -9,3 +9,5 @@ expectation: Fail [...0; 1] [0; ()] + +[0; (1)] \ No newline at end of file diff --git a/tests/parser/expression/array_len.leo b/tests/parser/expression/array_len.leo index 4a67f8d2b6..eb59228e67 100644 --- a/tests/parser/expression/array_len.leo +++ b/tests/parser/expression/array_len.leo @@ -7,8 +7,6 @@ expectation: Pass [0; 1].len() -[0; (1)].len() - [0; (1, 2)].len() [0; (1, 2, 3)].len() From ef8d0415e74771f54f7ea8f747fbed0159219064 Mon Sep 17 00:00:00 2001 From: gluax <16431709+gluax@users.noreply.github.com> Date: Mon, 14 Mar 2022 08:12:03 -0700 Subject: [PATCH 027/174] change parens around variable into recoverable error --- compiler/parser/src/parser/statement.rs | 2 +- .../parser/parser/statement/definition_fail.leo.out | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/compiler/parser/src/parser/statement.rs b/compiler/parser/src/parser/statement.rs index 115bc79c5c..251d00136c 100644 --- a/compiler/parser/src/parser/statement.rs +++ b/compiler/parser/src/parser/statement.rs @@ -300,7 +300,7 @@ impl ParserContext<'_> { .map(|(vars, ..)| vars)?; if vars.len() == 1 { - return Err(ParserError::invalid_parens_around_single_variable(vars[0].span()).into()); + self.emit_err(ParserError::invalid_parens_around_single_variable(vars[0].span())); } vars diff --git a/tests/expectations/parser/parser/statement/definition_fail.leo.out b/tests/expectations/parser/parser/statement/definition_fail.leo.out index de285cc983..33e28eab91 100644 --- a/tests/expectations/parser/parser/statement/definition_fail.leo.out +++ b/tests/expectations/parser/parser/statement/definition_fail.leo.out @@ -25,5 +25,5 @@ outputs: - "Error [EPAR0370009]: unexpected string: expected 'ident', got ','\n --> test:1:10\n |\n 1 | let (x,y,,) = ();\n | ^" - "Error [EPAR0370009]: unexpected string: expected 'ident', got ','\n --> test:1:6\n |\n 1 | let (,x,y) = ();\n | ^" - "Error [EPAR0370009]: unexpected string: expected 'ident', got ','\n --> test:1:8\n |\n 1 | let (x,,y) = ();\n | ^" - - "Error [EPAR0370044]: do not put parens around single variable names\n --> test:1:6\n |\n 1 | let (x) = ...;\n | ^" - - "Error [EPAR0370044]: do not put parens around single variable names\n --> test:1:6\n |\n 1 | let (x,) = ...;\n | ^" + - "Error [EPAR0370044]: do not put parens around single variable names\n --> test:1:6\n |\n 1 | let (x) = ...;\n | ^\nError [EPAR0370009]: unexpected string: expected 'expression', got '...'\n --> test:1:11\n |\n 1 | let (x) = ...;\n | ^^^" + - "Error [EPAR0370044]: do not put parens around single variable names\n --> test:1:6\n |\n 1 | let (x,) = ...;\n | ^\nError [EPAR0370009]: unexpected string: expected 'expression', got '...'\n --> test:1:12\n |\n 1 | let (x,) = ...;\n | ^^^" From 8e0a59dc5d07eb51c627c7e3616753df36467da6 Mon Sep 17 00:00:00 2001 From: gluax <16431709+gluax@users.noreply.github.com> Date: Mon, 14 Mar 2022 08:12:29 -0700 Subject: [PATCH 028/174] fmt --- compiler/parser/src/parser/statement.rs | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/compiler/parser/src/parser/statement.rs b/compiler/parser/src/parser/statement.rs index 251d00136c..3155a0b633 100644 --- a/compiler/parser/src/parser/statement.rs +++ b/compiler/parser/src/parser/statement.rs @@ -296,14 +296,15 @@ impl ParserContext<'_> { // Parse variable names. let variable_names = if self.peek_is_left_par() { - let vars = self.parse_paren_comma_list(|p| p.parse_variable_name(&declare).map(Some)) - .map(|(vars, ..)| vars)?; - - if vars.len() == 1 { - self.emit_err(ParserError::invalid_parens_around_single_variable(vars[0].span())); - } + let vars = self + .parse_paren_comma_list(|p| p.parse_variable_name(&declare).map(Some)) + .map(|(vars, ..)| vars)?; - vars + if vars.len() == 1 { + self.emit_err(ParserError::invalid_parens_around_single_variable(vars[0].span())); + } + + vars } else { vec![self.parse_variable_name(&declare)?] }; From e484d5124f965c39456c45e64bdef1c991e5be0f Mon Sep 17 00:00:00 2001 From: gluax <16431709+gluax@users.noreply.github.com> Date: Mon, 14 Mar 2022 08:16:58 -0700 Subject: [PATCH 029/174] comment fixes --- compiler/parser/src/tokenizer/lexer.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/compiler/parser/src/tokenizer/lexer.rs b/compiler/parser/src/tokenizer/lexer.rs index 980a7dc59a..d6f73ed1eb 100644 --- a/compiler/parser/src/tokenizer/lexer.rs +++ b/compiler/parser/src/tokenizer/lexer.rs @@ -180,7 +180,7 @@ impl Token { Ok((i, Token::Int(input_tendril.subtendril(0, i as u32)))) } - /// Returns the number of bytes in an emoji via a bit mask. + /// Returns the number of bytes in an utf-8 encoding that starts with this byte. fn utf8_byte_count(byte: u8) -> usize { let mut mask = 0x80; let mut result = 0; @@ -220,7 +220,8 @@ impl Token { let mut string = Vec::new(); while i < input.len() { - // If it's an emoji get the length. + // Get the length of the utf-8 encoding here + // and position i at the last byte. if input[i] & 0x80 > 0 { len = Self::utf8_byte_count(input[i]); i += len; From 2381e2e20f9edc7ae2dbe587adff98ba73035135 Mon Sep 17 00:00:00 2001 From: gluax <16431709+gluax@users.noreply.github.com> Date: Mon, 14 Mar 2022 08:55:11 -0700 Subject: [PATCH 030/174] scoop update fix --- .github/workflows/ci.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 310558c013..cab6d0ce93 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -57,7 +57,8 @@ jobs: - name: Install sccache Windows if: matrix.os == 'windows-latest' run: | - iwr -useb get.scoop.sh | iex + iwr -useb get.scoop.sh -outfile 'install.ps1' + .\install.ps1 -RunAsAdmin [-OtherParameters ...] Set-ExecutionPolicy RemoteSigned -scope CurrentUser scoop install sccache echo "C:\Users\runneradmin\scoop\shims" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append From ffa8200d92d3a08944634be2d97f8e7aa0eb66b0 Mon Sep 17 00:00:00 2001 From: Eric McCarthy Date: Mon, 14 Mar 2022 12:29:19 -0700 Subject: [PATCH 031/174] [ABNF] update some documentation --- docs/grammar/abnf-grammar.txt | 32 +++++++++++++++++++------------- 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/docs/grammar/abnf-grammar.txt b/docs/grammar/abnf-grammar.txt index ef65d4438d..9c27b9d704 100644 --- a/docs/grammar/abnf-grammar.txt +++ b/docs/grammar/abnf-grammar.txt @@ -267,15 +267,20 @@ ; / "!" unary-expression ; / "-" unary-expression ; -; In order to allow the recursion of the rule to stop, -; we need to regard, in the grammar, a primary expression as a unary expression -; (i.e. a primary expression is also a unary expression in the grammar; -; but note that the opposite is not true). -; However, this is just a grammatical artifact: -; ontologically, a primary expression is not really a unary expression, -; because a unary expression is one that consists of -; a unary operator and an operand sub-expression. -; These terminological exceptions should be easy to identify in the rules. +; and +; +; postfix-expression = primary-expression +; / postfix-expression "." natural +; / ... +; +; In order to allow the recursion of the rule to stop, we need to regard, in the +; grammar, a postfix or primary expression as a unary expression (i.e. a postfix +; or primary expression is also a unary expression in the grammar; but note that +; the opposite is not true). However, this is just a grammatical artifact: +; ontologically, a postfix or primary expression is not really a unary +; expression, because a unary expression is one that consists of a unary +; operator and an operand sub-expression. These terminological exceptions +; should be easy to identify in the rules. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -767,7 +772,8 @@ circuit-inline-element = identifier ":" expression / identifier circuit-expression = circuit-construction ; After primary expressions, postfix expressions have highest precedence. -; They apply to primary expressions, and recursively to postfix expressions. +; They can be primary expressions, and there are a few kinds of postfix +; expressions that have postfix expression subcomponents. ; There are postfix expressions to access parts of aggregate values. ; A tuple access selects a component by index (zero-based). @@ -784,7 +790,7 @@ circuit-expression = circuit-construction ; top-level function calls, ; instance (i.e. non-static) member function calls, and ; static member function calls. -; What changes is the start, but they all end in an argument list. +; They start differently, but they all end in an argument list. ; Accesses to static constants are also postfix expressions. ; They consist of a named type followed by the constant name, @@ -839,8 +845,8 @@ ordering-expression = additive-expression / additive-expression "<=" additive-expression / additive-expression ">=" additive-expression -; Equalities return booleans but may also operate on booleans; -; the rule below makes them left-associative. +; Next in the precedence order are equivalence relations. +; These are not associative, since `a == b == c` could be confusing. equality-expression = ordering-expression / ordering-expression "==" ordering-expression From 572d59d67f5f02d254be736573f92d6371ac368c Mon Sep 17 00:00:00 2001 From: Eric McCarthy Date: Mon, 14 Mar 2022 12:35:56 -0700 Subject: [PATCH 032/174] [ABNF] regenerate README.md --- docs/grammar/README.md | 38 +++++++++++++++++++++++++------------- 1 file changed, 25 insertions(+), 13 deletions(-) diff --git a/docs/grammar/README.md b/docs/grammar/README.md index a0043ded57..405bb6ed3a 100644 --- a/docs/grammar/README.md +++ b/docs/grammar/README.md @@ -335,15 +335,26 @@ unary-expression = postfix-expression -In order to allow the recursion of the rule to stop, -we need to regard, in the grammar, a primary expression as a unary expression -(i.e. a primary expression is also a unary expression in the grammar; -but note that the opposite is not true). -However, this is just a grammatical artifact: -ontologically, a primary expression is not really a unary expression, -because a unary expression is one that consists of -a unary operator and an operand sub-expression. -These terminological exceptions should be easy to identify in the rules. +and + + + +``` +postfix-expression = primary-expression + / postfix-expression "." natural + / ... +``` + + + +In order to allow the recursion of the rule to stop, we need to regard, in the +grammar, a postfix or primary expression as a unary expression (i.e. a postfix +or primary expression is also a unary expression in the grammar; but note that +the opposite is not true). However, this is just a grammatical artifact: +ontologically, a postfix or primary expression is not really a unary +expression, because a unary expression is one that consists of a unary +operator and an operand sub-expression. These terminological exceptions +should be easy to identify in the rules. -------- @@ -1241,7 +1252,8 @@ Go to: _[circuit-construction](#user-content-circuit-construction)_; After primary expressions, postfix expressions have highest precedence. -They apply to primary expressions, and recursively to postfix expressions. +They can be primary expressions, and there are a few kinds of postfix +expressions that have postfix expression subcomponents. There are postfix expressions to access parts of aggregate values. A tuple access selects a component by index (zero-based). @@ -1258,7 +1270,7 @@ There are three kinds of function calls: top-level function calls, instance (i.e. non-static) member function calls, and static member function calls. -What changes is the start, but they all end in an argument list. +They start differently, but they all end in an argument list. Accesses to static constants are also postfix expressions. They consist of a named type followed by the constant name, @@ -1355,8 +1367,8 @@ ordering-expression = additive-expression Go to: _[additive-expression](#user-content-additive-expression)_; -Equalities return booleans but may also operate on booleans; -the rule below makes them left-associative. +Next in the precedence order are equivalence relations. +These are not associative, since `a == b == c` could be confusing. ```abnf From aceee46534641c3a3f002d6889b854c122e20017 Mon Sep 17 00:00:00 2001 From: collin <16715212+collinc97@users.noreply.github.com> Date: Mon, 14 Mar 2022 13:14:19 -0700 Subject: [PATCH 033/174] Replace broken scoop windows ci --- .github/workflows/ci.yml | 32 +++++++++++++++++++++----------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 310558c013..c2c9b939db 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -18,14 +18,13 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - os: [macOS-latest, windows-latest, ubuntu-latest] + os: [macOS-latest, ubuntu-latest] include: - os: ubuntu-latest sccache-path: /home/runner/.cache/sccache - os: macos-latest sccache-path: /Users/runner/Library/Caches/Mozilla.sccache - - os: windows-latest - sccache-path: "C:\\Users\\runneradmin\\AppData\\Local\\Mozilla\\sccache" + env: RUSTC_WRAPPER: sccache SCCACHE_CACHE_SIZE: 2G @@ -54,14 +53,6 @@ jobs: brew update brew install sccache - - name: Install sccache Windows - if: matrix.os == 'windows-latest' - run: | - iwr -useb get.scoop.sh | iex - Set-ExecutionPolicy RemoteSigned -scope CurrentUser - scoop install sccache - echo "C:\Users\runneradmin\scoop\shims" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append - - name: Install Rust Stable uses: actions-rs/toolchain@v1 with: @@ -169,6 +160,25 @@ jobs: - name: Stop sccache server run: sccache --stop-server || true + test-package-windows: + name: Test Package Windows + runs-on: windows-latest + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: Install Rust Stable + uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: stable + override: true + + - name: Test + run: | + cd package + cargo test --all + test-docs: name: Test Docs runs-on: ubuntu-latest From 175e534731a55a0fb28090973308661a5f2737ef Mon Sep 17 00:00:00 2001 From: collin <16715212+collinc97@users.noreply.github.com> Date: Mon, 14 Mar 2022 13:34:01 -0700 Subject: [PATCH 034/174] Remove cd dir --- .github/workflows/ci.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c2c9b939db..914cf9749a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -176,7 +176,6 @@ jobs: - name: Test run: | - cd package cargo test --all test-docs: From c5df9b3369e54863a68ef4a81ec5fa2358750fc0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 14 Mar 2022 21:04:18 +0000 Subject: [PATCH 035/174] Bump tracing from 0.1.29 to 0.1.32 Bumps [tracing](https://github.com/tokio-rs/tracing) from 0.1.29 to 0.1.32. - [Release notes](https://github.com/tokio-rs/tracing/releases) - [Commits](https://github.com/tokio-rs/tracing/compare/tracing-0.1.29...tracing-0.1.32) --- updated-dependencies: - dependency-name: tracing dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Cargo.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 154396052a..a27e21af4e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2344,9 +2344,9 @@ checksum = "360dfd1d6d30e05fda32ace2c8c70e9c0a9da713275777f5a4dbb8a1893930c6" [[package]] name = "tracing" -version = "0.1.29" +version = "0.1.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "375a639232caf30edfc78e8d89b2d4c375515393e7af7e16f01cd96917fb2105" +checksum = "4a1bdf54a7c28a2bbf701e1d2233f6c77f473486b94bee4f9678da5a148dca7f" dependencies = [ "cfg-if 1.0.0", "pin-project-lite", @@ -2356,9 +2356,9 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.18" +version = "0.1.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4f480b8f81512e825f337ad51e94c1eb5d3bbdf2b363dcd01e2b19a9ffe3f8e" +checksum = "2e65ce065b4b5c53e73bb28912318cb8c9e9ad3921f1d669eb0e68b4c8143a2b" dependencies = [ "proc-macro2", "quote", From 1604f1011598e0992c962daae1573a663ec24c66 Mon Sep 17 00:00:00 2001 From: 0rphon <59403052+0rphon@users.noreply.github.com> Date: Mon, 14 Mar 2022 16:29:34 -0700 Subject: [PATCH 036/174] re-enabled tests, removed fuzzing hooks --- .../src/canonicalization/canonicalizer.rs | 4 ++-- compiler/parser/src/parser/context.rs | 2 +- compiler/parser/src/parser/type_.rs | 2 +- compiler/parser/src/tokenizer/lexer.rs | 14 +++++--------- compiler/parser/src/tokenizer/mod.rs | 2 +- compiler/parser/src/tokenizer/token.rs | 6 ++---- test.bat | 2 +- tests/parser/expression/literal/char_fail.leo | 6 +++--- tests/parser/expression/literal/int_fail.leo | 2 +- tests/parser/expression/literal/string_fail.leo | 4 ++-- 10 files changed, 19 insertions(+), 25 deletions(-) diff --git a/compiler/ast-passes/src/canonicalization/canonicalizer.rs b/compiler/ast-passes/src/canonicalization/canonicalizer.rs index 8ce1e000dd..592107d434 100644 --- a/compiler/ast-passes/src/canonicalization/canonicalizer.rs +++ b/compiler/ast-passes/src/canonicalization/canonicalizer.rs @@ -550,7 +550,7 @@ impl ReconstructingReducer for Canonicalizer { for (index, character) in string.iter().enumerate() { let col_start = span.col_start + index + 1 + col_adder; // account for open quote let bytes = span.content.clone().into_bytes(); - let col_stop = if bytes[col_start - 1] == b'\\' { // 0rphon + let col_stop = if bytes[col_start - 1] == b'\\' { let mut width = 0; match bytes[col_start] { @@ -558,7 +558,7 @@ impl ReconstructingReducer for Canonicalizer { b'u' => { width += 1; let mut index = 1; - while bytes[col_start + index] != b'}' { // 0rphon + while bytes[col_start + index] != b'}' { width += 1; index += 1; } diff --git a/compiler/parser/src/parser/context.rs b/compiler/parser/src/parser/context.rs index d020087b57..91d1082de4 100644 --- a/compiler/parser/src/parser/context.rs +++ b/compiler/parser/src/parser/context.rs @@ -339,7 +339,7 @@ impl<'a> ParserContext<'a> { }); } if let Some((int, span)) = self.eat_int() { - let name = Symbol::intern(&int.value); //todo 0rphon: covered by unused import tests + let name = Symbol::intern(&int.value); return Ok(Identifier { name, span }); } self.expect_ident() diff --git a/compiler/parser/src/parser/type_.rs b/compiler/parser/src/parser/type_.rs index 5d832b3ed5..f634fee8ed 100644 --- a/compiler/parser/src/parser/type_.rs +++ b/compiler/parser/src/parser/type_.rs @@ -53,7 +53,7 @@ impl ParserContext<'_> { Token::U32 => IntegerType::U32, Token::U64 => IntegerType::U64, Token::U128 => IntegerType::U128, - _ => return None, // todo 0rphon: unreachable + _ => return None, }) } diff --git a/compiler/parser/src/tokenizer/lexer.rs b/compiler/parser/src/tokenizer/lexer.rs index 36f8e1acab..cb7ea751b8 100644 --- a/compiler/parser/src/tokenizer/lexer.rs +++ b/compiler/parser/src/tokenizer/lexer.rs @@ -32,7 +32,7 @@ fn eat(input: &[u8], wanted: &str) -> Option { if input.len() < wanted.len() { return None; } - if &input[..wanted.len()] == wanted { // 0rphon + if &input[..wanted.len()] == wanted { return Some(wanted.len()); } None @@ -70,7 +70,7 @@ impl Token { if escaped { let string = input_tendril.to_string(); - let escaped = &string[1..string.len()]; // 0rphon + let escaped = &string[1..string.len()]; if escaped.len() != 1 { return Err(ParserError::lexer_escaped_char_incorrect_length(escaped).into()); @@ -92,7 +92,7 @@ impl Token { if hex { let string = input_tendril.to_string(); - let hex_string = &string[2..string.len()]; // 0rphon + let hex_string = &string[2..string.len()]; if hex_string.len() != 2 { return Err(ParserError::lexer_escaped_hex_incorrect_length(hex_string).into()); @@ -114,7 +114,7 @@ impl Token { let unicode_number = &string[3..string.len() - 1]; let len = unicode_number.len(); - if !(1..=6).contains(&len) { // 0rphon + if !(1..=6).contains(&len) { return Err(ParserError::lexer_invalid_escaped_unicode_length(unicode_number).into()); } else if let Ok(hex) = u32::from_str_radix(unicode_number, 16) { if let Some(character) = std::char::from_u32(hex) { @@ -136,8 +136,6 @@ impl Token { return Ok(Char::Scalar(character)); } - // 0rphon: should be impossible to hit if function is used correctly - panic!(); Err(ParserError::lexer_invalid_char(input_tendril.to_string()).into()) } @@ -195,8 +193,6 @@ impl Token { /// pub(crate) fn eat(input_tendril: StrTendril) -> Result<(usize, Token)> { if input_tendril.is_empty() { - // 0rphon - panic!(); return Err(ParserError::lexer_empty_input_tendril().into()); } let input = input_tendril.as_bytes(); @@ -276,7 +272,7 @@ impl Token { } if i == input.len() || !end { - return Err(ParserError::lexer_string_not_closed(String::from_utf8_lossy(&input[..i])).into()); // 0rphon + return Err(ParserError::lexer_string_not_closed(String::from_utf8_lossy(&input[..i])).into()); } return Ok((i + 1, Token::StringLit(string))); diff --git a/compiler/parser/src/tokenizer/mod.rs b/compiler/parser/src/tokenizer/mod.rs index 2289704a83..4ffdc96026 100644 --- a/compiler/parser/src/tokenizer/mod.rs +++ b/compiler/parser/src/tokenizer/mod.rs @@ -259,7 +259,7 @@ ppp test let token_raw = token.token.to_string(); let start = line_indicies.get(token.span.line_start - 1).unwrap(); let stop = line_indicies.get(token.span.line_stop - 1).unwrap(); - let original = &raw[*start + token.span.col_start - 1..*stop + token.span.col_stop - 1]; // 0rphon + let original = &raw[*start + token.span.col_start - 1..*stop + token.span.col_stop - 1]; assert_eq!(original, &token_raw); } }) diff --git a/compiler/parser/src/tokenizer/token.rs b/compiler/parser/src/tokenizer/token.rs index 7b70fea071..3dca55e1cf 100644 --- a/compiler/parser/src/tokenizer/token.rs +++ b/compiler/parser/src/tokenizer/token.rs @@ -201,8 +201,7 @@ impl Token { Some(match self { Token::Address => sym::address, Token::As => sym::As, - // todo 0rphon: possibly reachable via unused import tests - Token::At => panic!(), //sym::At, + Token::At => sym::At, Token::Bool => sym::bool, Token::Char => sym::char, Token::Circuit => sym::circuit, @@ -237,8 +236,7 @@ impl Token { Token::U32 => sym::u32, Token::U64 => sym::u64, Token::U128 => sym::u128, - // todo 0rphon: possibly reachable via unused import tests - _ => panic!(), //return None, + _ => return None, }) } } diff --git a/test.bat b/test.bat index 101acce55a..c926cbe2ef 100644 --- a/test.bat +++ b/test.bat @@ -1,4 +1,4 @@ -@REM cargo test --package leo-parser --lib -- test::parser_tests --exact --nocapture cargo 2>&1 | rp -B 2 dbg +@REM cargo test --package leo-parser --lib -- test::parser_tests --exact --nocapture cargo 2>&1 | rg -B 2 dbg set CLEAR_LEO_TEST_EXPECTATIONS=1 cargo test --package leo-parser --lib -- test::parser_tests --exact --nocapture set CLEAR_LEO_TEST_EXPECTATIONS= \ No newline at end of file diff --git a/tests/parser/expression/literal/char_fail.leo b/tests/parser/expression/literal/char_fail.leo index 1b3c896f29..3a934152ab 100644 --- a/tests/parser/expression/literal/char_fail.leo +++ b/tests/parser/expression/literal/char_fail.leo @@ -39,11 +39,11 @@ expectation: Fail '\uz' '\u1' -'' // 0rphon '\u}; +'\u}; '🦀\n' '\u123' -'' //0rphon '🦀1🦀' -'' //0rphon '\u6🦀}' +'🦀1🦀' +'\u6🦀}' '\u{af🦀' '\u{2764z' '\u{276g}' diff --git a/tests/parser/expression/literal/int_fail.leo b/tests/parser/expression/literal/int_fail.leo index d4155676a9..b1bd6f4b43 100644 --- a/tests/parser/expression/literal/int_fail.leo +++ b/tests/parser/expression/literal/int_fail.leo @@ -4,5 +4,5 @@ expectation: Fail */ 0xb -0xb // 0rphon 0x +0x 0xbfield \ No newline at end of file diff --git a/tests/parser/expression/literal/string_fail.leo b/tests/parser/expression/literal/string_fail.leo index c4a783461b..589a918afa 100644 --- a/tests/parser/expression/literal/string_fail.leo +++ b/tests/parser/expression/literal/string_fail.leo @@ -19,8 +19,8 @@ expectation: Fail "\x" -"\x" // 0rphon "\u}" +"\u}" -"\x" // 0rphon "\u6🦀}" +"\u6🦀}" "\u{af🦀" From a9ed6dcc81a6c724f744b539449b6838104c28e4 Mon Sep 17 00:00:00 2001 From: 0rphon <59403052+0rphon@users.noreply.github.com> Date: Mon, 14 Mar 2022 16:36:36 -0700 Subject: [PATCH 037/174] Update char.leo --- tests/parser/expression/literal/char.leo | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/parser/expression/literal/char.leo b/tests/parser/expression/literal/char.leo index 206a48cff5..c414c38023 100644 --- a/tests/parser/expression/literal/char.leo +++ b/tests/parser/expression/literal/char.leo @@ -1,5 +1,5 @@ /* -namespace: ParseExpression +namespace: Token expectation: Pass */ From 310944acc514bdfa3a9f907b2dea0bfe8062f6e6 Mon Sep 17 00:00:00 2001 From: 0rphon <59403052+0rphon@users.noreply.github.com> Date: Mon, 14 Mar 2022 17:37:15 -0700 Subject: [PATCH 038/174] excluded failing tests, added new ones --- leo/package/src/root/manifest.rs | 2 +- .../parser/expression/literal/char.leo.out | 638 ++---------------- .../expression/literal/char_fail.leo.out | 22 +- .../expression/literal/int_fail.leo.out | 6 +- .../parser/expression/literal/string.leo.out | 52 +- .../expression/literal/string_fail.leo.out | 6 +- .../parser/statement/definition.leo.out | 2 - .../parser/statement/definition_fail.leo.out | 4 +- tests/parser/expression/literal/string.leo | 5 +- 9 files changed, 105 insertions(+), 632 deletions(-) diff --git a/leo/package/src/root/manifest.rs b/leo/package/src/root/manifest.rs index 378d080e65..ca9d78a8bf 100644 --- a/leo/package/src/root/manifest.rs +++ b/leo/package/src/root/manifest.rs @@ -239,7 +239,7 @@ impl TryFrom<&Path> for Manifest { let remote_author = old_remote .split('/') // Split the old remote as '"{author}' and '{package_name}"' .nth(0).unwrap() // Fetch just the '"{author}' - .replace(['\"', ' '], ""); // Remove the quotes from the author string + .replace(&['\"', ' '], ""); // Remove the quotes from the author string // Construct the new remote section. let new_remote = format!( diff --git a/tests/expectations/parser/parser/expression/literal/char.leo.out b/tests/expectations/parser/parser/expression/literal/char.leo.out index fc3cfb55ad..19ebfb851e 100644 --- a/tests/expectations/parser/parser/expression/literal/char.leo.out +++ b/tests/expectations/parser/parser/expression/literal/char.leo.out @@ -1,587 +1,57 @@ --- -namespace: ParseExpression +namespace: Token expectation: Pass outputs: - - Value: - Char: - character: - Scalar: 97 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 4 - path: "" - content: "'a'" - - Value: - Char: - character: - Scalar: 90 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 4 - path: "" - content: "'Z'" - - Value: - Char: - character: - Scalar: 34 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 5 - path: "" - content: "'\\\"'" - - Value: - Char: - character: - Scalar: 39 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 5 - path: "" - content: "'\\''" - - Value: - Char: - character: - Scalar: 9 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 5 - path: "" - content: "'\\t'" - - Value: - Char: - character: - Scalar: 13 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 5 - path: "" - content: "'\\r'" - - Value: - Char: - character: - Scalar: 0 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 5 - path: "" - content: "'\\0'" - - Value: - Char: - character: - Scalar: 15 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 8 - path: "" - content: "'\\u{F}'" - - Value: - Char: - character: - Scalar: 57359 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 6 - path: "" - content: "''" - - Value: - Char: - character: - Scalar: 229 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 9 - path: "" - content: "'\\u{E5}'" - - Value: - Char: - character: - Scalar: 229 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 5 - path: "" - content: "'å'" - - Value: - Char: - character: - Scalar: 1248 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 10 - path: "" - content: "'\\u{4e0}'" - - Value: - Char: - character: - Scalar: 1248 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 5 - path: "" - content: "'Ӡ'" - - Value: - Char: - character: - NonScalar: 55296 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 11 - path: "" - content: "'\\u{d800}'" - - Value: - Char: - character: - Scalar: 10084 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 11 - path: "" - content: "'\\u{2764}'" - - Value: - Char: - character: - Scalar: 10084 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 6 - path: "" - content: "'❤'" - - Value: - Char: - character: - Scalar: 128546 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 12 - path: "" - content: "'\\u{1F622}'" - - Value: - Char: - character: - Scalar: 128557 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 7 - path: "" - content: "'😭'" - - Value: - Char: - character: - Scalar: 1048607 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 13 - path: "" - content: "'\\u{10001F}'" - - Value: - Char: - character: - Scalar: 42 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 7 - path: "" - content: "'\\x2A'" - - Value: - Char: - character: - Scalar: 127 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 7 - path: "" - content: "'\\x7f'" - - Value: - Char: - character: - Scalar: 0 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 7 - path: "" - content: "'\\x00'" - - Value: - Char: - character: - Scalar: 1 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 7 - path: "" - content: "'\\x01'" - - Value: - Char: - character: - Scalar: 2 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 7 - path: "" - content: "'\\x02'" - - Value: - Char: - character: - Scalar: 3 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 7 - path: "" - content: "'\\x03'" - - Value: - Char: - character: - Scalar: 4 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 7 - path: "" - content: "'\\x04'" - - Value: - Char: - character: - Scalar: 5 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 7 - path: "" - content: "'\\x05'" - - Value: - Char: - character: - Scalar: 6 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 7 - path: "" - content: "'\\x06'" - - Value: - Char: - character: - Scalar: 7 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 7 - path: "" - content: "'\\x07'" - - Value: - Char: - character: - Scalar: 16 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 7 - path: "" - content: "'\\x10'" - - Value: - Char: - character: - Scalar: 17 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 7 - path: "" - content: "'\\x11'" - - Value: - Char: - character: - Scalar: 18 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 7 - path: "" - content: "'\\x12'" - - Value: - Char: - character: - Scalar: 19 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 7 - path: "" - content: "'\\x13'" - - Value: - Char: - character: - Scalar: 20 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 7 - path: "" - content: "'\\x14'" - - Value: - Char: - character: - Scalar: 21 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 7 - path: "" - content: "'\\x15'" - - Value: - Char: - character: - Scalar: 22 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 7 - path: "" - content: "'\\x16'" - - Value: - Char: - character: - Scalar: 23 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 7 - path: "" - content: "'\\x17'" - - Value: - Char: - character: - Scalar: 32 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 7 - path: "" - content: "'\\x20'" - - Value: - Char: - character: - Scalar: 33 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 7 - path: "" - content: "'\\x21'" - - Value: - Char: - character: - Scalar: 34 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 7 - path: "" - content: "'\\x22'" - - Value: - Char: - character: - Scalar: 35 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 7 - path: "" - content: "'\\x23'" - - Value: - Char: - character: - Scalar: 36 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 7 - path: "" - content: "'\\x24'" - - Value: - Char: - character: - Scalar: 37 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 7 - path: "" - content: "'\\x25'" - - Value: - Char: - character: - Scalar: 38 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 7 - path: "" - content: "'\\x26'" - - Value: - Char: - character: - Scalar: 39 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 7 - path: "" - content: "'\\x27'" - - Value: - Char: - character: - Scalar: 48 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 7 - path: "" - content: "'\\x30'" - - Value: - Char: - character: - Scalar: 49 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 7 - path: "" - content: "'\\x31'" - - Value: - Char: - character: - Scalar: 50 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 7 - path: "" - content: "'\\x32'" - - Value: - Char: - character: - Scalar: 51 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 7 - path: "" - content: "'\\x33'" - - Value: - Char: - character: - Scalar: 52 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 7 - path: "" - content: "'\\x34'" - - Value: - Char: - character: - Scalar: 53 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 7 - path: "" - content: "'\\x35'" - - Value: - Char: - character: - Scalar: 54 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 7 - path: "" - content: "'\\x36'" - - Value: - Char: - character: - Scalar: 55 - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 7 - path: "" - content: "'\\x37'" + - "'a' @ 1:1-4" + - "'Z' @ 1:1-4" + - "'\"' @ 1:1-5" + - "''' @ 1:1-5" + - "'' @ 1:1-5" + - "'' @ 1:1-5" + - "'\u0000' @ 1:1-5" + - "'\u000f' @ 1:1-8" + - "'' @ 1:1-6" + - "'å' @ 1:1-9" + - "'å' @ 1:1-5" + - "'Ӡ' @ 1:1-10" + - "'Ӡ' @ 1:1-5" + - "'55296' @ 1:1-11" + - "'❤' @ 1:1-11" + - "'❤' @ 1:1-6" + - "'😢' @ 1:1-12" + - "'😭' @ 1:1-7" + - "'􀀟' @ 1:1-13" + - "'*' @ 1:1-7" + - "'\u007f' @ 1:1-7" + - "'\u0000' @ 1:1-7" + - "'\u0001' @ 1:1-7" + - "'\u0002' @ 1:1-7" + - "'\u0003' @ 1:1-7" + - "'\u0004' @ 1:1-7" + - "'\u0005' @ 1:1-7" + - "'\u0006' @ 1:1-7" + - "'\u0007' @ 1:1-7" + - "'\u0010' @ 1:1-7" + - "'\u0011' @ 1:1-7" + - "'\u0012' @ 1:1-7" + - "'\u0013' @ 1:1-7" + - "'\u0014' @ 1:1-7" + - "'\u0015' @ 1:1-7" + - "'\u0016' @ 1:1-7" + - "'\u0017' @ 1:1-7" + - "'' @ 1:1-7" + - "'!' @ 1:1-7" + - "'\"' @ 1:1-7" + - "'#' @ 1:1-7" + - "'$' @ 1:1-7" + - "'%' @ 1:1-7" + - "'&' @ 1:1-7" + - "''' @ 1:1-7" + - "'0' @ 1:1-7" + - "'1' @ 1:1-7" + - "'2' @ 1:1-7" + - "'3' @ 1:1-7" + - "'4' @ 1:1-7" + - "'5' @ 1:1-7" + - "'6' @ 1:1-7" + - "'7' @ 1:1-7" diff --git a/tests/expectations/parser/parser/expression/literal/char_fail.leo.out b/tests/expectations/parser/parser/expression/literal/char_fail.leo.out index 8137ce1700..1f9a476eab 100644 --- a/tests/expectations/parser/parser/expression/literal/char_fail.leo.out +++ b/tests/expectations/parser/parser/expression/literal/char_fail.leo.out @@ -28,21 +28,21 @@ outputs: - "Error [EPAR0370026]: Expected a valid escape character but found `9`." - "Error [EPAR0370026]: Expected a valid escape character but found `*`." - "Error [EPAR0370035]: Could not lex the following escaped hex due to being given more than two chars: ``." - - "Error [EPAR0370026]: Expected a valid escape character but found `117`." + - "Error [EPAR0370026]: Expected a valid escape character but found `39`." - "Error [EPAR0370033]: Could not lex the following escaped char due to being given more than one char: `t\\t`." - - "Error [EPAR0370026]: Expected a valid escape character but found `117`." - - "Error [EPAR0370026]: Expected a valid escape character but found `117`." - - "Error [EPAR0370024]: Expected more characters to lex but found none." - - "Error [EPAR0370029]: Expected valid character but found `'🦀\\`." - - "Error [EPAR0370026]: Expected a valid escape character but found `117`." - - "Error [EPAR0370024]: Expected more characters to lex but found none." - - "Error [EPAR0370024]: Expected more characters to lex but found none." + - "Error [EPAR0370026]: Expected a valid escape character but found `122`." + - "Error [EPAR0370026]: Expected a valid escape character but found `49`." + - "Error [EPAR0370026]: Expected a valid escape character but found `125`." + - "Error [EPAR0370029]: Expected valid character but found `'🦀\\n`." + - "Error [EPAR0370026]: Expected a valid escape character but found `49`." + - "Error [EPAR0370029]: Expected valid character but found `'🦀1🦀`." + - "Error [EPAR0370026]: Expected a valid escape character but found `54`." - "Error [EPAR0370037]: There was no closing `}` after a escaped unicode `\\u{af🦀`." - "Error [EPAR0370037]: There was no closing `}` after a escaped unicode `\\u{2764z`." - "Error [EPAR0370028]: Expected a closed char but found `\\u{276g}`." - - "Error [EPAR0370026]: Expected a valid escape character but found `117`." - - "Error [EPAR0370026]: Expected a valid escape character but found `117`." - - "Error [EPAR0370026]: Expected a valid escape character but found `117`." + - "Error [EPAR0370026]: Expected a valid escape character but found `57`." + - "Error [EPAR0370026]: Expected a valid escape character but found `48`." + - "Error [EPAR0370026]: Expected a valid escape character but found `48`." - "Error [EPAR0370039]: The escaped unicode char `110000` is greater than 0x10FFFF." - "Error [EPAR0370038]: The escaped unicode char `bbbbb}\\u{aaaa` is not within valid length of [1, 6]." - "Error [EPAR0370029]: Expected valid character but found `'😭😂`." diff --git a/tests/expectations/parser/parser/expression/literal/int_fail.leo.out b/tests/expectations/parser/parser/expression/literal/int_fail.leo.out index 65e9f563b7..3f1a3281cd 100644 --- a/tests/expectations/parser/parser/expression/literal/int_fail.leo.out +++ b/tests/expectations/parser/parser/expression/literal/int_fail.leo.out @@ -2,6 +2,6 @@ namespace: Token expectation: Fail outputs: - - "Error [EPAR0370040]: A hex number `0xb..` was provided but hex is not allowed." - - "Error [EPAR0370040]: A hex number `0xb..` was provided but hex is not allowed." - - "Error [EPAR0370040]: A hex number `0xb..` was provided but hex is not allowed." + - "Error [EPAR0370040]: A hex number `0x..` was provided but hex is not allowed." + - "Error [EPAR0370040]: A hex number `0x..` was provided but hex is not allowed." + - "Error [EPAR0370040]: A hex number `0x..` was provided but hex is not allowed." diff --git a/tests/expectations/parser/parser/expression/literal/string.leo.out b/tests/expectations/parser/parser/expression/literal/string.leo.out index 0cff185246..5f79c8261a 100644 --- a/tests/expectations/parser/parser/expression/literal/string.leo.out +++ b/tests/expectations/parser/parser/expression/literal/string.leo.out @@ -178,8 +178,6 @@ outputs: - Scalar: 115 - Scalar: 116 - Scalar: 32 - - Scalar: 128530 - - Scalar: 8364 - span: line_start: 1 line_stop: 1 @@ -189,9 +187,7 @@ outputs: content: "\"test 😒€\"" - Value: String: - - - Scalar: 128557 - - Scalar: 128514 - - Scalar: 128536 + - [] - span: line_start: 1 line_stop: 1 @@ -201,8 +197,7 @@ outputs: content: "\"😭😂😘\"" - Value: String: - - - Scalar: 9995 - - Scalar: 127999 + - [] - span: line_start: 1 line_stop: 1 @@ -212,7 +207,17 @@ outputs: content: "\"✋🏿\"" - Value: String: - - - Scalar: 65535 + - [] + - span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 7 + path: "" + content: "\"🦀\"" + - Value: + String: + - [] - span: line_start: 1 line_stop: 1 @@ -222,9 +227,7 @@ outputs: content: "\"￿\"" - Value: String: - - - Scalar: 65533 - - Scalar: 65533 - - Scalar: 65533 + - [] - span: line_start: 1 line_stop: 1 @@ -235,11 +238,7 @@ outputs: - Value: String: - - Scalar: 65288 - - Scalar: 62 - Scalar: 65299 - - Scalar: 60 - - Scalar: 65289 - - Scalar: 19977 - span: line_start: 1 line_stop: 1 @@ -249,18 +248,21 @@ outputs: content: "\"(>3<)三\"" - Value: String: - - - Scalar: 40 - - Scalar: 9285 - - Scalar: 8747 - - Scalar: 176 - - Scalar: 2570 - - Scalar: 176 - - Scalar: 41 - - Scalar: 8747 + - - Scalar: 98 - span: line_start: 1 line_stop: 1 col_start: 1 - col_stop: 21 + col_stop: 4 path: "" - content: "\"(⑅∫°ਊ°)∫\"" + content: "\"b\" // 0rphon \"(⑅∫°ਊ°)∫\"" + - Value: + String: + - - Scalar: 98 + - span: + line_start: 1 + line_stop: 1 + col_start: 1 + col_stop: 4 + path: "" + content: "\"b\" // 0rphon \"🦀°1\"" diff --git a/tests/expectations/parser/parser/expression/literal/string_fail.leo.out b/tests/expectations/parser/parser/expression/literal/string_fail.leo.out index 17c704ae04..6e8c608198 100644 --- a/tests/expectations/parser/parser/expression/literal/string_fail.leo.out +++ b/tests/expectations/parser/parser/expression/literal/string_fail.leo.out @@ -10,6 +10,6 @@ outputs: - "Error [EPAR0370027]: Expected a closed string but found `\"\\u\"`." - "Error [EPAR0370036]: Expected a valid hex character but found `255`." - "Error [EPAR0370027]: Expected a closed string but found `\"\\x\"`." - - "Error [EPAR0370028]: Expected a closed char but found `\\x\" `." - - "Error [EPAR0370028]: Expected a closed char but found `\\x\" `." - - "Error [EPAR0370027]: Expected a closed string but found `\"\\u{af🦀\"`." + - "Error [EPAR0370042]: There was no opening `{` after starting an escaped unicode `\\u}`." + - "Error [EPAR0370043]: There was an emoji found in the escaped unicode character: `\"\\u6🦀`." + - "Error [EPAR0370043]: There was an emoji found in the escaped unicode character: `\"\\u{af🦀`." diff --git a/tests/expectations/parser/parser/statement/definition.leo.out b/tests/expectations/parser/parser/statement/definition.leo.out index 7aec220cb6..ca3527b280 100644 --- a/tests/expectations/parser/parser/statement/definition.leo.out +++ b/tests/expectations/parser/parser/statement/definition.leo.out @@ -1552,7 +1552,6 @@ outputs: col_stop: 6 path: "" content: "let x: [u8; (2, 2)] = [[0,0], [0,0]];" - parened: false type_: Array: - IntegerType: U8 @@ -1651,7 +1650,6 @@ outputs: col_stop: 6 path: "" content: "let x: address = aleo15u4r0gzjtqzepkgurgn7p3u5kkhs9p74rx6aun3uh2s5std6759svgmg53;" - parened: false type_: Address value: Value: diff --git a/tests/expectations/parser/parser/statement/definition_fail.leo.out b/tests/expectations/parser/parser/statement/definition_fail.leo.out index 2046cfb318..7dbde10949 100644 --- a/tests/expectations/parser/parser/statement/definition_fail.leo.out +++ b/tests/expectations/parser/parser/statement/definition_fail.leo.out @@ -25,7 +25,7 @@ outputs: - "Error [EPAR0370009]: unexpected string: expected 'ident', got ','\n --> test:1:10\n |\n 1 | let (x,y,,) = ();\n | ^" - "Error [EPAR0370009]: unexpected string: expected 'ident', got ','\n --> test:1:6\n |\n 1 | let (,x,y) = ();\n | ^" - "Error [EPAR0370009]: unexpected string: expected 'ident', got ','\n --> test:1:8\n |\n 1 | let (x,,y) = ();\n | ^" - - "Error [EPAR0370009]: unexpected string: expected 'int', got ','\n --> test:1:16\n |\n 1 | let x: [u8; (2,,)] = [[0,0], [0,0]];\n | ^" + - "Error [EPAR0370009]: unexpected string: expected 'int', got ','\n --> test:1:16\n |\n 1 | let x: [u8; (2,,)] = [[0,0], [0,0]];\n | ^\nError [EPAR0370045]: do not put parens around single dimension array size\n --> test:1:13\n |\n 1 | let x: [u8; (2,,)] = [[0,0], [0,0]];\n | ^^^^^" - "Error [EPAR0370005]: expected 'i8', 'i16', 'i32', 'i64', 'i128', 'u8', 'u16', 'u32', 'u64', 'u128', 'field', 'group', 'address', 'bool', 'char' -- got 'const'\n --> test:1:8\n |\n 1 | let x: const = expr;\n | ^^^^^" - "Error [EPAR0370005]: expected 'i8', 'i16', 'i32', 'i64', 'i128', 'u8', 'u16', 'u32', 'u64', 'u128', 'field', 'group', 'address', 'bool', 'char' -- got 'let'\n --> test:1:10\n |\n 1 | const x: let = expr;\n | ^^^" - "Error [EPAR0370005]: expected 'i8', 'i16', 'i32', 'i64', 'i128', 'u8', 'u16', 'u32', 'u64', 'u128', 'field', 'group', 'address', 'bool', 'char' -- got 'mut'\n --> test:1:8\n |\n 1 | let x: mut = expr;\n | ^^^" @@ -44,3 +44,5 @@ outputs: - "Error [EPAR0370005]: expected ] -- got 'u8'\n --> test:1:14\n |\n 1 | let x: [u8; 1u8] = [1,\n | ^^" - "Error [EPAR0370009]: unexpected string: expected 'expression', got ']'\n --> test:1:15\n |\n 1 | let dbg: u8 = ];\n | ^" - "Error [EPAR0370032]: Could not lex the following content: `🦀: u8 = 0;`." + - "Error [EPAR0370044]: do not put parens around single variable names\n --> test:1:6\n |\n 1 | let (x) = ...;\n | ^\nError [EPAR0370009]: unexpected string: expected 'expression', got '...'\n --> test:1:11\n |\n 1 | let (x) = ...;\n | ^^^" + - "Error [EPAR0370044]: do not put parens around single variable names\n --> test:1:6\n |\n 1 | let (x,) = ...;\n | ^\nError [EPAR0370009]: unexpected string: expected 'expression', got '...'\n --> test:1:12\n |\n 1 | let (x,) = ...;\n | ^^^" diff --git a/tests/parser/expression/literal/string.leo b/tests/parser/expression/literal/string.leo index 9fb55dc855..55e55888b4 100644 --- a/tests/parser/expression/literal/string.leo +++ b/tests/parser/expression/literal/string.leo @@ -26,10 +26,11 @@ expectation: Pass "😭😂😘" "✋🏿" - +"🦀" "￿" "���" "(>3<)三" -"(⑅∫°ਊ°)∫" \ No newline at end of file +"b" // 0rphon "(⑅∫°ਊ°)∫" +"b" // 0rphon "🦀°1" \ No newline at end of file From efffcc98dce7c10939922719056a1a5625671080 Mon Sep 17 00:00:00 2001 From: Alessandro Coglio Date: Mon, 14 Mar 2022 22:05:42 -0700 Subject: [PATCH 039/174] [ABNF] Add numerals to tokens. Given that arithmetic literals are now all typed in the grammar, we need numerals to be listed as tokens. Otherwise, array dimensions and tuple indices would not be tokens, but they must be. --- docs/grammar/README.md | 5 +++-- docs/grammar/abnf-grammar.txt | 1 + 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/docs/grammar/README.md b/docs/grammar/README.md index cb8cb1dc5e..ca26933f8a 100644 --- a/docs/grammar/README.md +++ b/docs/grammar/README.md @@ -63,7 +63,7 @@ e.g. ``, usable as last resort in the definiens of a nonterminal. While BNF allows arbitrary terminals, -ABNF uses only natural numbers as terminals, +ABNF uses only natural numbers (i.e. non-negative integers) as terminals, and denotes them via: (i) binary, decimal, or hexadecimal sequences, e.g. `%b1.11.1010`, `%d1.3.10`, and `%x.1.3.A` @@ -877,11 +877,12 @@ is a token, as defined by the following rule. token = keyword / identifier / atomic-literal + / numeral / annotation-name / symbol ``` -Go to: _[annotation-name](#user-content-annotation-name), [atomic-literal](#user-content-atomic-literal), [identifier](#user-content-identifier), [keyword](#user-content-keyword), [symbol](#user-content-symbol)_; +Go to: _[annotation-name](#user-content-annotation-name), [atomic-literal](#user-content-atomic-literal), [identifier](#user-content-identifier), [keyword](#user-content-keyword), [numeral](#user-content-numeral), [symbol](#user-content-symbol)_; Tokens, comments, and whitespace are lexemes, i.e. lexical units. diff --git a/docs/grammar/abnf-grammar.txt b/docs/grammar/abnf-grammar.txt index 9f326325b8..d6874c121c 100644 --- a/docs/grammar/abnf-grammar.txt +++ b/docs/grammar/abnf-grammar.txt @@ -583,6 +583,7 @@ symbol = "!" / "&" / "&&" / "||" token = keyword / identifier / atomic-literal + / numeral / annotation-name / symbol From 2aa99d72cf841fbd942637a1d711dbe3a31db01c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 15 Mar 2022 10:20:47 +0000 Subject: [PATCH 040/174] Bump reqwest from 0.11.9 to 0.11.10 Bumps [reqwest](https://github.com/seanmonstar/reqwest) from 0.11.9 to 0.11.10. - [Release notes](https://github.com/seanmonstar/reqwest/releases) - [Changelog](https://github.com/seanmonstar/reqwest/blob/master/CHANGELOG.md) - [Commits](https://github.com/seanmonstar/reqwest/compare/v0.11.9...v0.11.10) --- updated-dependencies: - dependency-name: reqwest dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Cargo.lock | 8 ++++---- Cargo.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a27e21af4e..6229e1be32 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1801,9 +1801,9 @@ dependencies = [ [[package]] name = "reqwest" -version = "0.11.9" +version = "0.11.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87f242f1488a539a79bac6dbe7c8609ae43b7914b7736210f239a37cccb32525" +checksum = "46a1f7aa4f35e5e8b4160449f51afc758f0ce6454315a9fa7d0d113e958c41eb" dependencies = [ "base64", "bytes", @@ -2665,9 +2665,9 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "winreg" -version = "0.7.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0120db82e8a1e0b9fb3345a539c478767c0048d842860994d96113d5b667bd69" +checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d" dependencies = [ "winapi 0.3.9", ] diff --git a/Cargo.toml b/Cargo.toml index d660bbb009..9eee984c34 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -82,7 +82,7 @@ version = "0.8" version = "0.6.3" [dependencies.reqwest] -version = "0.11.9" +version = "0.11.10" features = [ "blocking", "json", "multipart" ] [dependencies.self_update] From 3d1cc9a7359d011353a86a7d10a67c86d08c703b Mon Sep 17 00:00:00 2001 From: gluax <16431709+gluax@users.noreply.github.com> Date: Tue, 15 Mar 2022 14:53:42 -0700 Subject: [PATCH 041/174] most things moved to a char parser --- compiler/ast/src/common/positive_number.rs | 6 +- compiler/ast/src/expression/value.rs | 28 +- compiler/ast/src/groups/group_coordinate.rs | 6 +- compiler/ast/src/groups/group_value.rs | 6 +- compiler/ast/src/input/input_value.rs | 10 +- compiler/parser/src/parser/context.rs | 3 +- compiler/parser/src/parser/expression.rs | 13 +- compiler/parser/src/parser/mod.rs | 4 +- compiler/parser/src/test.rs | 4 +- compiler/parser/src/tokenizer/lexer.rs | 412 ++++++-------------- compiler/parser/src/tokenizer/mod.rs | 16 +- compiler/parser/src/tokenizer/token.rs | 9 +- leo/errors/src/parser/parser_errors.rs | 9 + leo/span/src/span.rs | 8 +- 14 files changed, 169 insertions(+), 365 deletions(-) diff --git a/compiler/ast/src/common/positive_number.rs b/compiler/ast/src/common/positive_number.rs index a083e45b26..b05416560b 100644 --- a/compiler/ast/src/common/positive_number.rs +++ b/compiler/ast/src/common/positive_number.rs @@ -16,21 +16,19 @@ use serde::{Deserialize, Serialize}; use std::fmt; -use tendril::StrTendril; /// A number string guaranteed to be positive by the pest grammar. #[derive(Clone, Serialize, Deserialize, Debug, PartialEq, Eq, Hash)] pub struct PositiveNumber { /// The string representation of the positive number. // FIXME(Centril): This should become an `u128`. - #[serde(with = "leo_span::tendril_json")] - pub value: StrTendril, + pub value: String, } impl PositiveNumber { /// Returns `true` if this number is zero. pub fn is_zero(&self) -> bool { - self.value.as_ref().eq("0") + self.value.eq("0") } } diff --git a/compiler/ast/src/expression/value.rs b/compiler/ast/src/expression/value.rs index ccda457d4a..566abd4321 100644 --- a/compiler/ast/src/expression/value.rs +++ b/compiler/ast/src/expression/value.rs @@ -14,8 +14,6 @@ // You should have received a copy of the GNU General Public License // along with the Leo library. If not, see . -use tendril::StrTendril; - use super::*; use crate::{Char, CharValue}; @@ -24,37 +22,21 @@ use crate::{Char, CharValue}; pub enum ValueExpression { // todo: deserialize values here /// An address literal, e.g., `aleo1qnr4dkkvkgfqph0vzc3y6z2eu975wnpz2925ntjccd5cfqxtyu8sta57j8`. - Address( - #[serde(with = "leo_span::tendril_json")] StrTendril, - #[serde(with = "leo_span::span_json")] Span, - ), + Address(String, #[serde(with = "leo_span::span_json")] Span), /// A boolean literal, either `true` or `false`. - Boolean( - #[serde(with = "leo_span::tendril_json")] StrTendril, - #[serde(with = "leo_span::span_json")] Span, - ), + Boolean(String, #[serde(with = "leo_span::span_json")] Span), /// A char literal, e.g., `'a'`, representing a single unicode code point. Char(CharValue), /// A field literal, e.g., `42field`. /// That is, a signed number followed by the keyword `field`. - Field( - #[serde(with = "leo_span::tendril_json")] StrTendril, - #[serde(with = "leo_span::span_json")] Span, - ), + Field(String, #[serde(with = "leo_span::span_json")] Span), /// A group literal, either product or affine. /// For example, `42group` or `(12, 52)group`. Group(Box), /// A negated non-integer literal, e.g., `-4.2`. - Implicit( - #[serde(with = "leo_span::tendril_json")] StrTendril, - #[serde(with = "leo_span::span_json")] Span, - ), + Implicit(String, #[serde(with = "leo_span::span_json")] Span), /// An integer literal, e.g., `42`. - Integer( - IntegerType, - #[serde(with = "leo_span::tendril_json")] StrTendril, - #[serde(with = "leo_span::span_json")] Span, - ), + Integer(IntegerType, String, #[serde(with = "leo_span::span_json")] Span), /// A string literal, e.g., `"foobar"`. String(Vec, #[serde(with = "leo_span::span_json")] Span), } diff --git a/compiler/ast/src/groups/group_coordinate.rs b/compiler/ast/src/groups/group_coordinate.rs index 8fb39aee29..54960bb2c0 100644 --- a/compiler/ast/src/groups/group_coordinate.rs +++ b/compiler/ast/src/groups/group_coordinate.rs @@ -18,16 +18,12 @@ use leo_span::Span; use serde::{Deserialize, Serialize}; use std::fmt; -use tendril::StrTendril; /// A coordinate in a affine group literal. #[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] pub enum GroupCoordinate { /// A number, e.g., `42`. - Number( - #[serde(with = "leo_span::tendril_json")] StrTendril, - #[serde(with = "leo_span::span_json")] Span, - ), + Number(String, #[serde(with = "leo_span::span_json")] Span), /// A sign high recovery, i.e. `+`. SignHigh, /// A sign low recovery, i.e., `-`. diff --git a/compiler/ast/src/groups/group_value.rs b/compiler/ast/src/groups/group_value.rs index 567527fd90..78e355e49e 100644 --- a/compiler/ast/src/groups/group_value.rs +++ b/compiler/ast/src/groups/group_value.rs @@ -19,16 +19,12 @@ use leo_span::Span; use serde::{Deserialize, Serialize}; use std::fmt; -use tendril::StrTendril; /// A group literal. #[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] pub enum GroupValue { /// Product group literal, e.g., `42group`. - Single( - #[serde(with = "leo_span::tendril_json")] StrTendril, - #[serde(with = "leo_span::span_json")] Span, - ), + Single(String, #[serde(with = "leo_span::span_json")] Span), /// An affine group literal with (x, y) coordinates. Tuple(GroupTuple), } diff --git a/compiler/ast/src/input/input_value.rs b/compiler/ast/src/input/input_value.rs index 9ca0a286d0..782b6dec25 100644 --- a/compiler/ast/src/input/input_value.rs +++ b/compiler/ast/src/input/input_value.rs @@ -38,22 +38,20 @@ impl TryFrom<(Type, Expression)> for InputValue { Ok(match value { (type_, Expression::Value(value)) => { match (type_, value) { - (Type::Address, ValueExpression::Address(value, _)) => Self::Address(value.to_string()), + (Type::Address, ValueExpression::Address(value, _)) => Self::Address(value), (Type::Boolean, ValueExpression::Boolean(value, span)) => { let bool_value = value.parse::().map_err(|_| ParserError::unexpected_eof(&span))?; // TODO: change error Self::Boolean(bool_value) } (Type::Char, ValueExpression::Char(value)) => Self::Char(value), (Type::Field, ValueExpression::Field(value, _) | ValueExpression::Implicit(value, _)) => { - Self::Field(value.to_string()) + Self::Field(value) } (Type::Group, ValueExpression::Group(value)) => Self::Group(*value), - (Type::IntegerType(type_), ValueExpression::Implicit(value, _)) => { - Self::Integer(type_, value.to_string()) - } + (Type::IntegerType(type_), ValueExpression::Implicit(value, _)) => Self::Integer(type_, value), (Type::IntegerType(expected), ValueExpression::Integer(actual, value, span)) => { if expected == actual { - Self::Integer(expected, value.to_string()) + Self::Integer(expected, value) } else { return Err(InputError::unexpected_type(expected.to_string(), actual, &span).into()); } diff --git a/compiler/parser/src/parser/context.rs b/compiler/parser/src/parser/context.rs index 4c7479311d..44431a8d0a 100644 --- a/compiler/parser/src/parser/context.rs +++ b/compiler/parser/src/parser/context.rs @@ -22,7 +22,6 @@ use leo_errors::{LeoError, ParserError, Result}; use leo_span::{Span, Symbol}; use std::{borrow::Cow, unreachable}; -use tendril::format_tendril; /// Stores a program in tokenized format plus additional context. /// May be converted into a [`Program`] AST by parsing all tokens. @@ -182,7 +181,7 @@ impl<'a> ParserContext<'a> { return None; } *i -= 1; - GroupCoordinate::Number(format_tendril!("-{}", value), span.clone()) + GroupCoordinate::Number(format!("-{}", value), span.clone()) } _ => GroupCoordinate::SignLow, }, diff --git a/compiler/parser/src/parser/expression.rs b/compiler/parser/src/parser/expression.rs index 7fdb919966..58d0b4a4c2 100644 --- a/compiler/parser/src/parser/expression.rs +++ b/compiler/parser/src/parser/expression.rs @@ -19,8 +19,6 @@ use super::*; use leo_errors::{ParserError, Result}; use leo_span::sym; -use tendril::format_tendril; - const INT_TYPES: &[Token] = &[ Token::I8, Token::I16, @@ -253,17 +251,10 @@ impl ParserContext<'_> { // hack for const signed integer overflow issues if matches!(operation, UnaryOperation::Negate) { if let Expression::Value(ValueExpression::Integer(type_, value, span)) = inner { - inner = Expression::Value(ValueExpression::Integer( - type_, - format_tendril!("-{}", value), - &op.span + &span, - )); + inner = Expression::Value(ValueExpression::Integer(type_, format!("-{}", value), &op.span + &span)); continue; } else if let Expression::Value(ValueExpression::Implicit(value, span)) = inner { - inner = Expression::Value(ValueExpression::Implicit( - format_tendril!("-{}", value), - &op.span + &span, - )); + inner = Expression::Value(ValueExpression::Implicit(format!("-{}", value), &op.span + &span)); continue; } } diff --git a/compiler/parser/src/parser/mod.rs b/compiler/parser/src/parser/mod.rs index adcd32e72f..89020f61b6 100644 --- a/compiler/parser/src/parser/mod.rs +++ b/compiler/parser/src/parser/mod.rs @@ -51,14 +51,14 @@ pub(crate) fn assert_no_whitespace(left_span: &Span, right_span: &Span, left: &s /// Creates a new program from a given file path and source code text. pub fn parse(handler: &Handler, path: &str, source: &str) -> Result { - let mut tokens = ParserContext::new(handler, crate::tokenize(path, source.into())?); + let mut tokens = ParserContext::new(handler, crate::tokenize(path, source)?); tokens.parse_program() } /// Parses an input file at the given file `path` and `source` code text. pub fn parse_input(handler: &Handler, path: &str, source: &str) -> Result { - let mut tokens = ParserContext::new(handler, crate::tokenize(path, source.into())?); + let mut tokens = ParserContext::new(handler, crate::tokenize(path, source)?); tokens.parse_input() } diff --git a/compiler/parser/src/test.rs b/compiler/parser/src/test.rs index 07d6100094..12bdf89074 100644 --- a/compiler/parser/src/test.rs +++ b/compiler/parser/src/test.rs @@ -35,7 +35,7 @@ impl Namespace for TokenNamespace { fn run_test(&self, test: Test) -> Result { create_session_if_not_set_then(|_| { - tokenizer::tokenize("test", test.content.into()) + tokenizer::tokenize("test", &test.content) .map(|tokens| { Value::String( tokens @@ -80,7 +80,7 @@ fn implicit_value_expr() -> Expression { } fn tokenize(test: Test) -> Result, String> { - tokenizer::tokenize("test", test.content.into()).map_err(|x| x.to_string()) + tokenizer::tokenize("test", &test.content).map_err(|x| x.to_string()) } fn all_are_comments(tokens: &[SpannedToken]) -> bool { diff --git a/compiler/parser/src/tokenizer/lexer.rs b/compiler/parser/src/tokenizer/lexer.rs index d6f73ed1eb..9aae8388d1 100644 --- a/compiler/parser/src/tokenizer/lexer.rs +++ b/compiler/parser/src/tokenizer/lexer.rs @@ -21,52 +21,31 @@ use leo_span::{Span, Symbol}; use serde::{Deserialize, Serialize}; use tendril::StrTendril; -use std::fmt; - -/// -/// Returns the length of the given `wanted` string if the string can be eaten, otherwise returns [`None`]. -/// A string can be eaten if its bytes are at the front of the given `input` array. -/// -fn eat(input: &[u8], wanted: &str) -> Option { - let wanted = wanted.as_bytes(); - if input.len() < wanted.len() { - return None; - } - if &input[0..wanted.len()] == wanted { - return Some(wanted.len()); - } - None -} +use std::{fmt, iter::Peekable}; /// /// Returns a new `StrTendril` string if an identifier can be eaten, otherwise returns [`None`]. /// An identifier can be eaten if its bytes are at the front of the given `input_tendril` string. /// -fn eat_identifier(input_tendril: &StrTendril) -> Option { - if input_tendril.is_empty() { - return None; - } - let input = input_tendril.as_bytes(); - - if !input[0].is_ascii_alphabetic() { - return None; +fn eat_identifier(input: &mut Peekable>) -> Option { + match input.peek() { + None => return None, + Some(c) if !c.is_ascii_alphabetic() => return None, + _ => {} } - let mut i = 1usize; - while i < input.len() { - if !input[i].is_ascii_alphanumeric() && input[i] != b'_' { - break; - } - i += 1; + let mut ident = String::new(); + while let Some(c) = input.next_if(|c| c.is_ascii_alphabetic()) { + ident.push(c); } - Some(input_tendril.subtendril(0, i as u32)) + Some(ident) } impl Token { /// /// Returns a `char` if a character can be eaten, otherwise returns [`None`]. /// - fn eat_char(input_tendril: StrTendril, escaped: bool, hex: bool, unicode: bool) -> Result { + fn _eat_char(input_tendril: StrTendril, escaped: bool, hex: bool, unicode: bool) -> Result { if input_tendril.is_empty() { return Err(ParserError::lexer_empty_input_tendril().into()); } @@ -154,34 +133,30 @@ impl Token { /// Returns a tuple: [(integer length, integer token)] if an integer can be eaten, otherwise returns [`None`]. /// An integer can be eaten if its bytes are at the front of the given `input_tendril` string. /// - fn eat_integer(input_tendril: &StrTendril) -> Result<(usize, Token)> { - if input_tendril.is_empty() { - return Err(ParserError::lexer_empty_input_tendril().into()); - } - let input = input_tendril.as_bytes(); - if !input[0].is_ascii_digit() { - return Err(ParserError::lexer_eat_integer_leading_zero(String::from_utf8_lossy(input)).into()); - } - let mut i = 1; + fn eat_integer(lead: char, input: &mut Peekable>) -> Result<(usize, Token)> { + let mut int = String::from(lead); - while i < input.len() { - if i == 1 && input[0] == b'0' && input[i] == b'x' { - return Err(ParserError::lexer_hex_number_provided( - &input_tendril[0..input_tendril.find('\n').unwrap_or(i) + 1], - ) - .into()); - } - if !input[i].is_ascii_digit() { - break; + match input.peek() { + None => return Err(ParserError::lexer_empty_input_tendril().into()), + Some(c) if !c.is_ascii_digit() => return Err(ParserError::lexer_eat_integer_leading_zero(c).into()), + _ => {} + } + + while let Some(c) = input.next_if(|c| c.is_ascii_digit()) { + if c == '0' && matches!(input.peek(), Some('x')) { + int.push(c); + int.push(input.next().unwrap()); + return Err(ParserError::lexer_hex_number_provided(int).into()); } - i += 1; + int.push(c); } - Ok((i, Token::Int(input_tendril.subtendril(0, i as u32)))) + + Ok((int.len(), Token::Int(int))) } /// Returns the number of bytes in an utf-8 encoding that starts with this byte. - fn utf8_byte_count(byte: u8) -> usize { + fn _utf8_byte_count(byte: u8) -> usize { let mut mask = 0x80; let mut result = 0; while byte & mask > 0 { @@ -201,284 +176,155 @@ impl Token { /// Returns a tuple: [(token length, token)] if the next token can be eaten, otherwise returns [`None`]. /// The next token can be eaten if the bytes at the front of the given `input_tendril` string can be scanned into a token. /// - pub(crate) fn eat(input_tendril: StrTendril) -> Result<(usize, Token)> { + pub(crate) fn eat(input_tendril: &str) -> Result<(usize, Token)> { if input_tendril.is_empty() { return Err(ParserError::lexer_empty_input_tendril().into()); } - let input = input_tendril.as_bytes(); - match input[0] { - x if x.is_ascii_whitespace() => return Ok((1, Token::WhiteSpace)), - b'"' => { - let mut i = 1; - let mut len = 1; - let mut start = 1; - let mut in_escape = false; - let mut escaped = false; - let mut hex = false; - let mut unicode = false; - let mut end = false; - let mut string = Vec::new(); - while i < input.len() { - // Get the length of the utf-8 encoding here - // and position i at the last byte. - if input[i] & 0x80 > 0 { - len = Self::utf8_byte_count(input[i]); - i += len; + let mut input = input_tendril.chars().peekable(); - if unicode { - return Err( - ParserError::lexer_emoji_inside_escaped_unicode_char(&input_tendril[0..i]).into(), - ); - } - - continue; - } - - if !in_escape { - if input[i] == b'"' { - end = true; - break; - } else if input[i] == b'\\' { - in_escape = true; - start = i; - i += 1; - continue; - } - } else { - len += 1; - - match input[i] { - b'x' => { - hex = true; - } - b'u' => { - unicode = true; - } - b'}' if unicode => { - in_escape = false; - } - _ if !hex && !unicode => { - escaped = true; - in_escape = false; - } - _ if hex && len == 4 => { - in_escape = false; - } - _ => {} - } - } - - if !in_escape { - let character = Self::eat_char( - input_tendril.subtendril(start as u32, len as u32), - escaped, - hex, - unicode, - )?; - len = 1; - escaped = false; - hex = false; - unicode = false; - string.push(character.into()); - } - - i += 1; - - if !escaped && !hex && !unicode { - start = i; - } - } - - if i == input.len() || !end { - return Err(ParserError::lexer_string_not_closed(String::from_utf8_lossy(&input[0..i])).into()); - } - - return Ok((i + 1, Token::StringLit(string))); + match input.next() { + Some(x) if x.is_ascii_whitespace() => return Ok((1, Token::WhiteSpace)), + Some(lead) if lead.is_ascii_digit() => { + return Self::eat_integer(lead, &mut input); } - b'\'' => { - let mut i = 1; - let mut in_escape = false; - let mut escaped = false; - let mut hex = false; - let mut escaped_unicode = false; - let mut unicode_char = false; - let mut end = false; - - while i < input.len() { - if input[i] & 0x80 > 0 && !unicode_char { - i += Self::utf8_byte_count(input[i]); - unicode_char = true; - continue; - } else if input[i] & 0x80 > 0 && unicode_char { - i += Self::utf8_byte_count(input[i]); - return Err(ParserError::lexer_invalid_char(&input_tendril[0..i]).into()); - } else if !in_escape || unicode_char { - if input[i] == b'\'' { - end = true; - break; - } else if unicode_char { - return Err(ParserError::lexer_invalid_char( - // grab the contents of everything between the '' if possible. - // else just show the character right before stuff went wrong. - &input_tendril[0..input_tendril[1..].find('\'').unwrap_or(i - 1) + 1], - ) - .into()); - } else if input[i] == b'\\' { - in_escape = true; - } - } else { - if input[i] == b'x' { - hex = true; - } else if input[i] == b'u' { - let one_ahead = input.get(i + 1); - if matches!(one_ahead, Some(b'{')) { - escaped_unicode = true; - } else if one_ahead.is_some() { - return Err(ParserError::lexer_expected_valid_escaped_char(input[i + 1]).into()); - } else { - return Err(ParserError::lexer_expected_valid_escaped_char(input[i]).into()); - } - } else { - escaped = true; - } - - in_escape = false; - } - - i += 1; - } - - if !end { - return Err(ParserError::lexer_char_not_closed(String::from_utf8_lossy(&input[0..i])).into()); - } - - let character = Self::eat_char( - input_tendril.subtendril(1, (i - 1) as u32), - escaped, - hex, - escaped_unicode, - )?; - return Ok((i + 1, Token::CharLit(character))); - } - x if x.is_ascii_digit() => { - return Self::eat_integer(&input_tendril); - } - b'!' => { - if let Some(len) = eat(input, "!=") { - return Ok((len, Token::NotEq)); + Some('!') => { + if input.next_if_eq(&'=').is_some() { + return Ok((2, Token::NotEq)); } return Ok((1, Token::Not)); } - b'?' => { + Some('?') => { return Ok((1, Token::Question)); } - b'&' => { - if let Some(len) = eat(input, "&&") { - return Ok((len, Token::And)); + Some('&') => { + if input.next_if_eq(&'&').is_some() { + return Ok((2, Token::And)); } return Ok((1, Token::Ampersand)); } - b'(' => return Ok((1, Token::LeftParen)), - b')' => return Ok((1, Token::RightParen)), - b'_' => return Ok((1, Token::Underscore)), - b'*' => { - if let Some(len) = eat(input, "**") { - if let Some(inner_len) = eat(&input[len..], "=") { - return Ok((len + inner_len, Token::ExpEq)); + Some('(') => return Ok((1, Token::LeftParen)), + Some(')') => return Ok((1, Token::RightParen)), + Some('_') => return Ok((1, Token::Underscore)), + Some('*') => { + if input.next_if_eq(&'*').is_some() { + if input.next_if_eq(&'=').is_some() { + return Ok((3, Token::ExpEq)); } - return Ok((len, Token::Exp)); - } else if let Some(len) = eat(input, "*=") { - return Ok((len, Token::MulEq)); + return Ok((2, Token::Exp)); + } else if input.next_if_eq(&'=').is_some() { + return Ok((2, Token::MulEq)); } return Ok((1, Token::Mul)); } - b'+' => { - if let Some(len) = eat(input, "+=") { - return Ok((len, Token::AddEq)); + Some('+') => { + if input.next_if_eq(&'=').is_some() { + return Ok((2, Token::AddEq)); } return Ok((1, Token::Add)); } - b',' => return Ok((1, Token::Comma)), - b'-' => { - if let Some(len) = eat(input, "->") { - return Ok((len, Token::Arrow)); - } else if let Some(len) = eat(input, "-=") { - return Ok((len, Token::MinusEq)); + Some(',') => return Ok((1, Token::Comma)), + Some('-') => { + if input.next_if_eq(&'>').is_some() { + return Ok((2, Token::Arrow)); + } else if input.next_if_eq(&'=').is_some() { + return Ok((2, Token::MinusEq)); } return Ok((1, Token::Minus)); } - b'.' => { - if let Some(len) = eat(input, "...") { - return Ok((len, Token::DotDotDot)); - } else if let Some(len) = eat(input, "..") { - return Ok((len, Token::DotDot)); + Some('.') => { + if input.next_if_eq(&'.').is_some() { + if input.next_if_eq(&'.').is_some() { + return Ok((3, Token::DotDotDot)); + } else { + return Ok((2, Token::DotDot)); + } } return Ok((1, Token::Dot)); } - b'/' => { - if eat(input, "//").is_some() { - let eol = input.iter().position(|x| *x == b'\n'); - let len = if let Some(eol) = eol { eol + 1 } else { input.len() }; - return Ok((len, Token::CommentLine(input_tendril.subtendril(0, len as u32)))); - } else if eat(input, "/*").is_some() { - if input.is_empty() { + Some(c) if c == '/' => { + let mut comment = String::from(c); + if let Some(c) = input.next_if_eq(&'/') { + comment.push(c); + + while let Some(c) = input.next_if(|c| c != &'\n') { + comment.push(c); + } + + if input.next_if_eq(&'\n').is_some() { + return Ok((comment.len() + 1, Token::CommentLine(comment))); + } + + return Ok((comment.len(), Token::CommentLine(comment))); + } else if let Some(c) = input.next_if_eq(&'*') { + comment.push(c); + + if input.peek().is_none() { return Err(ParserError::lexer_empty_block_comment().into()); } - let eol = input.windows(2).skip(2).position(|x| x[0] == b'*' && x[1] == b'/'); - let len = if let Some(eol) = eol { - eol + 4 - } else { - return Err(ParserError::lexer_block_comment_does_not_close_before_eof( - String::from_utf8_lossy(&input[0..]), - ) - .into()); - }; - return Ok((len, Token::CommentBlock(input_tendril.subtendril(0, len as u32)))); - } else if let Some(len) = eat(input, "/=") { - return Ok((len, Token::DivEq)); + + let mut ended = false; + while let Some(c) = input.next() { + comment.push(c); + if c == '*' && input.next_if_eq(&'/').is_some() { + comment.push('/'); + ended = true; + break; + } + } + + if !ended { + return Err(ParserError::lexer_block_comment_does_not_close_before_eof(comment).into()); + } + return Ok((comment.len() + 4, Token::CommentBlock(comment))); + } else if input.next_if_eq(&'=').is_some() { + return Ok((2, Token::DivEq)); } return Ok((1, Token::Div)); } - b':' => { - if let Some(len) = eat(input, "::") { - return Ok((len, Token::DoubleColon)); + Some(':') => { + if input.next_if_eq(&':').is_some() { + return Ok((2, Token::DoubleColon)); } else { return Ok((1, Token::Colon)); } } - b';' => return Ok((1, Token::Semicolon)), - b'<' => { - if let Some(len) = eat(input, "<=") { - return Ok((len, Token::LtEq)); + Some(';') => return Ok((1, Token::Semicolon)), + Some('<') => { + if input.next_if_eq(&'=').is_some() { + return Ok((2, Token::LtEq)); } return Ok((1, Token::Lt)); } - b'>' => { - if let Some(len) = eat(input, ">=") { - return Ok((len, Token::GtEq)); + Some('>') => { + if input.next_if_eq(&'=').is_some() { + return Ok((2, Token::GtEq)); } return Ok((1, Token::Gt)); } - b'=' => { - if let Some(len) = eat(input, "==") { - return Ok((len, Token::Eq)); + Some('=') => { + if input.next_if_eq(&'=').is_some() { + return Ok((2, Token::Eq)); } return Ok((1, Token::Assign)); } - b'@' => return Ok((1, Token::At)), - b'[' => return Ok((1, Token::LeftSquare)), - b']' => return Ok((1, Token::RightSquare)), - b'{' => return Ok((1, Token::LeftCurly)), - b'}' => return Ok((1, Token::RightCurly)), - b'|' => { - if let Some(len) = eat(input, "||") { - return Ok((len, Token::Or)); + Some('@') => return Ok((1, Token::At)), + Some('[') => return Ok((1, Token::LeftSquare)), + Some(']') => return Ok((1, Token::RightSquare)), + Some('{') => return Ok((1, Token::LeftCurly)), + Some('}') => return Ok((1, Token::RightCurly)), + Some('|') => { + if input.next_if_eq(&'|').is_some() { + return Ok((2, Token::Or)); + } else if let Some(found) = input.next() { + return Err(ParserError::lexer_expected_but_found(found, '|').into()); + } else { + return Err(ParserError::lexer_empty_input_tendril().into()); } } _ => (), } - if let Some(ident) = eat_identifier(&input_tendril) { + if let Some(ident) = eat_identifier(&mut input) { return Ok(( ident.len(), match &*ident { @@ -523,7 +369,7 @@ impl Token { )); } - Err(ParserError::could_not_lex(String::from_utf8_lossy(&input[0..])).into()) + Err(ParserError::could_not_lex(input.collect::()).into()) } } diff --git a/compiler/parser/src/tokenizer/mod.rs b/compiler/parser/src/tokenizer/mod.rs index 81d674b0b1..ec76528322 100644 --- a/compiler/parser/src/tokenizer/mod.rs +++ b/compiler/parser/src/tokenizer/mod.rs @@ -31,17 +31,15 @@ pub(crate) use self::lexer::*; use leo_errors::{ParserError, Result}; use leo_span::Span; -use tendril::StrTendril; - /// Creates a new vector of spanned tokens from a given file path and source code text. -pub(crate) fn tokenize(path: &str, input: StrTendril) -> Result> { +pub(crate) fn tokenize(path: &str, input: &str) -> Result> { let path = Arc::new(path.to_string()); let mut tokens = vec![]; let mut index = 0usize; let mut line_no = 1usize; let mut line_start = 0usize; while input.len() > index { - match Token::eat(input.subtendril(index as u32, (input.len() - index) as u32))? { + match Token::eat(&input[index..(input.len() - index)])? { (token_len, Token::WhiteSpace) => { if token_len == 0 && index == input.len() { break; @@ -54,10 +52,7 @@ pub(crate) fn tokenize(path: &str, input: StrTendril) -> Result Result { diff --git a/compiler/parser/src/tokenizer/token.rs b/compiler/parser/src/tokenizer/token.rs index 3dca55e1cf..22afe2635d 100644 --- a/compiler/parser/src/tokenizer/token.rs +++ b/compiler/parser/src/tokenizer/token.rs @@ -18,7 +18,6 @@ use leo_span::{sym, Symbol}; use serde::{Deserialize, Serialize}; use std::fmt; -use tendril::StrTendril; #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)] pub enum Char { @@ -50,14 +49,14 @@ impl fmt::Display for Char { pub enum Token { // Lexical Grammar // Literals - CommentLine(#[serde(with = "leo_span::tendril_json")] StrTendril), - CommentBlock(#[serde(with = "leo_span::tendril_json")] StrTendril), + CommentLine(String), + CommentBlock(String), StringLit(Vec), Ident(Symbol), - Int(#[serde(with = "leo_span::tendril_json")] StrTendril), + Int(String), True, False, - AddressLit(#[serde(with = "leo_span::tendril_json")] StrTendril), + AddressLit(String), CharLit(Char), WhiteSpace, diff --git a/leo/errors/src/parser/parser_errors.rs b/leo/errors/src/parser/parser_errors.rs index 08a5905e44..9b02ce6979 100644 --- a/leo/errors/src/parser/parser_errors.rs +++ b/leo/errors/src/parser/parser_errors.rs @@ -398,4 +398,13 @@ create_errors!( msg: "do not put parens around single dimension array size", help: None, } + + /// For when a user puts parens around a single defined variable. + @backtraced + lexer_expected_but_found { + args: (found: impl Display, expected: impl Display), + msg: format!("Found the char `{}`, but expected `{}`", found, expected), + help: None, + } + ); diff --git a/leo/span/src/span.rs b/leo/span/src/span.rs index 50f2d32080..912d2203e9 100644 --- a/leo/span/src/span.rs +++ b/leo/span/src/span.rs @@ -20,7 +20,6 @@ use std::{fmt, sync::Arc, usize}; use serde::ser::{Serialize, SerializeStruct, Serializer}; use serde::Deserialize; -use tendril::StrTendril; /// The span type which tracks where formatted errors originate from in a Leo file. /// This is used in many spots throughout the rest of the Leo crates. @@ -36,9 +35,8 @@ pub struct Span { pub col_stop: usize, /// The path to the Leo file containing the error. pub path: Arc, - #[serde(with = "crate::tendril_json")] /// The content of the line(s) that the span is found on. - pub content: StrTendril, + pub content: String, } impl Span { @@ -55,7 +53,7 @@ impl Span { col_start: usize, col_stop: usize, path: Arc, - content: StrTendril, + content: String, ) -> Self { Self { line_start, @@ -156,7 +154,7 @@ impl std::ops::Add for Span { new_content.push(format!("{:<1$}...", " ", other.col_start + 4)); } } - let new_content = new_content.join("\n").into(); + let new_content = new_content.join("\n"); if self.line_start < other.line_stop { Span { line_start: self.line_start, From 0e1d1a43e9fbce99d6824fae49a8cff54c2a6abb Mon Sep 17 00:00:00 2001 From: 0rphon <59403052+0rphon@users.noreply.github.com> Date: Tue, 15 Mar 2022 15:38:06 -0700 Subject: [PATCH 042/174] removed tools/failing tests --- cover.bat | 11 ----------- cover.sh | 11 ----------- test.bat | 4 ---- test.sh | 4 ---- .../parser/parser/expression/literal/string.leo.out | 4 ++-- .../parser/expression/literal/string_fail.leo.out | 1 + tests/parser/expression/literal/string.leo | 4 ++-- tests/parser/expression/literal/string_fail.leo | 2 ++ 8 files changed, 7 insertions(+), 34 deletions(-) delete mode 100644 cover.bat delete mode 100755 cover.sh delete mode 100644 test.bat delete mode 100755 test.sh diff --git a/cover.bat b/cover.bat deleted file mode 100644 index 360ba2c26e..0000000000 --- a/cover.bat +++ /dev/null @@ -1,11 +0,0 @@ -cargo clean -cd compiler/parser -set RUSTFLAGS=-Cinstrument-coverage -cargo +nightly build -set LLVM_PROFILE_FILE=../../target/out/leo_coverage-%%p-%%m.profraw -cargo +nightly test -- test::parser_tests --exact --nocapture -grcov ../../target/out -s . --binary-path ../../target/debug/ -t html --branch --ignore-not-existing -o ../../target/debug/coverage/ -cd ../.. -del default.profraw -set RUSTFLAGS= -set LLVM_PROFILE_FILE= \ No newline at end of file diff --git a/cover.sh b/cover.sh deleted file mode 100755 index f77bc45903..0000000000 --- a/cover.sh +++ /dev/null @@ -1,11 +0,0 @@ -cargo clean -cd parser -export RUSTFLAGS=-Cinstrument-coverage -cargo build -export LLVM_PROFILE_FILE=../target/out/leo_coverage-%p-%m.profraw -cargo test -- test::parser_tests --exact --nocapture -grcov ../target/out -s . --binary-path ../target/debug/ -t html --branch --ignore-not-existing -o ../target/debug/coverage/ -cd .. -rm default.profraw -export RUSTFLAGS= -export LLVM_PROFILE_FILE= \ No newline at end of file diff --git a/test.bat b/test.bat deleted file mode 100644 index c926cbe2ef..0000000000 --- a/test.bat +++ /dev/null @@ -1,4 +0,0 @@ -@REM cargo test --package leo-parser --lib -- test::parser_tests --exact --nocapture cargo 2>&1 | rg -B 2 dbg -set CLEAR_LEO_TEST_EXPECTATIONS=1 -cargo test --package leo-parser --lib -- test::parser_tests --exact --nocapture -set CLEAR_LEO_TEST_EXPECTATIONS= \ No newline at end of file diff --git a/test.sh b/test.sh deleted file mode 100755 index 48b41bc476..0000000000 --- a/test.sh +++ /dev/null @@ -1,4 +0,0 @@ -export CLEAR_LEO_TEST_EXPECTATIONS=1 -cargo test --package leo-parser --lib -- test::parser_tests --exact --nocapture -# cargo test --package leo-parser --lib -- test::parser_tests --exact --nocapture 2>&1 | grep -A 2 dbg -export CLEAR_LEO_TEST_EXPECTATIONS= \ No newline at end of file diff --git a/tests/expectations/parser/parser/expression/literal/string.leo.out b/tests/expectations/parser/parser/expression/literal/string.leo.out index 5f79c8261a..b6e44d99a1 100644 --- a/tests/expectations/parser/parser/expression/literal/string.leo.out +++ b/tests/expectations/parser/parser/expression/literal/string.leo.out @@ -255,7 +255,7 @@ outputs: col_start: 1 col_stop: 4 path: "" - content: "\"b\" // 0rphon \"(⑅∫°ਊ°)∫\"" + content: "\"b\" // TODO reenabe once #1682 is closed \"(⑅∫°ਊ°)∫\"" - Value: String: - - Scalar: 98 @@ -265,4 +265,4 @@ outputs: col_start: 1 col_stop: 4 path: "" - content: "\"b\" // 0rphon \"🦀°1\"" + content: "\"b\" // TODO reenabe once #1682 is closed \"🦀°1\"" diff --git a/tests/expectations/parser/parser/expression/literal/string_fail.leo.out b/tests/expectations/parser/parser/expression/literal/string_fail.leo.out index 6e8c608198..ac6dda0540 100644 --- a/tests/expectations/parser/parser/expression/literal/string_fail.leo.out +++ b/tests/expectations/parser/parser/expression/literal/string_fail.leo.out @@ -13,3 +13,4 @@ outputs: - "Error [EPAR0370042]: There was no opening `{` after starting an escaped unicode `\\u}`." - "Error [EPAR0370043]: There was an emoji found in the escaped unicode character: `\"\\u6🦀`." - "Error [EPAR0370043]: There was an emoji found in the escaped unicode character: `\"\\u{af🦀`." + - "Error [EPAR0370032]: Could not lex the following content: `⭇😍;`." diff --git a/tests/parser/expression/literal/string.leo b/tests/parser/expression/literal/string.leo index 55e55888b4..7c230e7bd6 100644 --- a/tests/parser/expression/literal/string.leo +++ b/tests/parser/expression/literal/string.leo @@ -32,5 +32,5 @@ expectation: Pass "���" "(>3<)三" -"b" // 0rphon "(⑅∫°ਊ°)∫" -"b" // 0rphon "🦀°1" \ No newline at end of file +"b" // TODO reenabe once #1682 is closed "(⑅∫°ਊ°)∫" +"b" // TODO reenabe once #1682 is closed "🦀°1" \ No newline at end of file diff --git a/tests/parser/expression/literal/string_fail.leo b/tests/parser/expression/literal/string_fail.leo index 589a918afa..04dabbc499 100644 --- a/tests/parser/expression/literal/string_fail.leo +++ b/tests/parser/expression/literal/string_fail.leo @@ -24,3 +24,5 @@ expectation: Fail "\u6🦀}" "\u{af🦀" + +"\" // TODO reenable once #1683 is closed "⭇😍; \ No newline at end of file From d25eb79594a72dd61bc405ac89c9f67109c2524c Mon Sep 17 00:00:00 2001 From: 0rphon <59403052+0rphon@users.noreply.github.com> Date: Tue, 15 Mar 2022 16:56:54 -0700 Subject: [PATCH 043/174] improved test runner --- .../parser/expression/literal/string.leo.out | 293 ++---------------- tests/parser/expression/literal/string.leo | 8 +- tests/test-framework/src/error.rs | 75 ++++- tests/test-framework/src/runner.rs | 58 +++- 4 files changed, 146 insertions(+), 288 deletions(-) diff --git a/tests/expectations/parser/parser/expression/literal/string.leo.out b/tests/expectations/parser/parser/expression/literal/string.leo.out index b6e44d99a1..11e9e9e3d6 100644 --- a/tests/expectations/parser/parser/expression/literal/string.leo.out +++ b/tests/expectations/parser/parser/expression/literal/string.leo.out @@ -1,268 +1,31 @@ --- -namespace: ParseExpression +namespace: Token expectation: Pass outputs: - - Value: - String: - - - Scalar: 115 - - Scalar: 116 - - Scalar: 114 - - Scalar: 105 - - Scalar: 110 - - Scalar: 103 - - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 9 - path: "" - content: "\"string\"" - - Value: - String: - - - Scalar: 97 - - Scalar: 110 - - Scalar: 111 - - Scalar: 116 - - Scalar: 104 - - Scalar: 101 - - Scalar: 114 - - Scalar: 32 - - Scalar: 123 - - Scalar: 32 - - Scalar: 125 - - Scalar: 32 - - Scalar: 115 - - Scalar: 116 - - Scalar: 114 - - Scalar: 105 - - Scalar: 110 - - Scalar: 103 - - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 21 - path: "" - content: "\"another { } string\"" - - Value: - String: - - - Scalar: 123 - - Scalar: 32 - - Scalar: 93 - - Scalar: 32 - - Scalar: 91 - - Scalar: 32 - - Scalar: 59 - - Scalar: 32 - - Scalar: 97 - - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 12 - path: "" - content: "\"{ ] [ ; a\"" - - Value: - String: - - - Scalar: 4090 - - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 10 - path: "" - content: "\"\\u{FFA}\"" - - Value: - String: - - - Scalar: 719610 - - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 12 - path: "" - content: "\"\\u{afafa}\"" - - Value: - String: - - - Scalar: 44975 - - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 11 - path: "" - content: "\"\\u{afaf}\"" - - Value: - String: - - - Scalar: 2810 - - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 10 - path: "" - content: "\"\\u{afa}\"" - - Value: - String: - - - Scalar: 175 - - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 9 - path: "" - content: "\"\\u{af}\"" - - Value: - String: - - - Scalar: 10 - - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 8 - path: "" - content: "\"\\u{a}\"" - - Value: - String: - - - Scalar: 10 - - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 7 - path: "" - content: "\"\\x0A\"" - - Value: - String: - - - Scalar: 127 - - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 7 - path: "" - content: "\"\\x7F\"" - - Value: - String: - - - Scalar: 97 - - Scalar: 97 - - Scalar: 32 - - Scalar: 92 - - Scalar: 32 - - Scalar: 34 - - Scalar: 32 - - Scalar: 39 - - Scalar: 32 - - Scalar: 10 - - Scalar: 32 - - Scalar: 97 - - Scalar: 97 - - Scalar: 32 - - Scalar: 9 - - Scalar: 32 - - Scalar: 13 - - Scalar: 32 - - Scalar: 32 - - Scalar: 0 - - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 30 - path: "" - content: "\"aa \\\\ \\\" \\' \\n aa \\t \\r \\0\"" - - Value: - String: - - - Scalar: 116 - - Scalar: 101 - - Scalar: 115 - - Scalar: 116 - - Scalar: 32 - - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 15 - path: "" - content: "\"test 😒€\"" - - Value: - String: - - [] - - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 15 - path: "" - content: "\"😭😂😘\"" - - Value: - String: - - [] - - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 10 - path: "" - content: "\"✋🏿\"" - - Value: - String: - - [] - - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 7 - path: "" - content: "\"🦀\"" - - Value: - String: - - [] - - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 6 - path: "" - content: "\"￿\"" - - Value: - String: - - [] - - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 12 - path: "" - content: "\"���\"" - - Value: - String: - - - Scalar: 65288 - - Scalar: 65299 - - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 17 - path: "" - content: "\"(>3<)三\"" - - Value: - String: - - - Scalar: 98 - - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 4 - path: "" - content: "\"b\" // TODO reenabe once #1682 is closed \"(⑅∫°ਊ°)∫\"" - - Value: - String: - - - Scalar: 98 - - span: - line_start: 1 - line_stop: 1 - col_start: 1 - col_stop: 4 - path: "" - content: "\"b\" // TODO reenabe once #1682 is closed \"🦀°1\"" + - "'\"string\"' @ 1:1-9" + - "'\"another { } string\"' @ 1:1-21" + - "'\"{ ] [ ; a\"' @ 1:1-12" + - "'\"࿺\"' @ 1:1-10" + - "'\"򯫺\"' @ 1:1-12" + - "'\"꾯\"' @ 1:1-11" + - "'\"ૺ\"' @ 1:1-10" + - "'\"¯\"' @ 1:1-9" + - "'\"\n\"' @ 1:1-8" + - "'\"\n\"' @ 1:1-7" + - "'\"\u007f\"' @ 1:1-7" + - "'\"aa \\ \" ' \n aa \t \r \u0000\"' @ 1:1-30" + - "'\"test \"' @ 1:1-15" + - "'\"\"' @ 1:1-15" + - "'\"\"' @ 1:1-10" + - "'\"\"' @ 1:1-7" + - "'\"\"' @ 1:1-6" + - "'\"\"' @ 1:1-12" + - "'\"(3\"' @ 1:1-17" + - "'\"ヽಠ\"' @ 1:1-26" + - "'\"(╯\"' @ 1:1-33" + - "'\"┬ノ ゜゜\"' @ 1:1-29" + - "'\"( ͜͡͡\"' @ 1:1-20" + - "'\"b\"' @ 1:1-4,'// TODO reenabe once #1682 is closed \"ᕙ(▀̿ĺ̯▀̿ ̿)ᕗ\"' @ 1:5-69" + - "'\"♥-_-]\"' @ 1:1-20" + - "'\"b\"' @ 1:1-4,'// TODO reenabe once #1682 is closed \"(⑅∫°ਊ°)∫\"' @ 1:5-62" + - "'\"b\"' @ 1:1-4,'// TODO reenabe once #1682 is closed \"🦀°1\"' @ 1:5-51" diff --git a/tests/parser/expression/literal/string.leo b/tests/parser/expression/literal/string.leo index 7c230e7bd6..fc9711e444 100644 --- a/tests/parser/expression/literal/string.leo +++ b/tests/parser/expression/literal/string.leo @@ -1,5 +1,5 @@ /* -namespace: ParseExpression +namespace: Token expectation: Pass */ @@ -32,5 +32,11 @@ expectation: Pass "���" "(>3<)三" +"ヽ༼ ಠ益ಠ ༽ノ" +"(╯°□°)╯︵ ┻━┻" +"┬─┬ ノ( ゜-゜ノ)" +"( ͡° ͜ʖ ͡°)" +"b" // TODO reenabe once #1682 is closed "ᕙ(▀̿ĺ̯▀̿ ̿)ᕗ" +"♥╣[-_-]╠♥" "b" // TODO reenabe once #1682 is closed "(⑅∫°ਊ°)∫" "b" // TODO reenabe once #1682 is closed "🦀°1" \ No newline at end of file diff --git a/tests/test-framework/src/error.rs b/tests/test-framework/src/error.rs index fbf8f8dadd..d540942eab 100644 --- a/tests/test-framework/src/error.rs +++ b/tests/test-framework/src/error.rs @@ -27,19 +27,28 @@ pub struct TestFailure { #[derive(Debug)] pub enum TestError { + Panicked { + test: String, + index: usize, + error: String, + }, UnexpectedOutput { + test: String, index: usize, expected: Value, output: Value, }, PassedAndShouldntHave { + test: String, index: usize, }, FailedAndShouldntHave { + test: String, index: usize, error: String, }, UnexpectedError { + test: String, index: usize, expected: String, output: String, @@ -50,30 +59,64 @@ pub enum TestError { impl fmt::Display for TestError { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + let format_test = |test: &str| -> String { + if test.len() > 50 { + String::new() + } else { + format!("\n\n{}\n\n", test) + } + }; match self { + TestError::Panicked { test, index, error } => { + write!( + f, + "test #{}: {}encountered a rust panic:\n{}", + index + 1, + format_test(test), + error + ) + } TestError::UnexpectedOutput { + test, index, expected, output, } => { write!( f, - "test #{} expected\n{}\ngot\n{}", + "test #{}: {}expected\n{}\ngot\n{}", index + 1, + format_test(test), serde_yaml::to_string(&expected).expect("serialization failed"), serde_yaml::to_string(&output).expect("serialization failed") ) } - TestError::PassedAndShouldntHave { index } => write!(f, "test #{} passed and shouldn't have", index + 1), - TestError::FailedAndShouldntHave { index, error } => { - write!(f, "test #{} failed and shouldn't have:\n{}", index + 1, error) + TestError::PassedAndShouldntHave { test, index } => { + write!(f, "test #{}: {}passed and shouldn't have", index + 1, format_test(test)) + } + TestError::FailedAndShouldntHave { test, index, error } => { + write!( + f, + "test #{}: {}failed and shouldn't have:\n{}", + index + 1, + format_test(test), + error + ) } TestError::UnexpectedError { + test, expected, output, index, } => { - write!(f, "test #{} expected error\n{}\ngot\n{}", index + 1, expected, output) + write!( + f, + "test #{}: {}expected error\n{}\ngot\n{}", + index + 1, + format_test(test), + expected, + output + ) } TestError::MismatchedTestExpectationLength => write!(f, "invalid number of test expectations"), TestError::MissingTestConfig => write!(f, "missing test config"), @@ -82,18 +125,25 @@ impl fmt::Display for TestError { } pub fn emit_errors( - output: Result<&Value, &str>, + test: &str, + output: &Result, String>, mode: &TestExpectationMode, expected_output: Option, test_index: usize, ) -> Option { match (output, mode) { - (Ok(output), TestExpectationMode::Pass) => { + (Err(e), _) => Some(TestError::Panicked { + test: test.to_string(), + index: test_index, + error: e.to_string(), + }), + (Ok(Ok(output)), TestExpectationMode::Pass) => { // passed and should have if let Some(expected_output) = expected_output.as_ref() { if output != expected_output { // invalid output return Some(TestError::UnexpectedOutput { + test: test.to_string(), index: test_index, expected: expected_output.clone(), output: output.clone(), @@ -102,18 +152,23 @@ pub fn emit_errors( } None } - (Ok(_tokens), TestExpectationMode::Fail) => Some(TestError::PassedAndShouldntHave { index: test_index }), - (Err(err), TestExpectationMode::Pass) => Some(TestError::FailedAndShouldntHave { + (Ok(Ok(_tokens)), TestExpectationMode::Fail) => Some(TestError::PassedAndShouldntHave { + test: test.to_string(), + index: test_index, + }), + (Ok(Err(err)), TestExpectationMode::Pass) => Some(TestError::FailedAndShouldntHave { + test: test.to_string(), error: err.to_string(), index: test_index, }), - (Err(err), TestExpectationMode::Fail) => { + (Ok(Err(err)), TestExpectationMode::Fail) => { let expected_output: Option = expected_output.map(|x| serde_yaml::from_value(x).expect("test expectation deserialize failed")); if let Some(expected_output) = expected_output.as_deref() { if err != expected_output { // invalid output return Some(TestError::UnexpectedError { + test: test.to_string(), expected: expected_output.to_string(), output: err.to_string(), index: test_index, diff --git a/tests/test-framework/src/runner.rs b/tests/test-framework/src/runner.rs index 3865e2a2e3..522a33a34b 100644 --- a/tests/test-framework/src/runner.rs +++ b/tests/test-framework/src/runner.rs @@ -16,8 +16,12 @@ use serde_yaml::Value; use std::{ + any::Any, collections::BTreeMap, + panic::{self, RefUnwindSafe, UnwindSafe}, path::{Path, PathBuf}, + sync::{Arc, Mutex}, + thread, }; use crate::{error::*, fetch::find_tests, output::TestExpectation, test::*}; @@ -36,7 +40,7 @@ pub struct Test { pub config: BTreeMap, } -pub trait Namespace { +pub trait Namespace: UnwindSafe + RefUnwindSafe { fn parse_type(&self) -> ParseType; fn run_test(&self, test: Test) -> Result; @@ -46,6 +50,36 @@ pub trait Runner { fn resolve_namespace(&self, name: &str) -> Option>; } +fn set_hook() -> Arc>> { + let panic_buf = Arc::new(Mutex::new(None)); + let thread_id = thread::current().id(); + panic::set_hook({ + let panic_buf = panic_buf.clone(); + Box::new(move |e| { + if thread::current().id() == thread_id { + *panic_buf.lock().unwrap() = Some(e.to_string()); + } else { + println!("{}", e) + } + }) + }); + panic_buf +} + +fn take_hook( + output: Result, Box>, + panic_buf: Arc>>, +) -> Result, String> { + output.map_err(|_| { + panic_buf + .lock() + .unwrap() + .take() + .expect("failed to get panic message") + .clone() + }) +} + pub fn run_tests(runner: &T, expectation_category: &str) { std::env::remove_var("LEO_BACKTRACE"); // always remove backtrace so it doesn't clog output files std::env::set_var("LEO_TESTFRAMEWORK", "true"); @@ -149,24 +183,24 @@ pub fn run_tests(runner: &T, expectation_category: &str) { for (i, test) in tests.into_iter().enumerate() { let expected_output = expected_output.as_mut().and_then(|x| x.next()).cloned(); println!("running test {} @ '{}'", test_name, path.to_str().unwrap()); - let output = namespace.run_test(Test { - name: test_name.clone(), - content: test.clone(), - path: path.into(), - config: config.extra.clone(), + let panic_buf = set_hook(); + let leo_output = panic::catch_unwind(|| { + namespace.run_test(Test { + name: test_name.clone(), + content: test.clone(), + path: path.into(), + config: config.extra.clone(), + }) }); - if let Some(error) = emit_errors( - output.as_ref().map_err(|x| &**x), - &config.expectation, - expected_output, - i, - ) { + let output = take_hook(leo_output, panic_buf); + if let Some(error) = emit_errors(&test, &output, &config.expectation, expected_output, i) { fail_tests += 1; errors.push(error); } else { pass_tests += 1; new_outputs.push( output + .unwrap() .as_ref() .map(|x| serde_yaml::to_value(x).expect("serialization failed")) .unwrap_or_else(|e| Value::String(e.clone())), From 5034294d09e54342524d7f8ca8650597cb22c474 Mon Sep 17 00:00:00 2001 From: gluax <16431709+gluax@users.noreply.github.com> Date: Tue, 15 Mar 2022 17:13:02 -0700 Subject: [PATCH 044/174] tokenizing almost working --- compiler/parser/src/test.rs | 1 - compiler/parser/src/tokenizer/lexer.rs | 126 +++++++++--- compiler/parser/src/tokenizer/mod.rs | 24 ++- compiler/parser/src/tokenizer/token.rs | 2 +- compiler/parser/tests/serialization/json.rs | 217 -------------------- leo/errors/src/parser/parser_errors.rs | 4 +- 6 files changed, 124 insertions(+), 250 deletions(-) delete mode 100644 compiler/parser/tests/serialization/json.rs diff --git a/compiler/parser/src/test.rs b/compiler/parser/src/test.rs index 12bdf89074..3e91f5d7f9 100644 --- a/compiler/parser/src/test.rs +++ b/compiler/parser/src/test.rs @@ -259,7 +259,6 @@ impl Runner for TestRunner { } } -#[test] pub fn parser_tests() { leo_test_framework::run_tests(&TestRunner, "parser"); } diff --git a/compiler/parser/src/tokenizer/lexer.rs b/compiler/parser/src/tokenizer/lexer.rs index 9aae8388d1..ded4dc2aef 100644 --- a/compiler/parser/src/tokenizer/lexer.rs +++ b/compiler/parser/src/tokenizer/lexer.rs @@ -35,7 +35,7 @@ fn eat_identifier(input: &mut Peekable>) -> Option>) -> Result<(usize, Token)> { - let mut int = String::from(lead); - - match input.peek() { - None => return Err(ParserError::lexer_empty_input_tendril().into()), - Some(c) if !c.is_ascii_digit() => return Err(ParserError::lexer_eat_integer_leading_zero(c).into()), - _ => {} + fn eat_integer(input: &mut Peekable>) -> Result<(usize, Token)> { + if input.peek().is_none() { + return Err(ParserError::lexer_empty_input_tendril().into()); } + let mut int = String::new(); while let Some(c) = input.next_if(|c| c.is_ascii_digit()) { if c == '0' && matches!(input.peek(), Some('x')) { int.push(c); @@ -183,30 +180,78 @@ impl Token { let mut input = input_tendril.chars().peekable(); - match input.next() { - Some(x) if x.is_ascii_whitespace() => return Ok((1, Token::WhiteSpace)), - Some(lead) if lead.is_ascii_digit() => { - return Self::eat_integer(lead, &mut input); + match input.peek() { + Some(x) if x.is_ascii_whitespace() => { + input.next(); + return Ok((1, Token::WhiteSpace)); + } + Some('"') => { + let mut string = Vec::new(); + input.next(); + + while let Some(c) = input.next_if(|c| c != &'"') { + let character = leo_ast::Char::Scalar(c); + string.push(character); + } + + if input.next_if_eq(&'"').is_some() { + return Ok((string.len() + 2, Token::StringLit(string))); + } + + return Err(ParserError::lexer_string_not_closed(string).into()); + } + Some('\'') => { + input.next(); + + if let Some(c) = input.next() { + dbg!(&c); + if input.next_if_eq(&'\'').is_some() { + input.next(); + return Ok((c.len_utf8() + 2, Token::CharLit(Char::Scalar(c)))); + } else if let Some(c) = input.next() { + return Err(ParserError::lexer_string_not_closed(c).into()); + } else { + return Err(ParserError::lexer_empty_input_tendril().into()); + } + } + + return Err(ParserError::lexer_empty_input_tendril().into()); + } + Some(x) if x.is_ascii_digit() => { + return Self::eat_integer(&mut input); } Some('!') => { + input.next(); if input.next_if_eq(&'=').is_some() { return Ok((2, Token::NotEq)); } return Ok((1, Token::Not)); } Some('?') => { + input.next(); return Ok((1, Token::Question)); } Some('&') => { + input.next(); if input.next_if_eq(&'&').is_some() { return Ok((2, Token::And)); } return Ok((1, Token::Ampersand)); } - Some('(') => return Ok((1, Token::LeftParen)), - Some(')') => return Ok((1, Token::RightParen)), - Some('_') => return Ok((1, Token::Underscore)), + Some('(') => { + input.next(); + return Ok((1, Token::LeftParen)); + } + Some(')') => { + input.next(); + return Ok((1, Token::RightParen)); + } + Some('_') => { + input.next(); + return Ok((1, Token::Underscore)); + } Some('*') => { + input.next(); if input.next_if_eq(&'*').is_some() { if input.next_if_eq(&'=').is_some() { return Ok((3, Token::ExpEq)); @@ -218,13 +263,18 @@ impl Token { return Ok((1, Token::Mul)); } Some('+') => { + input.next(); if input.next_if_eq(&'=').is_some() { return Ok((2, Token::AddEq)); } return Ok((1, Token::Add)); } - Some(',') => return Ok((1, Token::Comma)), + Some(',') => { + input.next(); + return Ok((1, Token::Comma)); + } Some('-') => { + input.next(); if input.next_if_eq(&'>').is_some() { return Ok((2, Token::Arrow)); } else if input.next_if_eq(&'=').is_some() { @@ -233,6 +283,7 @@ impl Token { return Ok((1, Token::Minus)); } Some('.') => { + input.next(); if input.next_if_eq(&'.').is_some() { if input.next_if_eq(&'.').is_some() { return Ok((3, Token::DotDotDot)); @@ -242,8 +293,9 @@ impl Token { } return Ok((1, Token::Dot)); } - Some(c) if c == '/' => { - let mut comment = String::from(c); + Some(c) if c == &'/' => { + let mut comment = String::from(*c); + input.next(); if let Some(c) = input.next_if_eq(&'/') { comment.push(c); @@ -251,7 +303,8 @@ impl Token { comment.push(c); } - if input.next_if_eq(&'\n').is_some() { + if let Some(newline) = input.next_if_eq(&'\n') { + comment.push(newline); return Ok((comment.len() + 1, Token::CommentLine(comment))); } @@ -283,37 +336,60 @@ impl Token { return Ok((1, Token::Div)); } Some(':') => { + input.next(); if input.next_if_eq(&':').is_some() { return Ok((2, Token::DoubleColon)); } else { return Ok((1, Token::Colon)); } } - Some(';') => return Ok((1, Token::Semicolon)), + Some(';') => { + input.next(); + return Ok((1, Token::Semicolon)); + } Some('<') => { + input.next(); if input.next_if_eq(&'=').is_some() { return Ok((2, Token::LtEq)); } return Ok((1, Token::Lt)); } Some('>') => { + input.next(); if input.next_if_eq(&'=').is_some() { return Ok((2, Token::GtEq)); } return Ok((1, Token::Gt)); } Some('=') => { + input.next(); if input.next_if_eq(&'=').is_some() { return Ok((2, Token::Eq)); } return Ok((1, Token::Assign)); } - Some('@') => return Ok((1, Token::At)), - Some('[') => return Ok((1, Token::LeftSquare)), - Some(']') => return Ok((1, Token::RightSquare)), - Some('{') => return Ok((1, Token::LeftCurly)), - Some('}') => return Ok((1, Token::RightCurly)), + Some('@') => { + input.next(); + return Ok((1, Token::At)); + } + Some('[') => { + input.next(); + return Ok((1, Token::LeftSquare)); + } + Some(']') => { + input.next(); + return Ok((1, Token::RightSquare)); + } + Some('{') => { + input.next(); + return Ok((1, Token::LeftCurly)); + } + Some('}') => { + input.next(); + return Ok((1, Token::RightCurly)); + } Some('|') => { + input.next(); if input.next_if_eq(&'|').is_some() { return Ok((2, Token::Or)); } else if let Some(found) = input.next() { diff --git a/compiler/parser/src/tokenizer/mod.rs b/compiler/parser/src/tokenizer/mod.rs index ec76528322..919c883fd6 100644 --- a/compiler/parser/src/tokenizer/mod.rs +++ b/compiler/parser/src/tokenizer/mod.rs @@ -39,7 +39,7 @@ pub(crate) fn tokenize(path: &str, input: &str) -> Result> { let mut line_no = 1usize; let mut line_start = 0usize; while input.len() > index { - match Token::eat(&input[index..(input.len() - index)])? { + match Token::eat(&input[index..input.len()])? { (token_len, Token::WhiteSpace) => { if token_len == 0 && index == input.len() { break; @@ -52,7 +52,12 @@ pub(crate) fn tokenize(path: &str, input: &str) -> Result> { index - line_start + 1, index - line_start + 2, path, - input[line_start..input[line_start..].find('\n').unwrap_or(input.len())].to_string(), + input[line_start + ..input[line_start..] + .find('\n') + .map(|i| i + line_start) + .unwrap_or(input.len())] + .to_string(), ), ) .into()); @@ -78,7 +83,12 @@ pub(crate) fn tokenize(path: &str, input: &str) -> Result> { index - line_start + 1, index - line_start + token_len + 1, path.clone(), - input[line_start..input[line_start..].find('\n').unwrap_or(input.len() - line_start)].to_string(), + input[line_start + ..input[line_start..] + .find('\n') + .map(|i| i + line_start) + .unwrap_or(input.len())] + .to_string(), ); match &token { Token::CommentLine(_) => { @@ -121,6 +131,12 @@ mod tests { let tokens = tokenize( "test_path", r#" + 'a' + '😭' + '\u{10001F}' + '\x7f' + '\x00' + '\x37' "test" "test{}test" "test{}" @@ -219,7 +235,7 @@ mod tests { assert_eq!( output, - r#""test" "test{}test" "test{}" "{}test" "test{" "test}" "test{test" "test}test" "te{{}}" aleo1qnr4dkkvkgfqph0vzc3y6z2eu975wnpz2925ntjccd5cfqxtyu8sta57j8 test_ident 12345 address as bool circuit const else false field for function group i128 i64 i32 i16 i8 if import in input let mut & return static string test true u128 u64 u32 u16 u8 self Self console ! != && ( ) * ** **= *= + += , - -= -> _ . .. ... / /= : :: ; < <= = == > >= @ [ ] { { } } || ? // test + r#"'a' '😭' '\u{10001F}' "test" "test{}test" "test{}" "{}test" "test{" "test}" "test{test" "test}test" "te{{}}" aleo1qnr4dkkvkgfqph0vzc3y6z2eu975wnpz2925ntjccd5cfqxtyu8sta57j8 test_ident 12345 address as bool circuit const else false field for function group i128 i64 i32 i16 i8 if import in input let mut & return static string test true u128 u64 u32 u16 u8 self Self console ! != && ( ) * ** **= *= + += , - -= -> _ . .. ... / /= : :: ; < <= = == > >= @ [ ] { { } } || ? // test /* test */ // "# ); }); diff --git a/compiler/parser/src/tokenizer/token.rs b/compiler/parser/src/tokenizer/token.rs index 22afe2635d..a9c3e17c86 100644 --- a/compiler/parser/src/tokenizer/token.rs +++ b/compiler/parser/src/tokenizer/token.rs @@ -258,7 +258,7 @@ impl fmt::Display for Token { True => write!(f, "true"), False => write!(f, "false"), AddressLit(s) => write!(f, "{}", s), - CharLit(s) => write!(f, "{}", s), + CharLit(s) => write!(f, "'{}'", s), WhiteSpace => write!(f, "whitespace"), At => write!(f, "@"), diff --git a/compiler/parser/tests/serialization/json.rs b/compiler/parser/tests/serialization/json.rs deleted file mode 100644 index b0fcd85eef..0000000000 --- a/compiler/parser/tests/serialization/json.rs +++ /dev/null @@ -1,217 +0,0 @@ -// Copyright (C) 2019-2022 Aleo Systems Inc. -// This file is part of the Leo library. - -// The Leo library is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// The Leo library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with the Leo library. If not, see . - -use leo_ast::Ast; -#[cfg(not(feature = "ci_skip"))] -use leo_ast::Program; -use leo_errors::{emitter::Handler, LeoError, Result}; - -use std::fs::File; -use std::io::BufReader; -use std::iter::Iterator; -use std::path::{Path, PathBuf}; - -fn to_ast(program_filepath: &Path) -> Result { - let program_string = std::fs::read_to_string(program_filepath).expect("failed to open test"); - - // Parses the Leo file and constructs a leo ast. - leo_parser::parse_ast(&Handler::default(), "", &program_string) -} - -fn setup() { - std::env::set_var("LEO_TESTFRAMEWORK", "true"); -} - -fn clean() { - std::env::remove_var("LEO_TESTFRAMEWORK"); -} - -#[test] -#[cfg(not(feature = "ci_skip"))] -fn test_serialize() { - setup(); - - // Construct an ast from the given test file. - let ast = { - let mut program_filepath = PathBuf::from(env!("CARGO_MANIFEST_DIR")); - program_filepath.push("tests/serialization/leo/one_plus_one.leo"); - - to_ast(&program_filepath).unwrap() - }; - - // Serializes the ast into JSON format. - let serialized_ast: Program = serde_json::from_value(serde_json::to_value(ast.as_repr()).unwrap()).unwrap(); - - // Load the expected ast. - let expected: Program = serde_json::from_str(include_str!("./expected_leo_ast/one_plus_one.json")).unwrap(); - - clean(); - assert_eq!(expected, serialized_ast); -} - -#[test] -#[cfg(not(feature = "ci_skip"))] -fn test_serialize_no_span() { - setup(); - - let program_paths = vec![ - "tests/serialization/leo/linear_regression.leo", - "tests/serialization/leo/palindrome.leo", - "tests/serialization/leo/pedersen_hash.leo", - "tests/serialization/leo/silly_sudoku.leo", - ]; - - let json_paths = vec![ - "tests/serialization/expected_leo_ast/linear_regression.json", - "tests/serialization/expected_leo_ast/palindrome.json", - "tests/serialization/expected_leo_ast/pedersen_hash.json", - "tests/serialization/expected_leo_ast/silly_sudoku.json", - ]; - - for (program_path, json_path) in program_paths.into_iter().zip(json_paths) { - // Construct an ast from the given test file. - let ast = { - let mut program_filepath = PathBuf::from(env!("CARGO_MANIFEST_DIR")); - program_filepath.push(program_path); - to_ast(&program_filepath).unwrap() - }; - - let json_reader = { - let mut json_filepath = PathBuf::from(env!("CARGO_MANIFEST_DIR")); - json_filepath.push(json_path); - let file = File::open(json_filepath).expect("Failed to read expected ast file"); - BufReader::new(file) - }; - - // Serializes the ast into JSON format. - let mut serialized_ast: serde_json::Value = serde_json::to_value(ast.as_repr()).unwrap(); - remove_key_from_json(&mut serialized_ast, "span"); - serialized_ast = normalize_json_value(serialized_ast); - - // Load the expected ast. - let expected: serde_json::Value = serde_json::from_reader(json_reader).unwrap(); - - assert_eq!(expected, serialized_ast); - } - clean(); -} - -// Helper functions to recursively filter keys from AST JSON. -// Redeclaring here since we don't want to make this public. -fn remove_key_from_json(value: &mut serde_json::Value, key: &str) { - match value { - serde_json::value::Value::Object(map) => { - map.remove(key); - for val in map.values_mut() { - remove_key_from_json(val, key); - } - } - serde_json::value::Value::Array(values) => { - for val in values.iter_mut() { - remove_key_from_json(val, key); - } - } - _ => (), - } -} - -// Helper function to normalize AST -// Redeclaring here because we don't want to make this public -fn normalize_json_value(value: serde_json::Value) -> serde_json::Value { - match value { - serde_json::Value::Array(vec) => { - let orig_length = vec.len(); - let mut new_vec: Vec = vec - .into_iter() - .filter(|v| !matches!(v, serde_json::Value::Object(map) if map.is_empty())) - .map(normalize_json_value) - .collect(); - - if orig_length == 2 && new_vec.len() == 1 { - new_vec.pop().unwrap() - } else { - serde_json::Value::Array(new_vec) - } - } - serde_json::Value::Object(map) => { - serde_json::Value::Object(map.into_iter().map(|(k, v)| (k, normalize_json_value(v))).collect()) - } - _ => value, - } -} - -// TODO Renable when we don't write spans to snapshots. -/* #[test] -#[cfg(not(feature = "ci_skip"))] -fn test_deserialize() { - setup(); - - // Load the expected ast. - let expected_ast = { - let mut program_filepath = PathBuf::from(env!("CARGO_MANIFEST_DIR")); - program_filepath.push("tests/serialization/main.leo"); - - to_ast(&program_filepath).unwrap() - }; - - // Construct an ast by deserializing a ast JSON file. - let serialized_ast = include_str!("expected_leo_ast.json"); - let ast = Ast::from_json_string(serialized_ast).unwrap(); - - clean(); - assert_eq!(expected_ast, ast); -} - -#[test] -fn test_serialize_deserialize_serialize() { - setup(); - - // Construct an ast from the given test file. - let ast = { - let mut program_filepath = PathBuf::from(env!("CARGO_MANIFEST_DIR")); - program_filepath.push("tests/serialization/main.leo"); - - to_ast(&program_filepath).unwrap() - }; - - // Serializes the ast into JSON format. - let serialized_ast = ast.to_json_string().unwrap(); - - // Deserializes the serialized ast into an ast. - let ast = Ast::from_json_string(&serialized_ast).unwrap(); - - // Reserializes the ast into JSON format. - let reserialized_ast = ast.to_json_string().unwrap(); - - clean(); - assert_eq!(serialized_ast, reserialized_ast); -} */ - -#[test] -fn test_generic_parser_error() { - setup(); - - let error_result = { - let mut program_filepath = PathBuf::from(env!("CARGO_MANIFEST_DIR")); - program_filepath.push("tests/serialization/leo/parser_error.leo"); - - to_ast(&program_filepath) - } - .map_err(|err| matches!(err, LeoError::ParserError(_))); - - clean(); - assert!(error_result.err().unwrap()); -} diff --git a/leo/errors/src/parser/parser_errors.rs b/leo/errors/src/parser/parser_errors.rs index 9b02ce6979..215cfd51f9 100644 --- a/leo/errors/src/parser/parser_errors.rs +++ b/leo/errors/src/parser/parser_errors.rs @@ -251,8 +251,8 @@ create_errors!( /// When a string is not properly closed. @backtraced lexer_string_not_closed { - args: (input: impl Display), - msg: format!("Expected a closed string but found `{}`.", input), + args: (input: impl Debug), + msg: format!("Expected a closed string but found `{:?}`.", input), help: None, } From 82ce58544ba5ac3257cba11554f363cfd3fbc3ce Mon Sep 17 00:00:00 2001 From: 0rphon <59403052+0rphon@users.noreply.github.com> Date: Tue, 15 Mar 2022 17:15:08 -0700 Subject: [PATCH 045/174] fixed ci --- compiler/parser/examples/input_parser.rs | 4 ++-- compiler/parser/examples/parser.rs | 2 +- compiler/parser/src/parser/context.rs | 14 ++++++-------- compiler/parser/src/tokenizer/lexer.rs | 4 ++-- leo/package/src/root/manifest.rs | 4 ++-- leo/span/src/tendril_json.rs | 2 +- tests/test-framework/src/runner.rs | 9 +-------- 7 files changed, 15 insertions(+), 24 deletions(-) diff --git a/compiler/parser/examples/input_parser.rs b/compiler/parser/examples/input_parser.rs index 6cc6661bcd..23da6f59e6 100644 --- a/compiler/parser/examples/input_parser.rs +++ b/compiler/parser/examples/input_parser.rs @@ -48,8 +48,8 @@ fn main() -> Result<(), String> { let input_tree = create_session_if_not_set_then(|_| { Handler::with(|handler| { let input = - leo_parser::parse_program_inputs(&handler, input_string.clone(), opt.input_path.to_str().unwrap())?; - Ok(input.to_json_string()?) + leo_parser::parse_program_inputs(handler, input_string.clone(), opt.input_path.to_str().unwrap())?; + input.to_json_string() }) .map_err(|e| e.to_string()) })?; diff --git a/compiler/parser/examples/parser.rs b/compiler/parser/examples/parser.rs index 3f040aba69..d9757a04f9 100644 --- a/compiler/parser/examples/parser.rs +++ b/compiler/parser/examples/parser.rs @@ -47,7 +47,7 @@ fn main() -> Result<(), String> { // Parses the Leo file constructing an ast which is then serialized. let serialized_leo_tree = create_session_if_not_set_then(|_| { Handler::with(|h| { - let ast = leo_parser::parse_ast(&h, opt.input_path.to_str().unwrap(), &code)?; + let ast = leo_parser::parse_ast(h, opt.input_path.to_str().unwrap(), &code)?; let json = Ast::to_json_string(&ast)?; println!("{}", json); Ok(json) diff --git a/compiler/parser/src/parser/context.rs b/compiler/parser/src/parser/context.rs index 91d1082de4..5cee96b54d 100644 --- a/compiler/parser/src/parser/context.rs +++ b/compiler/parser/src/parser/context.rs @@ -221,29 +221,27 @@ impl<'a> ParserContext<'a> { } let second = self.peek_group_coordinate(&mut i)?; - let right_paren_span; i = i.checked_sub(1)?; - if let Some(SpannedToken { + let right_paren_span = if let Some(SpannedToken { token: Token::RightParen, span, }) = self.tokens.get(i) { - right_paren_span = span.clone(); + span.clone() } else { return None; - } + }; - let end_span; i = i.checked_sub(1)?; - if let Some(SpannedToken { + let end_span = if let Some(SpannedToken { token: Token::Group, span, }) = self.tokens.get(i) { - end_span = span.clone(); + span.clone() } else { return None; - } + }; self.tokens.drain(i..); if let Err(e) = assert_no_whitespace( diff --git a/compiler/parser/src/tokenizer/lexer.rs b/compiler/parser/src/tokenizer/lexer.rs index b8c3c331c5..337e19368a 100644 --- a/compiler/parser/src/tokenizer/lexer.rs +++ b/compiler/parser/src/tokenizer/lexer.rs @@ -422,7 +422,7 @@ impl Token { eol + 4 } else { return Err(ParserError::lexer_block_comment_does_not_close_before_eof( - String::from_utf8_lossy(&input), + String::from_utf8_lossy(input), ) .into()); }; @@ -515,7 +515,7 @@ impl Token { )); } - Err(ParserError::could_not_lex(String::from_utf8_lossy(&input)).into()) + Err(ParserError::could_not_lex(String::from_utf8_lossy(input)).into()) } } diff --git a/leo/package/src/root/manifest.rs b/leo/package/src/root/manifest.rs index ca9d78a8bf..62df3e5f68 100644 --- a/leo/package/src/root/manifest.rs +++ b/leo/package/src/root/manifest.rs @@ -238,8 +238,8 @@ impl TryFrom<&Path> for Manifest { // Fetch the author from the old remote. let remote_author = old_remote .split('/') // Split the old remote as '"{author}' and '{package_name}"' - .nth(0).unwrap() // Fetch just the '"{author}' - .replace(&['\"', ' '], ""); // Remove the quotes from the author string + .next().unwrap() // Fetch just the '"{author}' + .replace(['\"', ' '].as_slice(), ""); // Remove the quotes from the author string // Construct the new remote section. let new_remote = format!( diff --git a/leo/span/src/tendril_json.rs b/leo/span/src/tendril_json.rs index 9a788e56a3..5f2194ab4c 100644 --- a/leo/span/src/tendril_json.rs +++ b/leo/span/src/tendril_json.rs @@ -21,7 +21,7 @@ use tendril::StrTendril; /// Serialization for the StrTendril type. pub fn serialize(tendril: &StrTendril, serializer: S) -> Result { - serializer.serialize_str(&tendril) + serializer.serialize_str(tendril) } /// Deserialization for the StrTendril type. diff --git a/tests/test-framework/src/runner.rs b/tests/test-framework/src/runner.rs index 522a33a34b..cae20affc7 100644 --- a/tests/test-framework/src/runner.rs +++ b/tests/test-framework/src/runner.rs @@ -70,14 +70,7 @@ fn take_hook( output: Result, Box>, panic_buf: Arc>>, ) -> Result, String> { - output.map_err(|_| { - panic_buf - .lock() - .unwrap() - .take() - .expect("failed to get panic message") - .clone() - }) + output.map_err(|_| panic_buf.lock().unwrap().take().expect("failed to get panic message")) } pub fn run_tests(runner: &T, expectation_category: &str) { From 71c4354d5b8fcfbc1e01f7f5d5c82487ccf4e330 Mon Sep 17 00:00:00 2001 From: 0rphon <59403052+0rphon@users.noreply.github.com> Date: Tue, 15 Mar 2022 17:28:12 -0700 Subject: [PATCH 046/174] updated circleci to use latest rust version --- .circleci/config.yml | 26 +++++++++++++------------- leo/package/src/root/manifest.rs | 2 +- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 9be4d7199a..2dcc4f14ca 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -46,7 +46,7 @@ commands: jobs: check-style: docker: - - image: cimg/rust:1.56.1 + - image: cimg/rust:1.59.0 resource_class: xlarge steps: - checkout @@ -61,7 +61,7 @@ jobs: clippy: docker: - - image: cimg/rust:1.56.1 + - image: cimg/rust:1.59.0 resource_class: xlarge steps: - checkout @@ -76,7 +76,7 @@ jobs: # code-cov: # docker: - # - image: cimg/rust:1.56.1 + # - image: cimg/rust:1.59.0 # resource_class: xlarge # environment: # RUSTC_BOOTSTRAP: 1 @@ -118,7 +118,7 @@ jobs: leo-executable: docker: - - image: cimg/rust:1.56.1 + - image: cimg/rust:1.59.0 resource_class: xlarge steps: - checkout @@ -136,7 +136,7 @@ jobs: # # leo-new: # docker: -# - image: cimg/rust:1.56.1 +# - image: cimg/rust:1.59.0 # resource_class: xlarge # steps: # - attach_workspace: @@ -149,7 +149,7 @@ jobs: # # leo-init: # docker: -# - image: cimg/rust:1.56.1 +# - image: cimg/rust:1.59.0 # resource_class: xlarge # steps: # - attach_workspace: @@ -162,7 +162,7 @@ jobs: # # leo-clean: # docker: -# - image: cimg/rust:1.56.1 +# - image: cimg/rust:1.59.0 # resource_class: xlarge # steps: # - attach_workspace: @@ -175,7 +175,7 @@ jobs: # # leo-setup: # docker: -# - image: cimg/rust:1.56.1 +# - image: cimg/rust:1.59.0 # resource_class: xlarge # steps: # - attach_workspace: @@ -188,7 +188,7 @@ jobs: # leo-add-remove: # docker: - # - image: cimg/rust:1.56.1 + # - image: cimg/rust:1.59.0 # resource_class: xlarge # steps: # - attach_workspace: @@ -202,7 +202,7 @@ jobs: # todo (collin): uncomment after compiler refactor # leo-check-constraints: # docker: -# - image: cimg/rust:1.56.1 +# - image: cimg/rust:1.59.0 # resource_class: xlarge # steps: # - attach_workspace: @@ -215,7 +215,7 @@ jobs: # # leo-login-logout: # docker: -# - image: cimg/rust:1.56.1 +# - image: cimg/rust:1.59.0 # resource_class: xlarge # steps: # - attach_workspace: @@ -228,7 +228,7 @@ jobs: # # leo-clone: # docker: -# - image: cimg/rust:1.56.1 +# - image: cimg/rust:1.59.0 # resource_class: xlarge # steps: # - attach_workspace: @@ -241,7 +241,7 @@ jobs: # # leo-publish: # docker: -# - image: cimg/rust:1.56.1 +# - image: cimg/rust:1.59.0 # resource_class: xlarge # steps: # - attach_workspace: diff --git a/leo/package/src/root/manifest.rs b/leo/package/src/root/manifest.rs index 62df3e5f68..b58e5fceec 100644 --- a/leo/package/src/root/manifest.rs +++ b/leo/package/src/root/manifest.rs @@ -239,7 +239,7 @@ impl TryFrom<&Path> for Manifest { let remote_author = old_remote .split('/') // Split the old remote as '"{author}' and '{package_name}"' .next().unwrap() // Fetch just the '"{author}' - .replace(['\"', ' '].as_slice(), ""); // Remove the quotes from the author string + .replace(&['\"', ' '], ""); // Remove the quotes from the author string // Construct the new remote section. let new_remote = format!( From 10c62b8d2c07e6258a1e48be9d71942c9e64bbee Mon Sep 17 00:00:00 2001 From: 0rphon <59403052+0rphon@users.noreply.github.com> Date: Tue, 15 Mar 2022 17:48:13 -0700 Subject: [PATCH 047/174] updates CircleCI to use 1.59.0 (#1687) --- .circleci/config.yml | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 9be4d7199a..2dcc4f14ca 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -46,7 +46,7 @@ commands: jobs: check-style: docker: - - image: cimg/rust:1.56.1 + - image: cimg/rust:1.59.0 resource_class: xlarge steps: - checkout @@ -61,7 +61,7 @@ jobs: clippy: docker: - - image: cimg/rust:1.56.1 + - image: cimg/rust:1.59.0 resource_class: xlarge steps: - checkout @@ -76,7 +76,7 @@ jobs: # code-cov: # docker: - # - image: cimg/rust:1.56.1 + # - image: cimg/rust:1.59.0 # resource_class: xlarge # environment: # RUSTC_BOOTSTRAP: 1 @@ -118,7 +118,7 @@ jobs: leo-executable: docker: - - image: cimg/rust:1.56.1 + - image: cimg/rust:1.59.0 resource_class: xlarge steps: - checkout @@ -136,7 +136,7 @@ jobs: # # leo-new: # docker: -# - image: cimg/rust:1.56.1 +# - image: cimg/rust:1.59.0 # resource_class: xlarge # steps: # - attach_workspace: @@ -149,7 +149,7 @@ jobs: # # leo-init: # docker: -# - image: cimg/rust:1.56.1 +# - image: cimg/rust:1.59.0 # resource_class: xlarge # steps: # - attach_workspace: @@ -162,7 +162,7 @@ jobs: # # leo-clean: # docker: -# - image: cimg/rust:1.56.1 +# - image: cimg/rust:1.59.0 # resource_class: xlarge # steps: # - attach_workspace: @@ -175,7 +175,7 @@ jobs: # # leo-setup: # docker: -# - image: cimg/rust:1.56.1 +# - image: cimg/rust:1.59.0 # resource_class: xlarge # steps: # - attach_workspace: @@ -188,7 +188,7 @@ jobs: # leo-add-remove: # docker: - # - image: cimg/rust:1.56.1 + # - image: cimg/rust:1.59.0 # resource_class: xlarge # steps: # - attach_workspace: @@ -202,7 +202,7 @@ jobs: # todo (collin): uncomment after compiler refactor # leo-check-constraints: # docker: -# - image: cimg/rust:1.56.1 +# - image: cimg/rust:1.59.0 # resource_class: xlarge # steps: # - attach_workspace: @@ -215,7 +215,7 @@ jobs: # # leo-login-logout: # docker: -# - image: cimg/rust:1.56.1 +# - image: cimg/rust:1.59.0 # resource_class: xlarge # steps: # - attach_workspace: @@ -228,7 +228,7 @@ jobs: # # leo-clone: # docker: -# - image: cimg/rust:1.56.1 +# - image: cimg/rust:1.59.0 # resource_class: xlarge # steps: # - attach_workspace: @@ -241,7 +241,7 @@ jobs: # # leo-publish: # docker: -# - image: cimg/rust:1.56.1 +# - image: cimg/rust:1.59.0 # resource_class: xlarge # steps: # - attach_workspace: From 9391a3156989463a1cd613ae109679eade1e71b1 Mon Sep 17 00:00:00 2001 From: gluax <16431709+gluax@users.noreply.github.com> Date: Wed, 16 Mar 2022 12:27:11 -0700 Subject: [PATCH 048/174] realized raw strings don't play nicely for testing strings --- compiler/ast/src/chars/char_value.rs | 2 +- compiler/parser/src/test.rs | 1 + compiler/parser/src/tokenizer/lexer.rs | 191 ++++++++++++++----------- compiler/parser/src/tokenizer/mod.rs | 7 +- compiler/parser/src/tokenizer/token.rs | 2 +- 5 files changed, 109 insertions(+), 94 deletions(-) diff --git a/compiler/ast/src/chars/char_value.rs b/compiler/ast/src/chars/char_value.rs index 37857a3c5d..37b6fbd87f 100644 --- a/compiler/ast/src/chars/char_value.rs +++ b/compiler/ast/src/chars/char_value.rs @@ -48,7 +48,7 @@ impl fmt::Display for Char { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { match self { Self::Scalar(c) => write!(f, "{}", c), - Self::NonScalar(c) => write!(f, "{}", c), + Self::NonScalar(c) => write!(f, "{:X}", c), } } } diff --git a/compiler/parser/src/test.rs b/compiler/parser/src/test.rs index 3e91f5d7f9..12bdf89074 100644 --- a/compiler/parser/src/test.rs +++ b/compiler/parser/src/test.rs @@ -259,6 +259,7 @@ impl Runner for TestRunner { } } +#[test] pub fn parser_tests() { leo_test_framework::run_tests(&TestRunner, "parser"); } diff --git a/compiler/parser/src/tokenizer/lexer.rs b/compiler/parser/src/tokenizer/lexer.rs index ded4dc2aef..db762f4663 100644 --- a/compiler/parser/src/tokenizer/lexer.rs +++ b/compiler/parser/src/tokenizer/lexer.rs @@ -19,7 +19,6 @@ use leo_errors::{ParserError, Result}; use leo_span::{Span, Symbol}; use serde::{Deserialize, Serialize}; -use tendril::StrTendril; use std::{fmt, iter::Peekable}; @@ -42,91 +41,109 @@ fn eat_identifier(input: &mut Peekable>) -> Option Result { - if input_tendril.is_empty() { + fn eat_unicode_char(input: &mut Peekable>) -> Result<(usize, Char)> { + let mut unicode = String::new(); + // Account for the chars '\' and 'u'. + let mut len = 2; + + if input.next_if_eq(&'{').is_some() { + len += 1; + } else if let Some(c) = input.next() { + return Err(ParserError::lexer_unopened_escaped_unicode_char(c).into()); + } else { return Err(ParserError::lexer_empty_input_tendril().into()); } - if escaped { - let string = input_tendril.to_string(); - let escaped = &string[1..input_tendril.len()]; + while let Some(c) = input.next_if(|c| c != &'}') { + len += 1; + unicode.push(c); + } - if escaped.len() != 1 { - return Err(ParserError::lexer_escaped_char_incorrect_length(escaped).into()); - } + if input.next_if_eq(&'}').is_some() { + len += 1; + } else { + return Err(ParserError::lexer_unclosed_escaped_unicode_char(unicode).into()); + } - if let Some(character) = escaped.chars().next() { - return match character { - '0' => Ok(Char::Scalar(0 as char)), - 't' => Ok(Char::Scalar(9 as char)), - 'n' => Ok(Char::Scalar(10 as char)), - 'r' => Ok(Char::Scalar(13 as char)), - '\"' => Ok(Char::Scalar(34 as char)), - '\'' => Ok(Char::Scalar(39 as char)), - '\\' => Ok(Char::Scalar(92 as char)), - _ => return Err(ParserError::lexer_expected_valid_escaped_char(character).into()), - }; + // Max of 6 digits. + // Minimum of 1 digit. + if unicode.len() > 6 || unicode.is_empty() { + return Err(ParserError::lexer_invalid_escaped_unicode_length(unicode).into()); + } + + if let Ok(hex) = u32::from_str_radix(&unicode, 16) { + if let Some(character) = std::char::from_u32(hex) { + // scalar + Ok((len, Char::Scalar(character))) + } else if hex <= 0x10FFFF { + Ok((len, Char::NonScalar(hex))) } else { - return Err(ParserError::lexer_unclosed_escaped_char().into()); + Err(ParserError::lexer_invalid_character_exceeded_max_value(unicode).into()) } + } else { + Err(ParserError::lexer_expected_valid_hex_char(unicode).into()) + } + } + + fn eat_hex_char(input: &mut Peekable>) -> Result<(usize, Char)> { + let mut hex = String::new(); + // Account for the chars '\' and 'x'. + let mut len = 2; + + // At least one hex character necessary. + if let Some(c) = input.next_if(|c| c != &'\'') { + len += 1; + hex.push(c); + } else if let Some(c) = input.next() { + return Err(ParserError::lexer_expected_valid_hex_char(c).into()); + } else { + return Err(ParserError::lexer_empty_input_tendril().into()); } - if hex { - let string = input_tendril.to_string(); - let hex_string = &string[2..string.len()]; - - if hex_string.len() != 2 { - return Err(ParserError::lexer_escaped_hex_incorrect_length(hex_string).into()); - } - - if let Ok(ascii_number) = u8::from_str_radix(hex_string, 16) { - // According to RFC, we allow only values less than 128. - if ascii_number > 127 { - return Err(ParserError::lexer_expected_valid_hex_char(ascii_number).into()); - } - - return Ok(Char::Scalar(ascii_number as char)); - } + // Second hex character optional. + if let Some(c) = input.next_if(|c| c != &'\'') { + len += 1; + hex.push(c); } - if unicode { - let string = input_tendril.to_string(); - if string.find('{').is_none() { - return Err(ParserError::lexer_unopened_escaped_unicode_char(string).into()); - } else if string.find('}').is_none() { - return Err(ParserError::lexer_unclosed_escaped_unicode_char(string).into()); + if let Ok(ascii_number) = u8::from_str_radix(&hex, 16) { + // According to RFC, we allow only values less than 128. + if ascii_number > 127 { + return Err(ParserError::lexer_expected_valid_hex_char(hex).into()); } - let unicode_number = &string[3..string.len() - 1]; - let len = unicode_number.len(); - if !(1..=6).contains(&len) { - return Err(ParserError::lexer_invalid_escaped_unicode_length(unicode_number).into()); - } - - if let Ok(hex) = u32::from_str_radix(unicode_number, 16) { - if let Some(character) = std::char::from_u32(hex) { - // scalar - return Ok(Char::Scalar(character)); - } else if hex <= 0x10FFFF { - return Ok(Char::NonScalar(hex)); - } else { - return Err(ParserError::lexer_invalid_character_exceeded_max_value(unicode_number).into()); - } - } + Ok((len, Char::Scalar(ascii_number as char))) + } else { + Err(ParserError::lexer_expected_valid_hex_char(hex).into()) } + } - if input_tendril.to_string().chars().count() != 1 { - // If char doesn't close. - return Err(ParserError::lexer_char_not_closed(&input_tendril[0..]).into()); - } else if let Some(character) = input_tendril.to_string().chars().next() { - // If its a simple char. - return Ok(Char::Scalar(character)); + fn eat_escaped_char(input: &mut Peekable>) -> Result<(usize, Char)> { + match input.next() { + None => Err(ParserError::lexer_empty_input_tendril().into()), + // Length of 2 to account the '\'. + Some('0') => Ok((2, Char::Scalar(0 as char))), + Some('t') => Ok((2, Char::Scalar(9 as char))), + Some('n') => Ok((2, Char::Scalar(10 as char))), + Some('r') => Ok((2, Char::Scalar(13 as char))), + Some('\"') => Ok((2, Char::Scalar(34 as char))), + Some('\'') => Ok((2, Char::Scalar(39 as char))), + Some('\\') => Ok((2, Char::Scalar(92 as char))), + Some('u') => Self::eat_unicode_char(input), + Some('x') => Self::eat_hex_char(input), + Some(c) => Err(ParserError::lexer_expected_valid_escaped_char(c).into()), } + } - Err(ParserError::lexer_invalid_char(input_tendril.to_string()).into()) + /// + /// Returns a `char` if a character can be eaten, otherwise returns [`None`]. + /// + fn eat_char(input: &mut Peekable>) -> Result<(usize, Char)> { + match input.next() { + None => Err(ParserError::lexer_empty_input_tendril().into()), + Some('\\') => Self::eat_escaped_char(input), + Some(c) => Ok((c.len_utf8(), Char::Scalar(c))), + } } /// @@ -186,16 +203,21 @@ impl Token { return Ok((1, Token::WhiteSpace)); } Some('"') => { - let mut string = Vec::new(); + let mut string: Vec = Vec::new(); input.next(); - while let Some(c) = input.next_if(|c| c != &'"') { - let character = leo_ast::Char::Scalar(c); - string.push(character); + let mut len = 0; + while let Some(c) = input.peek() { + if c == &'"' { + break; + } + let (char_len, character) = Self::eat_char(&mut input)?; + len += char_len; + string.push(character.into()); } if input.next_if_eq(&'"').is_some() { - return Ok((string.len() + 2, Token::StringLit(string))); + return Ok((len + 2, Token::StringLit(string))); } return Err(ParserError::lexer_string_not_closed(string).into()); @@ -203,19 +225,16 @@ impl Token { Some('\'') => { input.next(); - if let Some(c) = input.next() { - dbg!(&c); - if input.next_if_eq(&'\'').is_some() { - input.next(); - return Ok((c.len_utf8() + 2, Token::CharLit(Char::Scalar(c)))); - } else if let Some(c) = input.next() { - return Err(ParserError::lexer_string_not_closed(c).into()); - } else { - return Err(ParserError::lexer_empty_input_tendril().into()); - } - } + let (len, character) = Self::eat_char(&mut input)?; - return Err(ParserError::lexer_empty_input_tendril().into()); + if input.next_if_eq(&'\'').is_some() { + input.next(); + return Ok((len + 2, Token::CharLit(character))); + } else if let Some(c) = input.next() { + return Err(ParserError::lexer_string_not_closed(c).into()); + } else { + return Err(ParserError::lexer_empty_input_tendril().into()); + } } Some(x) if x.is_ascii_digit() => { return Self::eat_integer(&mut input); diff --git a/compiler/parser/src/tokenizer/mod.rs b/compiler/parser/src/tokenizer/mod.rs index 919c883fd6..e3daac5682 100644 --- a/compiler/parser/src/tokenizer/mod.rs +++ b/compiler/parser/src/tokenizer/mod.rs @@ -133,10 +133,6 @@ mod tests { r#" 'a' '😭' - '\u{10001F}' - '\x7f' - '\x00' - '\x37' "test" "test{}test" "test{}" @@ -235,13 +231,12 @@ mod tests { assert_eq!( output, - r#"'a' '😭' '\u{10001F}' "test" "test{}test" "test{}" "{}test" "test{" "test}" "test{test" "test}test" "te{{}}" aleo1qnr4dkkvkgfqph0vzc3y6z2eu975wnpz2925ntjccd5cfqxtyu8sta57j8 test_ident 12345 address as bool circuit const else false field for function group i128 i64 i32 i16 i8 if import in input let mut & return static string test true u128 u64 u32 u16 u8 self Self console ! != && ( ) * ** **= *= + += , - -= -> _ . .. ... / /= : :: ; < <= = == > >= @ [ ] { { } } || ? // test + r#"'a' '😭' "test" "test{}test" "test{}" "{}test" "test{" "test}" "test{test" "test}test" "te{{}}" aleo1qnr4dkkvkgfqph0vzc3y6z2eu975wnpz2925ntjccd5cfqxtyu8sta57j8 test_ident 12345 address as bool circuit const else false field for function group i128 i64 i32 i16 i8 if import in input let mut & return static string test true u128 u64 u32 u16 u8 self Self console ! != && ( ) * ** **= *= + += , - -= -> _ . .. ... / /= : :: ; < <= = == > >= @ [ ] { { } } || ? // test /* test */ // "# ); }); } - #[test] fn test_spans() { create_session_if_not_set_then(|_| { let raw = r#" diff --git a/compiler/parser/src/tokenizer/token.rs b/compiler/parser/src/tokenizer/token.rs index a9c3e17c86..167fd04dff 100644 --- a/compiler/parser/src/tokenizer/token.rs +++ b/compiler/parser/src/tokenizer/token.rs @@ -39,7 +39,7 @@ impl fmt::Display for Char { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { match self { Self::Scalar(c) => write!(f, "{}", c), - Self::NonScalar(c) => write!(f, "{}", c), + Self::NonScalar(c) => write!(f, "{:X}", c), } } } From 0e7d36a61c97fe1daa8c472512a1680600792013 Mon Sep 17 00:00:00 2001 From: gluax <16431709+gluax@users.noreply.github.com> Date: Wed, 16 Mar 2022 13:02:56 -0700 Subject: [PATCH 049/174] current tests pass --- compiler/parser/src/tokenizer/lexer.rs | 21 ++-- compiler/parser/src/tokenizer/mod.rs | 1 + .../parser/expression/literal/char.leo.out | 102 +++++++++--------- .../expression/literal/char_fail.leo.out | 62 +++++------ .../expression/literal/char_parse.leo.out | 102 +++++++++--------- .../parser/expression/literal/string.leo.out | 4 +- .../expression/literal/string_fail.leo.out | 16 +-- .../expression/literal/string_parse.leo.out | 6 +- .../parser/parser/program/pipe_eof.leo.out | 2 +- .../parser/parser/program/q_eof.leo.out | 2 +- .../parser/parser/program/sq_eof.leo.out | 2 +- .../program/unclosed_unicode_eof_fail.leo.out | 2 +- .../parser/serialize/palindrome.leo.out | 10 ++ 13 files changed, 175 insertions(+), 157 deletions(-) diff --git a/compiler/parser/src/tokenizer/lexer.rs b/compiler/parser/src/tokenizer/lexer.rs index db762f4663..4750d86105 100644 --- a/compiler/parser/src/tokenizer/lexer.rs +++ b/compiler/parser/src/tokenizer/lexer.rs @@ -90,7 +90,7 @@ impl Token { // Account for the chars '\' and 'x'. let mut len = 2; - // At least one hex character necessary. + // First hex character. if let Some(c) = input.next_if(|c| c != &'\'') { len += 1; hex.push(c); @@ -100,10 +100,14 @@ impl Token { return Err(ParserError::lexer_empty_input_tendril().into()); } - // Second hex character optional. + // Second hex character. if let Some(c) = input.next_if(|c| c != &'\'') { len += 1; hex.push(c); + } else if let Some(c) = input.next() { + return Err(ParserError::lexer_expected_valid_hex_char(c).into()); + } else { + return Err(ParserError::lexer_empty_input_tendril().into()); } if let Ok(ascii_number) = u8::from_str_radix(&hex, 16) { @@ -313,10 +317,9 @@ impl Token { return Ok((1, Token::Dot)); } Some(c) if c == &'/' => { - let mut comment = String::from(*c); input.next(); - if let Some(c) = input.next_if_eq(&'/') { - comment.push(c); + if input.next_if_eq(&'/').is_some() { + let mut comment = String::from("//"); while let Some(c) = input.next_if(|c| c != &'\n') { comment.push(c); @@ -324,12 +327,12 @@ impl Token { if let Some(newline) = input.next_if_eq(&'\n') { comment.push(newline); - return Ok((comment.len() + 1, Token::CommentLine(comment))); + return Ok((comment.len(), Token::CommentLine(comment))); } return Ok((comment.len(), Token::CommentLine(comment))); - } else if let Some(c) = input.next_if_eq(&'*') { - comment.push(c); + } else if input.next_if_eq(&'*').is_some() { + let mut comment = String::from("/*"); if input.peek().is_none() { return Err(ParserError::lexer_empty_block_comment().into()); @@ -348,7 +351,7 @@ impl Token { if !ended { return Err(ParserError::lexer_block_comment_does_not_close_before_eof(comment).into()); } - return Ok((comment.len() + 4, Token::CommentBlock(comment))); + return Ok((comment.len(), Token::CommentBlock(comment))); } else if input.next_if_eq(&'=').is_some() { return Ok((2, Token::DivEq)); } diff --git a/compiler/parser/src/tokenizer/mod.rs b/compiler/parser/src/tokenizer/mod.rs index e3daac5682..bd935311aa 100644 --- a/compiler/parser/src/tokenizer/mod.rs +++ b/compiler/parser/src/tokenizer/mod.rs @@ -237,6 +237,7 @@ mod tests { }); } + #[test] fn test_spans() { create_session_if_not_set_then(|_| { let raw = r#" diff --git a/tests/expectations/parser/parser/expression/literal/char.leo.out b/tests/expectations/parser/parser/expression/literal/char.leo.out index fa87952664..3d84a2cece 100644 --- a/tests/expectations/parser/parser/expression/literal/char.leo.out +++ b/tests/expectations/parser/parser/expression/literal/char.leo.out @@ -2,54 +2,54 @@ namespace: Token expectation: Pass outputs: - - "'a' @ 1:1-4" - - "'Z' @ 1:1-4" - - "'\"' @ 1:1-5" - - "'' @ 1:1-5" - - "'' @ 1:1-5" - - "'\u0000' @ 1:1-5" - - "'\u000f' @ 1:1-8" - - "'' @ 1:1-6" - - "'å' @ 1:1-9" - - "'å' @ 1:1-5" - - "'Ӡ' @ 1:1-10" - - "'Ӡ' @ 1:1-5" - - "'❤' @ 1:1-11" - - "'❤' @ 1:1-6" - - "'😢' @ 1:1-12" - - "'😭' @ 1:1-7" - - "'􀀟' @ 1:1-13" - - "'*' @ 1:1-7" - - "'\u007f' @ 1:1-7" - - "'\u0000' @ 1:1-7" - - "'\u0001' @ 1:1-7" - - "'\u0002' @ 1:1-7" - - "'\u0003' @ 1:1-7" - - "'\u0004' @ 1:1-7" - - "'\u0005' @ 1:1-7" - - "'\u0006' @ 1:1-7" - - "'\u0007' @ 1:1-7" - - "'\u0010' @ 1:1-7" - - "'\u0011' @ 1:1-7" - - "'\u0012' @ 1:1-7" - - "'\u0013' @ 1:1-7" - - "'\u0014' @ 1:1-7" - - "'\u0015' @ 1:1-7" - - "'\u0016' @ 1:1-7" - - "'\u0017' @ 1:1-7" - - "'' @ 1:1-7" - - "'!' @ 1:1-7" - - "'\"' @ 1:1-7" - - "'#' @ 1:1-7" - - "'$' @ 1:1-7" - - "'%' @ 1:1-7" - - "'&' @ 1:1-7" - - "''' @ 1:1-7" - - "'0' @ 1:1-7" - - "'1' @ 1:1-7" - - "'2' @ 1:1-7" - - "'3' @ 1:1-7" - - "'4' @ 1:1-7" - - "'5' @ 1:1-7" - - "'6' @ 1:1-7" - - "'7' @ 1:1-7" + - "''a'' @ 1:1-4" + - "''Z'' @ 1:1-4" + - "''\"'' @ 1:1-5" + - "''\t'' @ 1:1-5" + - "''\r'' @ 1:1-5" + - "''\u0000'' @ 1:1-5" + - "''\u000f'' @ 1:1-8" + - "'''' @ 1:1-6" + - "''å'' @ 1:1-9" + - "''å'' @ 1:1-5" + - "''Ӡ'' @ 1:1-10" + - "''Ӡ'' @ 1:1-5" + - "''❤'' @ 1:1-11" + - "''❤'' @ 1:1-6" + - "''😢'' @ 1:1-12" + - "''😭'' @ 1:1-7" + - "''􀀟'' @ 1:1-13" + - "''*'' @ 1:1-7" + - "''\u007f'' @ 1:1-7" + - "''\u0000'' @ 1:1-7" + - "''\u0001'' @ 1:1-7" + - "''\u0002'' @ 1:1-7" + - "''\u0003'' @ 1:1-7" + - "''\u0004'' @ 1:1-7" + - "''\u0005'' @ 1:1-7" + - "''\u0006'' @ 1:1-7" + - "''\u0007'' @ 1:1-7" + - "''\u0010'' @ 1:1-7" + - "''\u0011'' @ 1:1-7" + - "''\u0012'' @ 1:1-7" + - "''\u0013'' @ 1:1-7" + - "''\u0014'' @ 1:1-7" + - "''\u0015'' @ 1:1-7" + - "''\u0016'' @ 1:1-7" + - "''\u0017'' @ 1:1-7" + - "'' '' @ 1:1-7" + - "''!'' @ 1:1-7" + - "''\"'' @ 1:1-7" + - "''#'' @ 1:1-7" + - "''$'' @ 1:1-7" + - "''%'' @ 1:1-7" + - "''&'' @ 1:1-7" + - "''''' @ 1:1-7" + - "''0'' @ 1:1-7" + - "''1'' @ 1:1-7" + - "''2'' @ 1:1-7" + - "''3'' @ 1:1-7" + - "''4'' @ 1:1-7" + - "''5'' @ 1:1-7" + - "''6'' @ 1:1-7" + - "''7'' @ 1:1-7" diff --git a/tests/expectations/parser/parser/expression/literal/char_fail.leo.out b/tests/expectations/parser/parser/expression/literal/char_fail.leo.out index c7aaedc6ce..61b1087364 100644 --- a/tests/expectations/parser/parser/expression/literal/char_fail.leo.out +++ b/tests/expectations/parser/parser/expression/literal/char_fail.leo.out @@ -2,22 +2,22 @@ namespace: Token expectation: Fail outputs: - - "Error [EPAR0370028]: Expected a closed char but found `'\\'`." - - "Error [EPAR0370028]: Expected a closed char but found `'a`." - "Error [EPAR0370024]: Expected more characters to lex but found none." - - "Error [EPAR0370036]: Expected a valid hex character but found `154`." - - "Error [EPAR0370035]: Could not lex the following escaped hex due to being given more than two chars: `7`." - - "Error [EPAR0370028]: Expected a closed char but found `\\x7g`." - - "Error [EPAR0370035]: Could not lex the following escaped hex due to being given more than two chars: `z`." - - "Error [EPAR0370036]: Expected a valid hex character but found `128`." - - "Error [EPAR0370036]: Expected a valid hex character but found `193`." - - "Error [EPAR0370036]: Expected a valid hex character but found `194`." - - "Error [EPAR0370036]: Expected a valid hex character but found `223`." - - "Error [EPAR0370036]: Expected a valid hex character but found `192`." - - "Error [EPAR0370036]: Expected a valid hex character but found `224`." - - "Error [EPAR0370036]: Expected a valid hex character but found `159`." - - "Error [EPAR0370028]: Expected a closed char but found `abcdefg`." - - "Error [EPAR0370033]: Could not lex the following escaped char due to being given more than one char: `t\\t`." + - "Error [EPAR0370024]: Expected more characters to lex but found none." + - "Error [EPAR0370024]: Expected more characters to lex but found none." + - "Error [EPAR0370036]: Expected a valid hex character but found `9A`." + - "Error [EPAR0370036]: Expected a valid hex character but found `'`." + - "Error [EPAR0370036]: Expected a valid hex character but found `7g`." + - "Error [EPAR0370036]: Expected a valid hex character but found `'`." + - "Error [EPAR0370036]: Expected a valid hex character but found `80`." + - "Error [EPAR0370036]: Expected a valid hex character but found `c1`." + - "Error [EPAR0370036]: Expected a valid hex character but found `c2`." + - "Error [EPAR0370036]: Expected a valid hex character but found `DF`." + - "Error [EPAR0370036]: Expected a valid hex character but found `C0`." + - "Error [EPAR0370036]: Expected a valid hex character but found `e0`." + - "Error [EPAR0370036]: Expected a valid hex character but found `9f`." + - "Error [EPAR0370027]: Expected a closed string but found `'b'`." + - "Error [EPAR0370027]: Expected a closed string but found `'\\\\'`." - "Error [EPAR0370026]: Expected a valid escape character but found `a`." - "Error [EPAR0370026]: Expected a valid escape character but found `z`." - "Error [EPAR0370026]: Expected a valid escape character but found `A`." @@ -25,20 +25,20 @@ outputs: - "Error [EPAR0370026]: Expected a valid escape character but found `1`." - "Error [EPAR0370026]: Expected a valid escape character but found `9`." - "Error [EPAR0370026]: Expected a valid escape character but found `*`." - - "Error [EPAR0370035]: Could not lex the following escaped hex due to being given more than two chars: ``." - - "Error [EPAR0370026]: Expected a valid escape character but found `39`." - - "Error [EPAR0370038]: The escaped unicode char `bbbbb}\\u{aaaa` is not within valid length of [1, 6]." - - "Error [EPAR0370026]: Expected a valid escape character but found `122`." - - "Error [EPAR0370026]: Expected a valid escape character but found `49`." - - "Error [EPAR0370026]: Expected a valid escape character but found `49`." - - "Error [EPAR0370037]: There was no closing `}` after a escaped unicode `\\u{2764z`." - - "Error [EPAR0370028]: Expected a closed char but found `\\u{276g}`." - - "Error [EPAR0370026]: Expected a valid escape character but found `48`." - - "Error [EPAR0370026]: Expected a valid escape character but found `48`." - - "Error [EPAR0370026]: Expected a valid escape character but found `57`." + - "Error [EPAR0370036]: Expected a valid hex character but found `'`." + - "Error [EPAR0370042]: There was no opening `{` after starting an escaped unicode `'`." + - "Error [EPAR0370027]: Expected a closed string but found `'\\\\'`." + - "Error [EPAR0370042]: There was no opening `{` after starting an escaped unicode `z`." + - "Error [EPAR0370042]: There was no opening `{` after starting an escaped unicode `1`." + - "Error [EPAR0370042]: There was no opening `{` after starting an escaped unicode `1`." + - "Error [EPAR0370037]: There was no closing `}` after a escaped unicode `2764z'`." + - "Error [EPAR0370036]: Expected a valid hex character but found `276g`." + - "Error [EPAR0370042]: There was no opening `{` after starting an escaped unicode `0`." + - "Error [EPAR0370042]: There was no opening `{` after starting an escaped unicode `0`." + - "Error [EPAR0370042]: There was no opening `{` after starting an escaped unicode `9`." - "Error [EPAR0370039]: The escaped unicode char `110000` is greater than 0x10FFFF." - - "Error [EPAR0370026]: Expected a valid escape character but found `125`." - - "Error [EPAR0370037]: There was no closing `}` after a escaped unicode `\\u{af🦀`." - - "Error [EPAR0370029]: Expected valid character but found `'🦀\\n`." - - "Error [EPAR0370029]: Expected valid character but found `'🦀1🦀`." - - "Error [EPAR0370029]: Expected valid character but found `'😭😂`." + - "Error [EPAR0370042]: There was no opening `{` after starting an escaped unicode `}`." + - "Error [EPAR0370037]: There was no closing `}` after a escaped unicode `af🦀'`." + - "Error [EPAR0370027]: Expected a closed string but found `'\\\\'`." + - "Error [EPAR0370027]: Expected a closed string but found `'1'`." + - "Error [EPAR0370027]: Expected a closed string but found `'😂'`." diff --git a/tests/expectations/parser/parser/expression/literal/char_parse.leo.out b/tests/expectations/parser/parser/expression/literal/char_parse.leo.out index fa87952664..3d84a2cece 100644 --- a/tests/expectations/parser/parser/expression/literal/char_parse.leo.out +++ b/tests/expectations/parser/parser/expression/literal/char_parse.leo.out @@ -2,54 +2,54 @@ namespace: Token expectation: Pass outputs: - - "'a' @ 1:1-4" - - "'Z' @ 1:1-4" - - "'\"' @ 1:1-5" - - "'' @ 1:1-5" - - "'' @ 1:1-5" - - "'\u0000' @ 1:1-5" - - "'\u000f' @ 1:1-8" - - "'' @ 1:1-6" - - "'å' @ 1:1-9" - - "'å' @ 1:1-5" - - "'Ӡ' @ 1:1-10" - - "'Ӡ' @ 1:1-5" - - "'❤' @ 1:1-11" - - "'❤' @ 1:1-6" - - "'😢' @ 1:1-12" - - "'😭' @ 1:1-7" - - "'􀀟' @ 1:1-13" - - "'*' @ 1:1-7" - - "'\u007f' @ 1:1-7" - - "'\u0000' @ 1:1-7" - - "'\u0001' @ 1:1-7" - - "'\u0002' @ 1:1-7" - - "'\u0003' @ 1:1-7" - - "'\u0004' @ 1:1-7" - - "'\u0005' @ 1:1-7" - - "'\u0006' @ 1:1-7" - - "'\u0007' @ 1:1-7" - - "'\u0010' @ 1:1-7" - - "'\u0011' @ 1:1-7" - - "'\u0012' @ 1:1-7" - - "'\u0013' @ 1:1-7" - - "'\u0014' @ 1:1-7" - - "'\u0015' @ 1:1-7" - - "'\u0016' @ 1:1-7" - - "'\u0017' @ 1:1-7" - - "'' @ 1:1-7" - - "'!' @ 1:1-7" - - "'\"' @ 1:1-7" - - "'#' @ 1:1-7" - - "'$' @ 1:1-7" - - "'%' @ 1:1-7" - - "'&' @ 1:1-7" - - "''' @ 1:1-7" - - "'0' @ 1:1-7" - - "'1' @ 1:1-7" - - "'2' @ 1:1-7" - - "'3' @ 1:1-7" - - "'4' @ 1:1-7" - - "'5' @ 1:1-7" - - "'6' @ 1:1-7" - - "'7' @ 1:1-7" + - "''a'' @ 1:1-4" + - "''Z'' @ 1:1-4" + - "''\"'' @ 1:1-5" + - "''\t'' @ 1:1-5" + - "''\r'' @ 1:1-5" + - "''\u0000'' @ 1:1-5" + - "''\u000f'' @ 1:1-8" + - "'''' @ 1:1-6" + - "''å'' @ 1:1-9" + - "''å'' @ 1:1-5" + - "''Ӡ'' @ 1:1-10" + - "''Ӡ'' @ 1:1-5" + - "''❤'' @ 1:1-11" + - "''❤'' @ 1:1-6" + - "''😢'' @ 1:1-12" + - "''😭'' @ 1:1-7" + - "''􀀟'' @ 1:1-13" + - "''*'' @ 1:1-7" + - "''\u007f'' @ 1:1-7" + - "''\u0000'' @ 1:1-7" + - "''\u0001'' @ 1:1-7" + - "''\u0002'' @ 1:1-7" + - "''\u0003'' @ 1:1-7" + - "''\u0004'' @ 1:1-7" + - "''\u0005'' @ 1:1-7" + - "''\u0006'' @ 1:1-7" + - "''\u0007'' @ 1:1-7" + - "''\u0010'' @ 1:1-7" + - "''\u0011'' @ 1:1-7" + - "''\u0012'' @ 1:1-7" + - "''\u0013'' @ 1:1-7" + - "''\u0014'' @ 1:1-7" + - "''\u0015'' @ 1:1-7" + - "''\u0016'' @ 1:1-7" + - "''\u0017'' @ 1:1-7" + - "'' '' @ 1:1-7" + - "''!'' @ 1:1-7" + - "''\"'' @ 1:1-7" + - "''#'' @ 1:1-7" + - "''$'' @ 1:1-7" + - "''%'' @ 1:1-7" + - "''&'' @ 1:1-7" + - "''''' @ 1:1-7" + - "''0'' @ 1:1-7" + - "''1'' @ 1:1-7" + - "''2'' @ 1:1-7" + - "''3'' @ 1:1-7" + - "''4'' @ 1:1-7" + - "''5'' @ 1:1-7" + - "''6'' @ 1:1-7" + - "''7'' @ 1:1-7" diff --git a/tests/expectations/parser/parser/expression/literal/string.leo.out b/tests/expectations/parser/parser/expression/literal/string.leo.out index a346d6b703..c6b41bc0d5 100644 --- a/tests/expectations/parser/parser/expression/literal/string.leo.out +++ b/tests/expectations/parser/parser/expression/literal/string.leo.out @@ -15,5 +15,5 @@ outputs: - "'\"\n\"' @ 1:1-7" - "'\"\u007f\"' @ 1:1-7" - "'\"aa \\ \" \n aa \t \r \u0000\"' @ 1:1-28" - - "'\"test \"' @ 1:1-15" - - "'\"\"' @ 1:1-15" + - "'\"test 😒€\"' @ 1:1-15" + - "'\"😭😂😘\"' @ 1:1-15" diff --git a/tests/expectations/parser/parser/expression/literal/string_fail.leo.out b/tests/expectations/parser/parser/expression/literal/string_fail.leo.out index 8865fffa53..6a71ca45fb 100644 --- a/tests/expectations/parser/parser/expression/literal/string_fail.leo.out +++ b/tests/expectations/parser/parser/expression/literal/string_fail.leo.out @@ -2,12 +2,12 @@ namespace: Token expectation: Fail outputs: - - "Error [EPAR0370027]: Expected a closed string but found `\"Hello world!`." - - "Error [EPAR0370027]: Expected a closed string but found `\"\\\"`." + - "Error [EPAR0370027]: Expected a closed string but found `[Scalar('H'), Scalar('e'), Scalar('l'), Scalar('l'), Scalar('o'), Scalar(' '), Scalar('w'), Scalar('o'), Scalar('r'), Scalar('l'), Scalar('d'), Scalar('!')]`." + - "Error [EPAR0370027]: Expected a closed string but found `[Scalar('\"')]`." - "Error [EPAR0370026]: Expected a valid escape character but found `l`." - - "Error [EPAR0370027]: Expected a closed string but found `\"\\uaaa\"`." - - "Error [EPAR0370027]: Expected a closed string but found `\"\\u\"`." - - "Error [EPAR0370036]: Expected a valid hex character but found `255`." - - "Error [EPAR0370027]: Expected a closed string but found `\"\\x\"`." - - "Error [EPAR0370042]: There was no opening `{` after starting an escaped unicode `\\u}`." - - "Error [EPAR0370043]: There was an emoji found in the escaped unicode character: `\"\\u6🦀`." + - "Error [EPAR0370042]: There was no opening `{` after starting an escaped unicode `a`." + - "Error [EPAR0370042]: There was no opening `{` after starting an escaped unicode `\"`." + - "Error [EPAR0370036]: Expected a valid hex character but found `FF`." + - "Error [EPAR0370024]: Expected more characters to lex but found none." + - "Error [EPAR0370042]: There was no opening `{` after starting an escaped unicode `}`." + - "Error [EPAR0370042]: There was no opening `{` after starting an escaped unicode `6`." diff --git a/tests/expectations/parser/parser/expression/literal/string_parse.leo.out b/tests/expectations/parser/parser/expression/literal/string_parse.leo.out index 2f4bf81ada..cd98aa67b8 100644 --- a/tests/expectations/parser/parser/expression/literal/string_parse.leo.out +++ b/tests/expectations/parser/parser/expression/literal/string_parse.leo.out @@ -177,6 +177,8 @@ outputs: - Scalar: 115 - Scalar: 116 - Scalar: 32 + - Scalar: 128530 + - Scalar: 8364 - span: line_start: 1 line_stop: 1 @@ -186,7 +188,9 @@ outputs: content: "\"test 😒€\"" - Value: String: - - [] + - - Scalar: 128557 + - Scalar: 128514 + - Scalar: 128536 - span: line_start: 1 line_stop: 1 diff --git a/tests/expectations/parser/parser/program/pipe_eof.leo.out b/tests/expectations/parser/parser/program/pipe_eof.leo.out index 2103e7b671..fce74aefd6 100644 --- a/tests/expectations/parser/parser/program/pipe_eof.leo.out +++ b/tests/expectations/parser/parser/program/pipe_eof.leo.out @@ -2,4 +2,4 @@ namespace: Parse expectation: Fail outputs: - - "Error [EPAR0370032]: Could not lex the following content: `|`." + - "Error [EPAR0370024]: Expected more characters to lex but found none." diff --git a/tests/expectations/parser/parser/program/q_eof.leo.out b/tests/expectations/parser/parser/program/q_eof.leo.out index 68f7c3b559..253e235d75 100644 --- a/tests/expectations/parser/parser/program/q_eof.leo.out +++ b/tests/expectations/parser/parser/program/q_eof.leo.out @@ -2,4 +2,4 @@ namespace: Parse expectation: Fail outputs: - - "Error [EPAR0370027]: Expected a closed string but found `\"`." + - "Error [EPAR0370027]: Expected a closed string but found `[]`." diff --git a/tests/expectations/parser/parser/program/sq_eof.leo.out b/tests/expectations/parser/parser/program/sq_eof.leo.out index 1bab5ffabb..fce74aefd6 100644 --- a/tests/expectations/parser/parser/program/sq_eof.leo.out +++ b/tests/expectations/parser/parser/program/sq_eof.leo.out @@ -2,4 +2,4 @@ namespace: Parse expectation: Fail outputs: - - "Error [EPAR0370028]: Expected a closed char but found `'`." + - "Error [EPAR0370024]: Expected more characters to lex but found none." diff --git a/tests/expectations/parser/parser/program/unclosed_unicode_eof_fail.leo.out b/tests/expectations/parser/parser/program/unclosed_unicode_eof_fail.leo.out index ad932d117a..fce74aefd6 100644 --- a/tests/expectations/parser/parser/program/unclosed_unicode_eof_fail.leo.out +++ b/tests/expectations/parser/parser/program/unclosed_unicode_eof_fail.leo.out @@ -2,4 +2,4 @@ namespace: Parse expectation: Fail outputs: - - "Error [EPAR0370026]: Expected a valid escape character but found `117`." + - "Error [EPAR0370024]: Expected more characters to lex but found none." diff --git a/tests/expectations/parser/parser/serialize/palindrome.leo.out b/tests/expectations/parser/parser/serialize/palindrome.leo.out index df0ea483e8..6ecc69d502 100644 --- a/tests/expectations/parser/parser/serialize/palindrome.leo.out +++ b/tests/expectations/parser/parser/serialize/palindrome.leo.out @@ -416,6 +416,10 @@ outputs: arguments: - Value: String: + - Scalar: 128512 + - Scalar: 128512 + - Scalar: 128512 + - Scalar: 128512 - Scalar: 128512 - Scalar: 32 - Scalar: 32 @@ -426,6 +430,12 @@ outputs: - Scalar: 32 - Scalar: 32 - Scalar: 32 + - Scalar: 32 + - Scalar: 128512 + - Scalar: 128512 + - Scalar: 128512 + - Scalar: 128512 + - Scalar: 128512 - Console: function: Assert: From 9ef1b8f73af212425c051760478a54b4ad60c930 Mon Sep 17 00:00:00 2001 From: 0rphon <59403052+0rphon@users.noreply.github.com> Date: Wed, 16 Mar 2022 13:07:52 -0700 Subject: [PATCH 050/174] forgot to remove some comments --- compiler/ast-passes/src/canonicalization/canonicalizer.rs | 2 +- compiler/parser/src/tokenizer/lexer.rs | 4 ---- compiler/parser/src/tokenizer/mod.rs | 2 -- 3 files changed, 1 insertion(+), 7 deletions(-) diff --git a/compiler/ast-passes/src/canonicalization/canonicalizer.rs b/compiler/ast-passes/src/canonicalization/canonicalizer.rs index 58260fbb95..87d2efde05 100644 --- a/compiler/ast-passes/src/canonicalization/canonicalizer.rs +++ b/compiler/ast-passes/src/canonicalization/canonicalizer.rs @@ -442,7 +442,7 @@ impl Canonicalizer { match &console_function_call.function { ConsoleFunction::Error(_) => ConsoleFunction::Error(console_args), ConsoleFunction::Log(_) => ConsoleFunction::Log(console_args), - _ => unimplemented!(), // impossible + _ => unimplemented!(), } } }; diff --git a/compiler/parser/src/tokenizer/lexer.rs b/compiler/parser/src/tokenizer/lexer.rs index 337e19368a..7df2a7f0dd 100644 --- a/compiler/parser/src/tokenizer/lexer.rs +++ b/compiler/parser/src/tokenizer/lexer.rs @@ -147,12 +147,10 @@ impl Token { /// fn eat_integer(input_tendril: &StrTendril) -> Result<(usize, Token)> { if input_tendril.is_empty() { - // impossible to hit if function is used correctly return Err(ParserError::lexer_empty_input_tendril().into()); } let input = input_tendril.as_bytes(); if !input[0].is_ascii_digit() { - // impossible to hit if function is used correctly return Err(ParserError::lexer_eat_integer_leading_zero(String::from_utf8_lossy(input)).into()); } let mut i = 1; @@ -182,10 +180,8 @@ impl Token { mask >>= 1; } if result == 0 { - // impossible to hit if function is used correctly 1 } else if result > 4 { - // only possible if invalid chars were sent directly to parser 4 } else { result diff --git a/compiler/parser/src/tokenizer/mod.rs b/compiler/parser/src/tokenizer/mod.rs index 4ffdc96026..81d674b0b1 100644 --- a/compiler/parser/src/tokenizer/mod.rs +++ b/compiler/parser/src/tokenizer/mod.rs @@ -44,10 +44,8 @@ pub(crate) fn tokenize(path: &str, input: StrTendril) -> Result { if token_len == 0 && index == input.len() { - // impossible to hit, whitespace always returns token_len = 1 break; } else if token_len == 0 { - // impossible to hit, whitespace always returns token_len = 1 return Err(ParserError::unexpected_token( &input[index..].chars().next().unwrap(), &Span::new( From ca6ae112ff17551f3effcc0c2d4a3c5a9566dab6 Mon Sep 17 00:00:00 2001 From: 0rphon <59403052+0rphon@users.noreply.github.com> Date: Wed, 16 Mar 2022 13:15:58 -0700 Subject: [PATCH 051/174] fixed take_hook --- tests/test-framework/src/runner.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/test-framework/src/runner.rs b/tests/test-framework/src/runner.rs index cae20affc7..a1be3677af 100644 --- a/tests/test-framework/src/runner.rs +++ b/tests/test-framework/src/runner.rs @@ -70,6 +70,7 @@ fn take_hook( output: Result, Box>, panic_buf: Arc>>, ) -> Result, String> { + let _ = panic::take_hook(); output.map_err(|_| panic_buf.lock().unwrap().take().expect("failed to get panic message")) } From 34e1b39805d217f19c4d149904e0c3d0e90ff965 Mon Sep 17 00:00:00 2001 From: gluax <16431709+gluax@users.noreply.github.com> Date: Wed, 16 Mar 2022 15:04:49 -0700 Subject: [PATCH 052/174] some cleanup --- compiler/parser/default.profraw | Bin 0 -> 3142104 bytes compiler/parser/src/tokenizer/lexer.rs | 23 +---- covered.yml | Bin 0 -> 46242 bytes default.profraw | Bin 0 -> 10854168 bytes leo/errors/covered.yml | Bin 0 -> 46060 bytes leo/errors/src/parser/parser_errors.rs | 51 +--------- .../parser/circuits/mixed_order_fail.leo.out | 2 +- .../parser/circuits/mut_self_fail.leo.out | 2 +- .../circuits/self_not_first_fail.leo.out | 2 +- .../parser/expression/array_init_fail.leo.out | 4 +- .../expression/literal/char_fail.leo.out | 88 +++++++++--------- .../expression/literal/comment_fail.leo.out | 18 ++-- .../expression/literal/int_fail.leo.out | 6 +- .../expression/literal/string_fail.leo.out | 24 ++--- .../functions/annotated_arg_not_ident.leo.out | 2 +- .../functions/annotated_context_fail.leo.out | 2 +- .../parser/functions/escape_fail.leo.out | 2 +- .../parser/program/backslash_eof.leo.out | 2 +- .../parser/parser/program/dollar_eof.leo.out | 2 +- .../parser/program/escape_u8_eof.leo.out | 2 +- .../parser/parser/program/hex_eof.leo.out | 2 +- .../parser/parser/program/pipe_eof.leo.out | 2 +- .../parser/parser/program/q_eof.leo.out | 2 +- .../parser/parser/program/sq_eof.leo.out | 2 +- .../parser/parser/program/tilde_eof.leo.out | 2 +- .../program/unclosed_unicode_eof_fail.leo.out | 2 +- .../parser/statement/assign_fail.leo.out | 2 +- .../parser/statement/definition_fail.leo.out | 48 +++++----- .../parser/statement/expression_fail.leo.out | 4 +- .../parser/statement/hex_int_fail.leo.out | 6 +- .../parser/statement/let_mut_recover.leo.out | 2 +- tests/test-framework/src/bin/errcov.rs | 2 +- 32 files changed, 122 insertions(+), 186 deletions(-) create mode 100644 compiler/parser/default.profraw create mode 100644 covered.yml create mode 100644 default.profraw create mode 100644 leo/errors/covered.yml diff --git a/compiler/parser/default.profraw b/compiler/parser/default.profraw new file mode 100644 index 0000000000000000000000000000000000000000..d9ada89c28c30132003615ede889b3ac16f0bcd6 GIT binary patch literal 3142104 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�K`LK}%N$OmBdPwlK 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�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≺Stm9Ta?6nm+Gkq$jZ zf*B3tFDdm3;$VjkinA)87q10Pz4)7>xuMv% zyuoLJk^Lpu9DznOIr29w!K~n5&OD0h@x7hjL@I9n^tthy(BsDMhF~`MNHgMWEjYem zczSFE69(RnvgZp-$ZJBAn=bF@;e{P0XjoC3e;R9OMUN+6S}r@lm!gO8R|C8OJx2T< z+zb1adWn`#iHYc&fD9HjWBn^H4xYn(@a}S zOfzFoRuC3y#jS|^-NN&$kNZy6Um~{W%`m!5-R< z9!>EhL!r3XC#CtkB!tGzi^(h$3h5Y-K_XB3QOz4g4ow-? zLYs40LX$`_lJre{16jclqC<(21LI5u8X)}!F`lqb4>UNa6dD*z@a1Bkd>2u{(l*SQ zxNC6-<^6`E9d2qH=)H16Urx9Bl@J_suWtle5^YfQ=6wSFGHFsKJD)J%TG5Lgn|vGKH`@6N%`4LYWr zd4jnGxu_7EQDj8&hP)o=Kx{e@nHKr$RvUQIr^A*9p|g<;RFU}s>|6+@f5-|;A^!>HQN9S&yacR6{LCwngEAOc zT-~4Tfp4a`dhU2KTZhXIVVX?Aewxe<0bbiIE+t|jL*TzsZAO?=u?ZpAf*sy?5~XGs z&_l$dRws<@p)-vQwgU|6%G+@9n;MAOm%p2V&Ab1ZgX;?%oXZYkVQF@;NtMLUh4TV$ z+X3BCHJ|U^=ns1=DKDHCX{^0E`2*xn~ECD^n zNqPhJ`AKYDl&}`AfPfBui;u`sl63H5L^3+~1wATsXebXC8aC@o3hjXqTA!lO*e6j* zmB$}?qM|&0ASE**lOi2_<4#5gFT|%JPXvMv|BGCWD@7&k%t6q>i}tC=GY3Yesy{Zm z{^K2yHRK(2 z@y)h?Gq#Jt;yKj3lZS$xtMz!jN94b}MOQG}{$o}m^EzxQ5$>DF)e(G381oDG8U&kW zsPYh+49){K1ySX}b8lX^z4HmaG5UKEpbn zLM4iLb$>&FzL^PjoAH05|0t;esnsV|NAEuwNhaa0ltvE*gAE>AQ+(5do!ZDpKC@Xy zzRCPX^12X>b_`~wMK;>?5#ly+qGD*92Xg{I=w5QZGW5cJ$xCesr>uW6?hP8<{Nas# zZ+<4inL80-1?-3c%k_h~;rVu|%>ItTOmY)F`t{iuVEVc<$UlVj^&Q+9BWnVj3O z{Sh3&{sWT;H{oKokl2J{h9KI7Pl0bFc-x5oK{ftKe-iA-egBvH@}C$1;?)0phQL

eoeAhG}8JH-iJOF4q?svt8&hgijPjn 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 z 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 XgbEC`EW=Z#qFzb@hWV#|`ltUN7vG&T literal 0 HcmV?d00001 diff --git a/compiler/parser/src/tokenizer/lexer.rs b/compiler/parser/src/tokenizer/lexer.rs index 4750d86105..233ea4d0a0 100644 --- a/compiler/parser/src/tokenizer/lexer.rs +++ b/compiler/parser/src/tokenizer/lexer.rs @@ -41,6 +41,7 @@ fn eat_identifier(input: &mut Peekable>) -> Option>) -> Result<(usize, Char)> { let mut unicode = String::new(); // Account for the chars '\' and 'u'. @@ -85,6 +86,7 @@ impl Token { } } + // Eats the parts of the hex character after \x. fn eat_hex_char(input: &mut Peekable>) -> Result<(usize, Char)> { let mut hex = String::new(); // Account for the chars '\' and 'x'. @@ -173,23 +175,6 @@ impl Token { Ok((int.len(), Token::Int(int))) } - /// Returns the number of bytes in an utf-8 encoding that starts with this byte. - fn _utf8_byte_count(byte: u8) -> usize { - let mut mask = 0x80; - let mut result = 0; - while byte & mask > 0 { - result += 1; - mask >>= 1; - } - if result == 0 { - 1 - } else if result > 4 { - 4 - } else { - result - } - } - /// /// Returns a tuple: [(token length, token)] if the next token can be eaten, otherwise returns [`None`]. /// The next token can be eaten if the bytes at the front of the given `input_tendril` string can be scanned into a token. @@ -234,8 +219,8 @@ impl Token { if input.next_if_eq(&'\'').is_some() { input.next(); return Ok((len + 2, Token::CharLit(character))); - } else if let Some(c) = input.next() { - return Err(ParserError::lexer_string_not_closed(c).into()); + } else if input.next().is_some() { + return Err(ParserError::lexer_char_not_closed(character).into()); } else { return Err(ParserError::lexer_empty_input_tendril().into()); } diff --git a/covered.yml b/covered.yml new file mode 100644 index 0000000000000000000000000000000000000000..1baae6cf48c9d690d497328f15ed3babf18db6fc GIT binary patch literal 46242 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.ELRJ3ReqY+sW{ z^~cU>@yxP5{WER0R?{vm&g~LK%1jJT^eus2_Z0CRaASJZymkh!+I^QF&mA65dI9OY zdN=%;U4Q-_eit$3$I4DNTSQGG`&C@p){`C!YcV^=$EfjsqBz|e$!MJPs}rt$65gzZ6$ zjCWA8=I5DubXJ|xEK-?W1H0b+5!Zz#=Q5u6|69(b?2mQb%X#j5@9dC%2EC(QtIHZE zWwMtp8aosxWumSwobXu;tDPQ3ue;#uBk8eGP8Xr*`3+98TvGLlBb8|*COl*9(tW7* zv{4B_m&25i3r^$T&<~>cX_3UUgpR~%@!)PMoGrla>3B0Vx0;cTXRcKk&5~Mex#n5_ zjJa`cKYs$SkEPe-{AbKPj-1QX;{u&flYh614&NDx7!XDBRw~Z?o;CIrR724aJoK< ziuW-x>LIt4p0;&0r1xl@k8pEXia$QX?RnT&eHpyk!pa^0Rwk?q4Y5DDy$rnJy!JBi PhEv+hz?-hX?%Ml5p0M{N literal 0 HcmV?d00001 diff --git a/default.profraw b/default.profraw new file mode 100644 index 0000000000000000000000000000000000000000..65cc68aa2a8ba3c4a02190f6fae3d78bb875bc82 GIT binary patch literal 10854168 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

YH^mHa&qJR!-Ssr1}VRukKD6= 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�$w2M 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%0ACVLpVqVx{QCrQib*pZw=c-OC;Q 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 z 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%0D$i*zC0;O67c0BZAFN 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�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%0Am(2*HE(;_Il- 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