[INFO] cloning repository https://github.com/MichaelZhao21/mikro
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/MichaelZhao21/mikro" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FMichaelZhao21%2Fmikro", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FMichaelZhao21%2Fmikro'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 0dc73d5d281d38ec8320ab49fd725243c2303885
[INFO] checking MichaelZhao21/mikro against 1.95.0 for pr-155915
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FMichaelZhao21%2Fmikro" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/MichaelZhao21/mikro
[INFO] finished tweaking git repo https://github.com/MichaelZhao21/mikro
[INFO] tweaked toml for git repo https://github.com/MichaelZhao21/mikro written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/MichaelZhao21/mikro on toolchain 1.95.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.95.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/MichaelZhao21/mikro already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.95.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 6000aff8f7421003e08be3c442fa5381cc3e1224c6139763572b2dccb8eaeb05
[INFO] running `Command { std: "docker" "start" "-a" "6000aff8f7421003e08be3c442fa5381cc3e1224c6139763572b2dccb8eaeb05", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "6000aff8f7421003e08be3c442fa5381cc3e1224c6139763572b2dccb8eaeb05", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6000aff8f7421003e08be3c442fa5381cc3e1224c6139763572b2dccb8eaeb05", kill_on_drop: false }`
[INFO] [stdout] 6000aff8f7421003e08be3c442fa5381cc3e1224c6139763572b2dccb8eaeb05
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 14358bded7e68cf7f068533b671cb9bbf6ef7544093240b03ee58412e86a0a0e
[INFO] running `Command { std: "docker" "start" "-a" "14358bded7e68cf7f068533b671cb9bbf6ef7544093240b03ee58412e86a0a0e", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.56
[INFO] [stderr]    Compiling quote v1.0.26
[INFO] [stderr]    Compiling unicode-ident v1.0.8
[INFO] [stderr]     Checking syn v2.0.15
[INFO] [stderr]     Checking generator v0.1.0 (/opt/rustwide/workdir/generator)
[INFO] [stdout] warning: unused variable: `action_table`
[INFO] [stdout]   --> generator/src/lib.rs:58:49
[INFO] [stdout]    |
[INFO] [stdout] 58 |     let (term_index, nonterm_index, prod_index, action_table, goto_table) = generate_parser(text);
[INFO] [stdout]    |                                                 ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_action_table`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `goto_table`
[INFO] [stdout]   --> generator/src/lib.rs:58:63
[INFO] [stdout]    |
[INFO] [stdout] 58 |     let (term_index, nonterm_index, prod_index, action_table, goto_table) = generate_parser(text);
[INFO] [stdout]    |                                                               ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_goto_table`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new_with_value` is never used
[INFO] [stdout]    --> generator/src/types.rs:269:12
[INFO] [stdout]     |
[INFO] [stdout] 249 | impl GeneratorToken {
[INFO] [stdout]     | ------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 269 |     pub fn new_with_value(token_type: GeneratorTokenType, value: String, loc: &Loc) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `none` is never used
[INFO] [stdout]    --> generator/src/types.rs:409:12
[INFO] [stdout]     |
[INFO] [stdout] 403 | impl Symbol {
[INFO] [stdout]     | ----------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 409 |     pub fn none() -> Self {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `action_table`
[INFO] [stdout]   --> generator/src/lib.rs:58:49
[INFO] [stdout]    |
[INFO] [stdout] 58 |     let (term_index, nonterm_index, prod_index, action_table, goto_table) = generate_parser(text);
[INFO] [stdout]    |                                                 ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_action_table`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `goto_table`
[INFO] [stdout]   --> generator/src/lib.rs:58:63
[INFO] [stdout]    |
[INFO] [stdout] 58 |     let (term_index, nonterm_index, prod_index, action_table, goto_table) = generate_parser(text);
[INFO] [stdout]    |                                                               ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_goto_table`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new_with_value` is never used
[INFO] [stdout]    --> generator/src/types.rs:269:12
[INFO] [stdout]     |
[INFO] [stdout] 249 | impl GeneratorToken {
[INFO] [stdout]     | ------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 269 |     pub fn new_with_value(token_type: GeneratorTokenType, value: String, loc: &Loc) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `none` is never used
[INFO] [stdout]    --> generator/src/types.rs:409:12
[INFO] [stdout]     |
[INFO] [stdout] 403 | impl Symbol {
[INFO] [stdout]     | ----------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 409 |     pub fn none() -> Self {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `action_table`
[INFO] [stdout]   --> generator/src/lib.rs:58:49
[INFO] [stdout]    |
[INFO] [stdout] 58 |     let (term_index, nonterm_index, prod_index, action_table, goto_table) = generate_parser(text);
[INFO] [stdout]    |                                                 ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_action_table`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `goto_table`
[INFO] [stdout]   --> generator/src/lib.rs:58:63
[INFO] [stdout]    |
[INFO] [stdout] 58 |     let (term_index, nonterm_index, prod_index, action_table, goto_table) = generate_parser(text);
[INFO] [stdout]    |                                                               ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_goto_table`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new_with_value` is never used
[INFO] [stdout]    --> generator/src/types.rs:269:12
[INFO] [stdout]     |
[INFO] [stdout] 249 | impl GeneratorToken {
[INFO] [stdout]     | ------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 269 |     pub fn new_with_value(token_type: GeneratorTokenType, value: String, loc: &Loc) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `none` is never used
[INFO] [stdout]    --> generator/src/types.rs:409:12
[INFO] [stdout]     |
[INFO] [stdout] 403 | impl Symbol {
[INFO] [stdout]     | ----------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 409 |     pub fn none() -> Self {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking mikro v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] ====== Grammar =============
[INFO] [stdout] expression -> . expression PLUS term 
[INFO] [stdout] expression -> . term 
[INFO] [stdout] term -> . term MULT factor 
[INFO] [stdout] term -> . factor 
[INFO] [stdout] factor -> . LPAREN expression RPAREN 
[INFO] [stdout] factor -> . ID 
[INFO] [stdout] ===========================
[INFO] [stdout] 
[INFO] [stdout] ===== FIRST sets ==========
[INFO] [stdout] FIRST(LPAREN) = LPAREN 
[INFO] [stdout] FIRST(PLUS) = PLUS 
[INFO] [stdout] FIRST(term) = ID LPAREN 
[INFO] [stdout] FIRST(RPAREN) = RPAREN 
[INFO] [stdout] FIRST(factor) = LPAREN ID 
[INFO] [stdout] FIRST(MULT) = MULT 
[INFO] [stdout] FIRST(e) = e 
[INFO] [stdout] FIRST(ID) = ID 
[INFO] [stdout] FIRST(expression) = ID LPAREN 
[INFO] [stdout] ===========================
[INFO] [stdout] 
[INFO] [stdout] ===== FOLLOW sets =========
[INFO] [stdout] FOLLOW(term) = RPAREN PLUS $ MULT 
[INFO] [stdout] FOLLOW(expression) = PLUS RPAREN $ 
[INFO] [stdout] FOLLOW(factor) = RPAREN MULT $ PLUS 
[INFO] [stdout] ===========================
[INFO] [stdout] 
[INFO] [stdout] [State 0]
[INFO] [stdout] 	expression' -> . expression 
[INFO] [stdout] 	expression -> . expression PLUS term 
[INFO] [stdout] 	expression -> . term 
[INFO] [stdout] 	term -> . term MULT factor 
[INFO] [stdout] 	term -> . factor 
[INFO] [stdout] 	factor -> . LPAREN expression RPAREN 
[INFO] [stdout] 	factor -> . ID 
[INFO] [stdout] 	Transitions:
[INFO] [stdout] 		term -> 2
[INFO] [stdout] 		factor -> 3
[INFO] [stdout] 		expression -> 1
[INFO] [stdout] 		LPAREN -> 4
[INFO] [stdout] 		ID -> 5
[INFO] [stdout] 
[INFO] [stdout] [State 1]
[INFO] [stdout] 	expression' -> expression .
[INFO] [stdout] 	expression -> expression . PLUS term 
[INFO] [stdout] 	Transitions:
[INFO] [stdout] 		PLUS -> 6
[INFO] [stdout] 
[INFO] [stdout] [State 2]
[INFO] [stdout] 	expression -> term .
[INFO] [stdout] 	term -> term . MULT factor 
[INFO] [stdout] 	Transitions:
[INFO] [stdout] 		MULT -> 7
[INFO] [stdout] 
[INFO] [stdout] [State 3]
[INFO] [stdout] 	term -> factor .
[INFO] [stdout] 	Transitions:
[INFO] [stdout] 
[INFO] [stdout] [State 4]
[INFO] [stdout] 	factor -> LPAREN . expression RPAREN 
[INFO] [stdout] 	expression -> . expression PLUS term 
[INFO] [stdout] 	expression -> . term 
[INFO] [stdout] 	term -> . term MULT factor 
[INFO] [stdout] 	term -> . factor 
[INFO] [stdout] 	factor -> . LPAREN expression RPAREN 
[INFO] [stdout] 	factor -> . ID 
[INFO] [stdout] 	Transitions:
[INFO] [stdout] 		term -> 2
[INFO] [stdout] 		expression -> 8
[INFO] [stdout] 		ID -> 5
[INFO] [stdout] 		factor -> 3
[INFO] [stdout] 		LPAREN -> 4
[INFO] [stdout] 
[INFO] [stdout] [State 5]
[INFO] [stdout] 	factor -> ID .
[INFO] [stdout] 	Transitions:
[INFO] [stdout] 
[INFO] [stdout] [State 6]
[INFO] [stdout] 	expression -> expression PLUS . term 
[INFO] [stdout] 	term -> . term MULT factor 
[INFO] [stdout] 	term -> . factor 
[INFO] [stdout] 	factor -> . LPAREN expression RPAREN 
[INFO] [stdout] 	factor -> . ID 
[INFO] [stdout] 	Transitions:
[INFO] [stdout] 		term -> 9
[INFO] [stdout] 		factor -> 3
[INFO] [stdout] 		LPAREN -> 4
[INFO] [stdout] 		ID -> 5
[INFO] [stdout] 
[INFO] [stdout] [State 7]
[INFO] [stdout] 	term -> term MULT . factor 
[INFO] [stdout] 	factor -> . LPAREN expression RPAREN 
[INFO] [stdout] 	factor -> . ID 
[INFO] [stdout] 	Transitions:
[INFO] [stdout] 		factor -> 10
[INFO] [stdout] 		LPAREN -> 4
[INFO] [stdout] 		ID -> 5
[INFO] [stdout] 
[INFO] [stdout] [State 8]
[INFO] [stdout] 	factor -> LPAREN expression . RPAREN 
[INFO] [stdout] 	expression -> expression . PLUS term 
[INFO] [stdout] 	Transitions:
[INFO] [stdout] 		PLUS -> 6
[INFO] [stdout] 		RPAREN -> 11
[INFO] [stdout] 
[INFO] [stdout] [State 9]
[INFO] [stdout] 	expression -> expression PLUS term .
[INFO] [stdout] 	term -> term . MULT factor 
[INFO] [stdout] 	Transitions:
[INFO] [stdout] 		MULT -> 7
[INFO] [stdout] 
[INFO] [stdout] [State 10]
[INFO] [stdout] 	term -> term MULT factor .
[INFO] [stdout] 	Transitions:
[INFO] [stdout] 
[INFO] [stdout] [State 11]
[INFO] [stdout] 	factor -> LPAREN expression RPAREN .
[INFO] [stdout] 	Transitions:
[INFO] [stdout] 
[INFO] [stdout] ====== Grammar =============
[INFO] [stdout] 0: expression' -> . expression 
[INFO] [stdout] 1: expression -> . expression PLUS term 
[INFO] [stdout] 2: expression -> . term 
[INFO] [stdout] 3: term -> . term MULT factor 
[INFO] [stdout] 4: term -> . factor 
[INFO] [stdout] 5: factor -> . LPAREN expression RPAREN 
[INFO] [stdout] 6: factor -> . ID 
[INFO] [stdout] ===========================
[INFO] [stdout] 
[INFO] [stdout] ===== SLR parsing table ====
[INFO] [stdout] Action table:
[INFO] [stdout]       PLUS  MULT  LPARE RPARE ID    $     
[INFO] [stdout] 0   | -     -     s4    -     s5    -     
[INFO] [stdout] 1   | s6    -     -     -     -     Accept
[INFO] [stdout] 2   | r2    s7    -     r2    -     r2    
[INFO] [stdout] 3   | r4    r4    -     r4    -     r4    
[INFO] [stdout] 4   | -     -     s4    -     s5    -     
[INFO] [stdout] 5   | r6    r6    -     r6    -     r6    
[INFO] [stdout] 6   | -     -     s4    -     s5    -     
[INFO] [stdout] 7   | -     -     s4    -     s5    -     
[INFO] [stdout] 8   | s6    -     -     s11   -     -     
[INFO] [stdout] 9   | r1    s7    -     r1    -     r1    
[INFO] [stdout] 10  | r3    r3    -     r3    -     r3    
[INFO] [stdout] 11  | r5    r5    -     r5    -     r5    
[INFO] [stdout] 
[INFO] [stdout] Goto table:
[INFO] [stdout]       expre term  facto expre 
[INFO] [stdout] 0   | 1     2     3     -     
[INFO] [stdout] 1   | -     -     -     -     
[INFO] [stdout] 2   | -     -     -     -     
[INFO] [stdout] 3   | -     -     -     -     
[INFO] [stdout] 4   | 8     2     3     -     
[INFO] [stdout] 5   | -     -     -     -     
[INFO] [stdout] 6   | -     9     3     -     
[INFO] [stdout] 7   | -     -     10    -     
[INFO] [stdout] 8   | -     -     -     -     
[INFO] [stdout] 9   | -     -     -     -     
[INFO] [stdout] 10  | -     -     -     -     
[INFO] [stdout] 11  | -     -     -     -     
[INFO] [stdout] ===========================
[INFO] [stdout] 
[INFO] [stdout] ====== Grammar =============
[INFO] [stdout] expression -> . expression PLUS term 
[INFO] [stdout] expression -> . term 
[INFO] [stdout] term -> . term MULT factor 
[INFO] [stdout] term -> . factor 
[INFO] [stdout] factor -> . LPAREN expression RPAREN 
[INFO] [stdout] factor -> . ID 
[INFO] [stdout] ===========================
[INFO] [stdout] 
[INFO] [stdout] ===== FIRST sets ==========
[INFO] [stdout] FIRST(ID) = ID 
[INFO] [stdout] FIRST(expression) = LPAREN ID 
[INFO] [stdout] FIRST(PLUS) = PLUS 
[INFO] [stdout] FIRST(factor) = LPAREN ID 
[INFO] [stdout] FIRST(e) = e 
[INFO] [stdout] FIRST(MULT) = MULT 
[INFO] [stdout] FIRST(RPAREN) = RPAREN 
[INFO] [stdout] FIRST(LPAREN) = LPAREN 
[INFO] [stdout] FIRST(term) = ID LPAREN 
[INFO] [stdout] ===========================
[INFO] [stdout] 
[INFO] [stdout] ===== FOLLOW sets =========
[INFO] [stdout] FOLLOW(expression) = $ RPAREN PLUS 
[INFO] [stdout] FOLLOW(factor) = $ MULT RPAREN PLUS 
[INFO] [stdout] FOLLOW(term) = $ RPAREN PLUS MULT 
[INFO] [stdout] ===========================
[INFO] [stdout] 
[INFO] [stdout] [State 0]
[INFO] [stdout] 	expression' -> . expression 
[INFO] [stdout] 	expression -> . expression PLUS term 
[INFO] [stdout] 	expression -> . term 
[INFO] [stdout] 	term -> . term MULT factor 
[INFO] [stdout] 	term -> . factor 
[INFO] [stdout] 	factor -> . LPAREN expression RPAREN 
[INFO] [stdout] 	factor -> . ID 
[INFO] [stdout] 	Transitions:
[INFO] [stdout] 		LPAREN -> 4
[INFO] [stdout] 		ID -> 5
[INFO] [stdout] 		expression -> 1
[INFO] [stdout] 		term -> 2
[INFO] [stdout] 		factor -> 3
[INFO] [stdout] 
[INFO] [stdout] [State 1]
[INFO] [stdout] 	expression' -> expression .
[INFO] [stdout] 	expression -> expression . PLUS term 
[INFO] [stdout] 	Transitions:
[INFO] [stdout] 		PLUS -> 6
[INFO] [stdout] 
[INFO] [stdout] [State 2]
[INFO] [stdout] 	expression -> term .
[INFO] [stdout] 	term -> term . MULT factor 
[INFO] [stdout] 	Transitions:
[INFO] [stdout] 		MULT -> 7
[INFO] [stdout] 
[INFO] [stdout] [State 3]
[INFO] [stdout] 	term -> factor .
[INFO] [stdout] 	Transitions:
[INFO] [stdout] 
[INFO] [stdout] [State 4]
[INFO] [stdout] 	factor -> LPAREN . expression RPAREN 
[INFO] [stdout] 	expression -> . expression PLUS term 
[INFO] [stdout] 	expression -> . term 
[INFO] [stdout] 	term -> . term MULT factor 
[INFO] [stdout] 	term -> . factor 
[INFO] [stdout] 	factor -> . LPAREN expression RPAREN 
[INFO] [stdout] 	factor -> . ID 
[INFO] [stdout] 	Transitions:
[INFO] [stdout] 		expression -> 8
[INFO] [stdout] 		ID -> 5
[INFO] [stdout] 		factor -> 3
[INFO] [stdout] 		LPAREN -> 4
[INFO] [stdout] 		term -> 2
[INFO] [stdout] 
[INFO] [stdout] [State 5]
[INFO] [stdout] 	factor -> ID .
[INFO] [stdout] 	Transitions:
[INFO] [stdout] 
[INFO] [stdout] [State 6]
[INFO] [stdout] 	expression -> expression PLUS . term 
[INFO] [stdout] 	term -> . term MULT factor 
[INFO] [stdout] 	term -> . factor 
[INFO] [stdout] 	factor -> . LPAREN expression RPAREN 
[INFO] [stdout] 	factor -> . ID 
[INFO] [stdout] 	Transitions:
[INFO] [stdout] 		ID -> 5
[INFO] [stdout] 		factor -> 3
[INFO] [stdout] 		LPAREN -> 4
[INFO] [stdout] 		term -> 9
[INFO] [stdout] 
[INFO] [stdout] [State 7]
[INFO] [stdout] 	term -> term MULT . factor 
[INFO] [stdout] 	factor -> . LPAREN expression RPAREN 
[INFO] [stdout] 	factor -> . ID 
[INFO] [stdout] 	Transitions:
[INFO] [stdout] 		ID -> 5
[INFO] [stdout] 		LPAREN -> 4
[INFO] [stdout] 		factor -> 10
[INFO] [stdout] 
[INFO] [stdout] [State 8]
[INFO] [stdout] 	factor -> LPAREN expression . RPAREN 
[INFO] [stdout] 	expression -> expression . PLUS term 
[INFO] [stdout] 	Transitions:
[INFO] [stdout] 		RPAREN -> 11
[INFO] [stdout] 		PLUS -> 6
[INFO] [stdout] 
[INFO] [stdout] [State 9]
[INFO] [stdout] 	expression -> expression PLUS term .
[INFO] [stdout] 	term -> term . MULT factor 
[INFO] [stdout] 	Transitions:
[INFO] [stdout] 		MULT -> 7
[INFO] [stdout] 
[INFO] [stdout] [State 10]
[INFO] [stdout] 	term -> term MULT factor .
[INFO] [stdout] 	Transitions:
[INFO] [stdout] 
[INFO] [stdout] [State 11]
[INFO] [stdout] 	factor -> LPAREN expression RPAREN .
[INFO] [stdout] 	Transitions:
[INFO] [stdout] 
[INFO] [stdout] ====== Grammar =============
[INFO] [stdout] 0: expression' -> . expression 
[INFO] [stdout] 1: expression -> . expression PLUS term 
[INFO] [stdout] 2: expression -> . term 
[INFO] [stdout] 3: term -> . term MULT factor 
[INFO] [stdout] 4: term -> . factor 
[INFO] [stdout] 5: factor -> . LPAREN expression RPAREN 
[INFO] [stdout] 6: factor -> . ID 
[INFO] [stdout] ===========================
[INFO] [stdout] 
[INFO] [stdout] ===== SLR parsing table ====
[INFO] [stdout] Action table:
[INFO] [stdout]       PLUS  MULT  LPARE RPARE ID    $     
[INFO] [stdout] 0   | -     -     s4    -     s5    -     
[INFO] [stdout] 1   | s6    -     -     -     -     Accept
[INFO] [stdout] 2   | r2    s7    -     r2    -     r2    
[INFO] [stdout] 3   | r4    r4    -     r4    -     r4    
[INFO] [stdout] 4   | -     -     s4    -     s5    -     
[INFO] [stdout] 5   | r6    r6    -     r6    -     r6    
[INFO] [stdout] 6   | -     -     s4    -     s5    -     
[INFO] [stdout] 7   | -     -     s4    -     s5    -     
[INFO] [stdout] 8   | s6    -     -     s11   -     -     
[INFO] [stdout] 9   | r1    s7    -     r1    -     r1    
[INFO] [stdout] 10  | r3    r3    -     r3    -     r3    
[INFO] [stdout] 11  | r5    r5    -     r5    -     r5    
[INFO] [stdout] 
[INFO] [stdout] Goto table:
[INFO] [stdout]       expre term  facto expre 
[INFO] [stdout] 0   | 1     2     3     -     
[INFO] [stdout] 1   | -     -     -     -     
[INFO] [stdout] 2   | -     -     -     -     
[INFO] [stdout] 3   | -     -     -     -     
[INFO] [stdout] 4   | 8     2     3     -     
[INFO] [stdout] 5   | -     -     -     -     
[INFO] [stdout] 6   | -     9     3     -     
[INFO] [stdout] 7   | -     -     10    -     
[INFO] [stdout] 8   | -     -     -     -     
[INFO] [stdout] 9   | -     -     -     -     
[INFO] [stdout] 10  | -     -     -     -     
[INFO] [stdout] 11  | -     -     -     -     
[INFO] [stdout] ===========================
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 7.21s
[INFO] running `Command { std: "docker" "inspect" "14358bded7e68cf7f068533b671cb9bbf6ef7544093240b03ee58412e86a0a0e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "14358bded7e68cf7f068533b671cb9bbf6ef7544093240b03ee58412e86a0a0e", kill_on_drop: false }`
[INFO] [stdout] 14358bded7e68cf7f068533b671cb9bbf6ef7544093240b03ee58412e86a0a0e
