ducere bug notes

-- mode: compilation; default-directory: "~/Dev/Rust/ducere/" --
Compilation started at Sat Mar 26 11:53:27

cargo test
Blocking waiting for file lock on build directory
Compiling ducere v0.1.0 (/Users/pnkfelix/Dev/Rust/ducere)
Finished test [unoptimized + debuginfo] target(s) in 2.40s
Running unittests (target/debug/deps/ducere-80daeaf2c805f0e4)

running 11 tests
test functional_fixed_width_integer … ok
test test_parts … ok
test simpler_variant_on_ifwi2_b … FAILED
test simpler_variant_on_ifwi2_a … ok
test imperative_fixed_width_integer_1 … ok
test tests::regular_right_sides_expression_dsl … ok
test imperative_fixed_width_integer_foundations … ok
test tests::regular_right_sides … ok
test tests::non_empty_grammar … ok
test yakker … ok
test tests::grammar_sugar … ok

failures:

–– simpler_variant_on_ifwi2_b stdout ––
env: [] w: "ab" r: <S(2)>
env: [n=2] w: "ab" r: [n > 0] ('a' | 'b') ({ n := n - 1 })* [n == 0]
"ab" in Concat([n > 0] ('a' | 'b') ({ n := n - 1 })*,[n == 0]) trial i=0 yields "" "ab"
env: [n=2] w: "" r: [n > 0] ('a' | 'b') ({ n := n - 1 })*
Kleene trivial empty match env: [n=2] w: "" r: [n > 0] ('a' | 'b') ({ n := n - 1 })*
i: 0 env1: [n=2] w1: "" r1: [n > 0] ('a' | 'b') ({ n := n - 1 })* w1_in_r1: []
env: [n=2] w: "ab" r: [n == 0]
i: 0 env2: [n=2] w2: "ab" r2: [n == 0], w2_in_r2: None
"ab" in Concat([n > 0] ('a' | 'b') ({ n := n - 1 })*,[n == 0]) trial i=1 yields "a" "b"
env: [n=2] w: "a" r: [n > 0] ('a' | 'b') ({ n := n - 1 })*
env: [n=2] w: "a" r: [n > 0] ('a' | 'b') ({ n := n - 1 })
"a" in Concat([n > 0],('a' | 'b') ({ n := n - 1 })) trial i=0 yields "" "a"
env: [n=2] w: "" r: [n > 0]
i: 0 env1: [n=2] w1: "" r1: [n > 0] w1_in_r1: []
env: [n=2] w: "a" r: ('a' | 'b') ({ n := n - 1 })
"a" in Concat('a' | 'b',{ n := n - 1 }) trial i=0 yields "" "a"
env: [n=2] w: "" r: 'a' | 'b'
env: [n=2] w: "" r: 'a'
env: [n=2] w: "" r: 'b'
i: 0 env1: [n=2] w1: "" r1: 'a' | 'b' w1_in_r1: nil
"a" in Concat('a' | 'b',{ n := n - 1 }) trial i=1 yields "a" ""
env: [n=2] w: "a" r: 'a' | 'b'
env: [n=2] w: "a" r: 'a'
i: 1 env1: [n=2] w1: "a" r1: 'a' | 'b' w1_in_r1: []
env: [n=2] w: "" r: { n := n - 1 }
i: 1 env2: [n=2] w2: "" r2: { n := n - 1 }, w2_in_r2: Some("[n=1]")
i: 0 env2: [n=2] w2: "a" r2: ('a' | 'b') ({ n := n - 1 }), w2_in_r2: Some("[n=1]")
Kleene simple singleton match env: [n=2] w: "a" r: [n > 0] ('a' | 'b') ({ n := n - 1 })*
i: 1 env1: [n=2] w1: "a" r1: [n > 0] ('a' | 'b') ({ n := n - 1 })* w1_in_r1: [n=1]
env: [n=1] w: "b" r: [n == 0]
i: 1 env2: [n=1] w2: "b" r2: [n == 0], w2_in_r2: None
"ab" in Concat([n > 0] ('a' | 'b') ({ n := n - 1 })*,[n == 0]) trial i=2 yields "ab" ""
env: [n=2] w: "ab" r: [n > 0] ('a' | 'b') ({ n := n - 1 })*
env: [n=2] w: "ab" r: [n > 0] ('a' | 'b') ({ n := n - 1 })
"ab" in Concat([n > 0],('a' | 'b') ({ n := n - 1 })) trial i=0 yields "" "ab"
env: [n=2] w: "" r: [n > 0]
i: 0 env1: [n=2] w1: "" r1: [n > 0] w1_in_r1: []
env: [n=2] w: "ab" r: ('a' | 'b') ({ n := n - 1 })
"ab" in Concat('a' | 'b',{ n := n - 1 }) trial i=0 yields "" "ab"
env: [n=2] w: "" r: 'a' | 'b'
env: [n=2] w: "" r: 'a'
env: [n=2] w: "" r: 'b'
i: 0 env1: [n=2] w1: "" r1: 'a' | 'b' w1_in_r1: nil
"ab" in Concat('a' | 'b',{ n := n - 1 }) trial i=1 yields "a" "b"
env: [n=2] w: "a" r: 'a' | 'b'
env: [n=2] w: "a" r: 'a'
i: 1 env1: [n=2] w1: "a" r1: 'a' | 'b' w1_in_r1: []
env: [n=2] w: "b" r: { n := n - 1 }
i: 1 env2: [n=2] w2: "b" r2: { n := n - 1 }, w2_in_r2: None
"ab" in Concat('a' | 'b',{ n := n - 1 }) trial i=2 yields "ab" ""
env: [n=2] w: "ab" r: 'a' | 'b'
env: [n=2] w: "ab" r: 'a'
env: [n=2] w: "ab" r: 'b'
i: 2 env1: [n=2] w1: "ab" r1: 'a' | 'b' w1_in_r1: nil
i: 0 env2: [n=2] w2: "ab" r2: ('a' | 'b') ({ n := n - 1 }), w2_in_r2: None
"ab" in Concat([n > 0],('a' | 'b') ({ n := n - 1 })) trial i=1 yields "a" "b"
env: [n=2] w: "a" r: [n > 0]
i: 1 env1: [n=2] w1: "a" r1: [n > 0] w1_in_r1: []
env: [n=2] w: "b" r: ('a' | 'b') ({ n := n - 1 })
"b" in Concat('a' | 'b',{ n := n - 1 }) trial i=0 yields "" "b"
env: [n=2] w: "" r: 'a' | 'b'
env: [n=2] w: "" r: 'a'
env: [n=2] w: "" r: 'b'
i: 0 env1: [n=2] w1: "" r1: 'a' | 'b' w1_in_r1: nil
"b" in Concat('a' | 'b',{ n := n - 1 }) trial i=1 yields "b" ""
env: [n=2] w: "b" r: 'a' | 'b'
env: [n=2] w: "b" r: 'a'
env: [n=2] w: "b" r: 'b'
i: 1 env1: [n=2] w1: "b" r1: 'a' | 'b' w1_in_r1: []
env: [n=2] w: "" r: { n := n - 1 }
i: 1 env2: [n=2] w2: "" r2: { n := n - 1 }, w2_in_r2: Some("[n=1]")
i: 1 env2: [n=2] w2: "b" r2: ('a' | 'b') ({ n := n - 1 }), w2_in_r2: Some("[n=1]")
Kleene simple singleton match env: [n=2] w: "ab" r: [n > 0] ('a' | 'b') ({ n := n - 1 })*
i: 2 env1: [n=2] w1: "ab" r1: [n > 0] ('a' | 'b') ({ n := n - 1 })* w1_in_r1: [n=1]
env: [n=1] w: "" r: [n == 0]
i: 2 env2: [n=1] w2: "" r2: [n == 0], w2_in_r2: None
thread 'simpler_variant_on_ifwi2_b' panicked at 'assertion failed: yakker::GrammarParser::new().parse(r"S(n) ::= ([n gt 0] ( 'a' | 'b' ) { n := n- 1 })* [n eql 0];").unwrap().matches(emp,\n &input("ab"),\n &right_side(r"<S(2)>")).is_some()', src/lib.rs:844:5
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

failures:
simpler_variant_on_ifwi2_b

test result: FAILED. 10 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.16s

error: test failed, to rerun pass '–lib'

Compilation exited abnormally with code 101 at Sat Mar 26 11:53:31