0 $accept : es $end 1 es : line end 2 | error end 3 end : NL 4 | ENDFILE 5 line : cmd 6 | cmdsa line 7 body : cmd 8 | cmdsan body 9 cmdsa : cmd ';' 10 | cmd '&' 11 cmdsan : cmdsa 12 | cmd NL 13 cmd : 14 | simple 15 | redir cmd 16 | first assign 17 | fn 18 | binder nl '(' bindings ')' nl cmd 19 | cmd ANDAND nl cmd 20 | cmd OROR nl cmd 21 | cmd PIPE nl cmd 22 | '!' caret cmd 23 | '~' word words 24 | EXTRACT word words 25 simple : first 26 | simple word 27 | simple redir 28 redir : DUP 29 | REDIR word 30 bindings : binding 31 | bindings ';' binding 32 | bindings NL binding 33 binding : 34 | fn 35 | word assign 36 assign : caret '=' caret words 37 fn : FN word params '{' body '}' 38 | FN word 39 first : comword 40 | first '^' sword 41 sword : comword 42 | keyword 43 word : sword 44 | word '^' sword 45 comword : param 46 | '(' nlwords ')' 47 | '{' body '}' 48 | '@' params '{' body '}' 49 | '$' sword 50 | '$' sword SUB words ')' 51 | CALL sword 52 | COUNT sword 53 | FLAT sword 54 | PRIM WORD 55 | '`' sword 56 | BACKBACK word sword 57 param : WORD 58 | QWORD 59 params : 60 | params param 61 words : 62 | words word 63 nlwords : 64 | nlwords word 65 | nlwords NL 66 nl : 67 | nl NL 68 caret : 69 | '^' 70 binder : LOCAL 71 | LET 72 | FOR 73 | CLOSURE 74 keyword : '!' 75 | '~' 76 | EXTRACT 77 | LOCAL 78 | LET 79 | FOR 80 | FN 81 | CLOSURE state 0 $accept : . es $end (0) cmd : . (13) error shift 1 WORD shift 2 QWORD shift 3 LOCAL shift 4 LET shift 5 FOR shift 6 CLOSURE shift 7 FN shift 8 BACKBACK shift 9 EXTRACT shift 10 CALL shift 11 COUNT shift 12 DUP shift 13 FLAT shift 14 PRIM shift 15 REDIR shift 16 '!' shift 17 '$' shift 18 '(' shift 19 '~' shift 20 '{' shift 21 '@' shift 22 '`' shift 23 ANDAND reduce 13 OROR reduce 13 NL reduce 13 ENDFILE reduce 13 PIPE reduce 13 ';' reduce 13 '&' reduce 13 es goto 24 cmd goto 25 cmdsa goto 26 comword goto 27 first goto 28 fn goto 29 line goto 30 param goto 31 simple goto 32 redir goto 33 binder goto 34 state 1 es : error . end (2) NL shift 35 ENDFILE shift 36 . error end goto 37 state 2 param : WORD . (57) . reduce 57 state 3 param : QWORD . (58) . reduce 58 state 4 binder : LOCAL . (70) . reduce 70 state 5 binder : LET . (71) . reduce 71 state 6 binder : FOR . (72) . reduce 72 state 7 binder : CLOSURE . (73) . reduce 73 state 8 fn : FN . word params '{' body '}' (37) fn : FN . word (38) WORD shift 2 QWORD shift 3 LOCAL shift 38 LET shift 39 FOR shift 40 CLOSURE shift 41 FN shift 42 BACKBACK shift 9 EXTRACT shift 43 CALL shift 11 COUNT shift 12 FLAT shift 14 PRIM shift 15 '!' shift 44 '$' shift 18 '(' shift 19 '~' shift 45 '{' shift 21 '@' shift 22 '`' shift 23 . error keyword goto 46 comword goto 47 word goto 48 param goto 31 sword goto 49 state 9 comword : BACKBACK . word sword (56) WORD shift 2 QWORD shift 3 LOCAL shift 38 LET shift 39 FOR shift 40 CLOSURE shift 41 FN shift 42 BACKBACK shift 9 EXTRACT shift 43 CALL shift 11 COUNT shift 12 FLAT shift 14 PRIM shift 15 '!' shift 44 '$' shift 18 '(' shift 19 '~' shift 45 '{' shift 21 '@' shift 22 '`' shift 23 . error keyword goto 46 comword goto 47 word goto 50 param goto 31 sword goto 49 state 10 cmd : EXTRACT . word words (24) WORD shift 2 QWORD shift 3 LOCAL shift 38 LET shift 39 FOR shift 40 CLOSURE shift 41 FN shift 42 BACKBACK shift 9 EXTRACT shift 43 CALL shift 11 COUNT shift 12 FLAT shift 14 PRIM shift 15 '!' shift 44 '$' shift 18 '(' shift 19 '~' shift 45 '{' shift 21 '@' shift 22 '`' shift 23 . error keyword goto 46 comword goto 47 word goto 51 param goto 31 sword goto 49 state 11 comword : CALL . sword (51) WORD shift 2 QWORD shift 3 LOCAL shift 38 LET shift 39 FOR shift 40 CLOSURE shift 41 FN shift 42 BACKBACK shift 9 EXTRACT shift 43 CALL shift 11 COUNT shift 12 FLAT shift 14 PRIM shift 15 '!' shift 44 '$' shift 18 '(' shift 19 '~' shift 45 '{' shift 21 '@' shift 22 '`' shift 23 . error keyword goto 46 comword goto 47 param goto 31 sword goto 52 state 12 comword : COUNT . sword (52) WORD shift 2 QWORD shift 3 LOCAL shift 38 LET shift 39 FOR shift 40 CLOSURE shift 41 FN shift 42 BACKBACK shift 9 EXTRACT shift 43 CALL shift 11 COUNT shift 12 FLAT shift 14 PRIM shift 15 '!' shift 44 '$' shift 18 '(' shift 19 '~' shift 45 '{' shift 21 '@' shift 22 '`' shift 23 . error keyword goto 46 comword goto 47 param goto 31 sword goto 53 state 13 redir : DUP . (28) . reduce 28 state 14 comword : FLAT . sword (53) WORD shift 2 QWORD shift 3 LOCAL shift 38 LET shift 39 FOR shift 40 CLOSURE shift 41 FN shift 42 BACKBACK shift 9 EXTRACT shift 43 CALL shift 11 COUNT shift 12 FLAT shift 14 PRIM shift 15 '!' shift 44 '$' shift 18 '(' shift 19 '~' shift 45 '{' shift 21 '@' shift 22 '`' shift 23 . error keyword goto 46 comword goto 47 param goto 31 sword goto 54 state 15 comword : PRIM . WORD (54) WORD shift 55 . error state 16 redir : REDIR . word (29) WORD shift 2 QWORD shift 3 LOCAL shift 38 LET shift 39 FOR shift 40 CLOSURE shift 41 FN shift 42 BACKBACK shift 9 EXTRACT shift 43 CALL shift 11 COUNT shift 12 FLAT shift 14 PRIM shift 15 '!' shift 44 '$' shift 18 '(' shift 19 '~' shift 45 '{' shift 21 '@' shift 22 '`' shift 23 . error keyword goto 46 comword goto 47 word goto 56 param goto 31 sword goto 49 state 17 cmd : '!' . caret cmd (22) caret : . (68) '^' shift 57 WORD reduce 68 QWORD reduce 68 LOCAL reduce 68 LET reduce 68 FOR reduce 68 CLOSURE reduce 68 FN reduce 68 ANDAND reduce 68 BACKBACK reduce 68 EXTRACT reduce 68 CALL reduce 68 COUNT reduce 68 DUP reduce 68 FLAT reduce 68 OROR reduce 68 PRIM reduce 68 REDIR reduce 68 NL reduce 68 ENDFILE reduce 68 '!' reduce 68 PIPE reduce 68 '$' reduce 68 ';' reduce 68 '&' reduce 68 '(' reduce 68 '~' reduce 68 '{' reduce 68 '}' reduce 68 '@' reduce 68 '`' reduce 68 caret goto 58 state 18 comword : '$' . sword (49) comword : '$' . sword SUB words ')' (50) WORD shift 2 QWORD shift 3 LOCAL shift 38 LET shift 39 FOR shift 40 CLOSURE shift 41 FN shift 42 BACKBACK shift 9 EXTRACT shift 43 CALL shift 11 COUNT shift 12 FLAT shift 14 PRIM shift 15 '!' shift 44 '$' shift 18 '(' shift 19 '~' shift 45 '{' shift 21 '@' shift 22 '`' shift 23 . error keyword goto 46 comword goto 47 param goto 31 sword goto 59 state 19 comword : '(' . nlwords ')' (46) nlwords : . (63) . reduce 63 nlwords goto 60 state 20 cmd : '~' . word words (23) WORD shift 2 QWORD shift 3 LOCAL shift 38 LET shift 39 FOR shift 40 CLOSURE shift 41 FN shift 42 BACKBACK shift 9 EXTRACT shift 43 CALL shift 11 COUNT shift 12 FLAT shift 14 PRIM shift 15 '!' shift 44 '$' shift 18 '(' shift 19 '~' shift 45 '{' shift 21 '@' shift 22 '`' shift 23 . error keyword goto 46 comword goto 47 word goto 61 param goto 31 sword goto 49 state 21 comword : '{' . body '}' (47) cmd : . (13) WORD shift 2 QWORD shift 3 LOCAL shift 4 LET shift 5 FOR shift 6 CLOSURE shift 7 FN shift 8 BACKBACK shift 9 EXTRACT shift 10 CALL shift 11 COUNT shift 12 DUP shift 13 FLAT shift 14 PRIM shift 15 REDIR shift 16 '!' shift 17 '$' shift 18 '(' shift 19 '~' shift 20 '{' shift 21 '@' shift 22 '`' shift 23 ANDAND reduce 13 OROR reduce 13 NL reduce 13 PIPE reduce 13 ';' reduce 13 '&' reduce 13 '}' reduce 13 body goto 62 cmd goto 63 cmdsa goto 64 cmdsan goto 65 comword goto 27 first goto 28 fn goto 29 param goto 31 simple goto 32 redir goto 33 binder goto 34 state 22 comword : '@' . params '{' body '}' (48) params : . (59) . reduce 59 params goto 66 state 23 comword : '`' . sword (55) WORD shift 2 QWORD shift 3 LOCAL shift 38 LET shift 39 FOR shift 40 CLOSURE shift 41 FN shift 42 BACKBACK shift 9 EXTRACT shift 43 CALL shift 11 COUNT shift 12 FLAT shift 14 PRIM shift 15 '!' shift 44 '$' shift 18 '(' shift 19 '~' shift 45 '{' shift 21 '@' shift 22 '`' shift 23 . error keyword goto 46 comword goto 47 param goto 31 sword goto 67 state 24 $accept : es . $end (0) $end accept state 25 line : cmd . (5) cmdsa : cmd . ';' (9) cmdsa : cmd . '&' (10) cmd : cmd . ANDAND nl cmd (19) cmd : cmd . OROR nl cmd (20) cmd : cmd . PIPE nl cmd (21) ANDAND shift 68 OROR shift 69 PIPE shift 70 ';' shift 71 '&' shift 72 NL reduce 5 ENDFILE reduce 5 state 26 line : cmdsa . line (6) cmd : . (13) WORD shift 2 QWORD shift 3 LOCAL shift 4 LET shift 5 FOR shift 6 CLOSURE shift 7 FN shift 8 BACKBACK shift 9 EXTRACT shift 10 CALL shift 11 COUNT shift 12 DUP shift 13 FLAT shift 14 PRIM shift 15 REDIR shift 16 '!' shift 17 '$' shift 18 '(' shift 19 '~' shift 20 '{' shift 21 '@' shift 22 '`' shift 23 ANDAND reduce 13 OROR reduce 13 NL reduce 13 ENDFILE reduce 13 PIPE reduce 13 ';' reduce 13 '&' reduce 13 cmd goto 25 cmdsa goto 26 comword goto 27 first goto 28 fn goto 29 line goto 73 param goto 31 simple goto 32 redir goto 33 binder goto 34 state 27 first : comword . (39) . reduce 39 state 28 cmd : first . assign (16) simple : first . (25) first : first . '^' sword (40) caret : . (68) '^' shift 74 WORD reduce 25 QWORD reduce 25 LOCAL reduce 25 LET reduce 25 FOR reduce 25 CLOSURE reduce 25 FN reduce 25 ANDAND reduce 25 BACKBACK reduce 25 EXTRACT reduce 25 CALL reduce 25 COUNT reduce 25 DUP reduce 25 FLAT reduce 25 OROR reduce 25 PRIM reduce 25 REDIR reduce 25 NL reduce 25 ENDFILE reduce 25 '!' reduce 25 PIPE reduce 25 '$' reduce 25 ';' reduce 25 '&' reduce 25 '(' reduce 25 '~' reduce 25 '=' reduce 68 '{' reduce 25 '}' reduce 25 '@' reduce 25 '`' reduce 25 assign goto 75 caret goto 76 state 29 cmd : fn . (17) . reduce 17 state 30 es : line . end (1) NL shift 35 ENDFILE shift 36 . error end goto 77 state 31 comword : param . (45) . reduce 45 state 32 cmd : simple . (14) simple : simple . word (26) simple : simple . redir (27) WORD shift 2 QWORD shift 3 LOCAL shift 38 LET shift 39 FOR shift 40 CLOSURE shift 41 FN shift 42 BACKBACK shift 9 EXTRACT shift 43 CALL shift 11 COUNT shift 12 DUP shift 13 FLAT shift 14 PRIM shift 15 REDIR shift 16 '!' shift 44 '$' shift 18 '(' shift 19 '~' shift 45 '{' shift 21 '@' shift 22 '`' shift 23 ANDAND reduce 14 OROR reduce 14 NL reduce 14 ENDFILE reduce 14 PIPE reduce 14 ';' reduce 14 '&' reduce 14 '}' reduce 14 keyword goto 46 comword goto 47 word goto 78 param goto 31 redir goto 79 sword goto 49 state 33 cmd : redir . cmd (15) cmd : . (13) WORD shift 2 QWORD shift 3 LOCAL shift 4 LET shift 5 FOR shift 6 CLOSURE shift 7 FN shift 8 BACKBACK shift 9 EXTRACT shift 10 CALL shift 11 COUNT shift 12 DUP shift 13 FLAT shift 14 PRIM shift 15 REDIR shift 16 '!' shift 17 '$' shift 18 '(' shift 19 '~' shift 20 '{' shift 21 '@' shift 22 '`' shift 23 ANDAND reduce 13 OROR reduce 13 NL reduce 13 ENDFILE reduce 13 PIPE reduce 13 ';' reduce 13 '&' reduce 13 '}' reduce 13 cmd goto 80 comword goto 27 first goto 28 fn goto 29 param goto 31 simple goto 32 redir goto 33 binder goto 34 state 34 cmd : binder . nl '(' bindings ')' nl cmd (18) nl : . (66) . reduce 66 nl goto 81 state 35 end : NL . (3) . reduce 3 state 36 end : ENDFILE . (4) . reduce 4 state 37 es : error end . (2) . reduce 2 state 38 keyword : LOCAL . (77) . reduce 77 state 39 keyword : LET . (78) . reduce 78 state 40 keyword : FOR . (79) . reduce 79 state 41 keyword : CLOSURE . (81) . reduce 81 state 42 keyword : FN . (80) . reduce 80 state 43 keyword : EXTRACT . (76) . reduce 76 state 44 keyword : '!' . (74) . reduce 74 state 45 keyword : '~' . (75) . reduce 75 state 46 sword : keyword . (42) . reduce 42 state 47 sword : comword . (41) . reduce 41 state 48 fn : FN word . params '{' body '}' (37) fn : FN word . (38) word : word . '^' sword (44) params : . (59) '^' shift 82 WORD reduce 59 QWORD reduce 59 ANDAND reduce 38 OROR reduce 38 NL reduce 38 ENDFILE reduce 38 ')' reduce 38 PIPE reduce 38 ';' reduce 38 '&' reduce 38 '{' reduce 59 '}' reduce 38 params goto 83 state 49 word : sword . (43) . reduce 43 state 50 word : word . '^' sword (44) comword : BACKBACK word . sword (56) WORD shift 2 QWORD shift 3 LOCAL shift 38 LET shift 39 FOR shift 40 CLOSURE shift 41 FN shift 42 BACKBACK shift 9 EXTRACT shift 43 CALL shift 11 COUNT shift 12 FLAT shift 14 PRIM shift 15 '!' shift 44 '$' shift 18 '(' shift 19 '~' shift 45 '{' shift 21 '^' shift 82 '@' shift 22 '`' shift 23 . error keyword goto 46 comword goto 47 param goto 31 sword goto 84 state 51 cmd : EXTRACT word . words (24) word : word . '^' sword (44) words : . (61) '^' shift 82 WORD reduce 61 QWORD reduce 61 LOCAL reduce 61 LET reduce 61 FOR reduce 61 CLOSURE reduce 61 FN reduce 61 ANDAND reduce 61 BACKBACK reduce 61 EXTRACT reduce 61 CALL reduce 61 COUNT reduce 61 FLAT reduce 61 OROR reduce 61 PRIM reduce 61 NL reduce 61 ENDFILE reduce 61 '!' reduce 61 PIPE reduce 61 '$' reduce 61 ';' reduce 61 '&' reduce 61 '(' reduce 61 '~' reduce 61 '{' reduce 61 '}' reduce 61 '@' reduce 61 '`' reduce 61 words goto 85 state 52 comword : CALL sword . (51) . reduce 51 state 53 comword : COUNT sword . (52) . reduce 52 state 54 comword : FLAT sword . (53) . reduce 53 state 55 comword : PRIM WORD . (54) . reduce 54 state 56 redir : REDIR word . (29) word : word . '^' sword (44) '^' shift 82 WORD reduce 29 QWORD reduce 29 LOCAL reduce 29 LET reduce 29 FOR reduce 29 CLOSURE reduce 29 FN reduce 29 ANDAND reduce 29 BACKBACK reduce 29 EXTRACT reduce 29 CALL reduce 29 COUNT reduce 29 DUP reduce 29 FLAT reduce 29 OROR reduce 29 PRIM reduce 29 REDIR reduce 29 NL reduce 29 ENDFILE reduce 29 '!' reduce 29 PIPE reduce 29 '$' reduce 29 ';' reduce 29 '&' reduce 29 '(' reduce 29 '~' reduce 29 '{' reduce 29 '}' reduce 29 '@' reduce 29 '`' reduce 29 state 57 caret : '^' . (69) . reduce 69 state 58 cmd : '!' caret . cmd (22) cmd : . (13) WORD shift 2 QWORD shift 3 LOCAL shift 4 LET shift 5 FOR shift 6 CLOSURE shift 7 FN shift 8 BACKBACK shift 9 EXTRACT shift 10 CALL shift 11 COUNT shift 12 DUP shift 13 FLAT shift 14 PRIM shift 15 REDIR shift 16 '!' shift 17 '$' shift 18 '(' shift 19 '~' shift 20 '{' shift 21 '@' shift 22 '`' shift 23 ANDAND reduce 13 OROR reduce 13 NL reduce 13 ENDFILE reduce 13 PIPE reduce 13 ';' reduce 13 '&' reduce 13 '}' reduce 13 cmd goto 86 comword goto 27 first goto 28 fn goto 29 param goto 31 simple goto 32 redir goto 33 binder goto 34 state 59 comword : '$' sword . (49) comword : '$' sword . SUB words ')' (50) SUB shift 87 WORD reduce 49 QWORD reduce 49 LOCAL reduce 49 LET reduce 49 FOR reduce 49 CLOSURE reduce 49 FN reduce 49 ANDAND reduce 49 BACKBACK reduce 49 EXTRACT reduce 49 CALL reduce 49 COUNT reduce 49 DUP reduce 49 FLAT reduce 49 OROR reduce 49 PRIM reduce 49 REDIR reduce 49 NL reduce 49 ENDFILE reduce 49 ')' reduce 49 '!' reduce 49 PIPE reduce 49 '$' reduce 49 ';' reduce 49 '&' reduce 49 '(' reduce 49 '~' reduce 49 '=' reduce 49 '{' reduce 49 '}' reduce 49 '^' reduce 49 '@' reduce 49 '`' reduce 49 state 60 comword : '(' nlwords . ')' (46) nlwords : nlwords . word (64) nlwords : nlwords . NL (65) WORD shift 2 QWORD shift 3 LOCAL shift 38 LET shift 39 FOR shift 40 CLOSURE shift 41 FN shift 42 BACKBACK shift 9 EXTRACT shift 43 CALL shift 11 COUNT shift 12 FLAT shift 14 PRIM shift 15 NL shift 88 ')' shift 89 '!' shift 44 '$' shift 18 '(' shift 19 '~' shift 45 '{' shift 21 '@' shift 22 '`' shift 23 . error keyword goto 46 comword goto 47 word goto 90 param goto 31 sword goto 49 state 61 cmd : '~' word . words (23) word : word . '^' sword (44) words : . (61) '^' shift 82 WORD reduce 61 QWORD reduce 61 LOCAL reduce 61 LET reduce 61 FOR reduce 61 CLOSURE reduce 61 FN reduce 61 ANDAND reduce 61 BACKBACK reduce 61 EXTRACT reduce 61 CALL reduce 61 COUNT reduce 61 FLAT reduce 61 OROR reduce 61 PRIM reduce 61 NL reduce 61 ENDFILE reduce 61 '!' reduce 61 PIPE reduce 61 '$' reduce 61 ';' reduce 61 '&' reduce 61 '(' reduce 61 '~' reduce 61 '{' reduce 61 '}' reduce 61 '@' reduce 61 '`' reduce 61 words goto 91 state 62 comword : '{' body . '}' (47) '}' shift 92 . error state 63 body : cmd . (7) cmdsa : cmd . ';' (9) cmdsa : cmd . '&' (10) cmdsan : cmd . NL (12) cmd : cmd . ANDAND nl cmd (19) cmd : cmd . OROR nl cmd (20) cmd : cmd . PIPE nl cmd (21) ANDAND shift 68 OROR shift 69 NL shift 93 PIPE shift 70 ';' shift 71 '&' shift 72 '}' reduce 7 state 64 cmdsan : cmdsa . (11) . reduce 11 state 65 body : cmdsan . body (8) cmd : . (13) WORD shift 2 QWORD shift 3 LOCAL shift 4 LET shift 5 FOR shift 6 CLOSURE shift 7 FN shift 8 BACKBACK shift 9 EXTRACT shift 10 CALL shift 11 COUNT shift 12 DUP shift 13 FLAT shift 14 PRIM shift 15 REDIR shift 16 '!' shift 17 '$' shift 18 '(' shift 19 '~' shift 20 '{' shift 21 '@' shift 22 '`' shift 23 ANDAND reduce 13 OROR reduce 13 NL reduce 13 PIPE reduce 13 ';' reduce 13 '&' reduce 13 '}' reduce 13 body goto 94 cmd goto 63 cmdsa goto 64 cmdsan goto 65 comword goto 27 first goto 28 fn goto 29 param goto 31 simple goto 32 redir goto 33 binder goto 34 state 66 comword : '@' params . '{' body '}' (48) params : params . param (60) WORD shift 2 QWORD shift 3 '{' shift 95 . error param goto 96 state 67 comword : '`' sword . (55) . reduce 55 state 68 cmd : cmd ANDAND . nl cmd (19) nl : . (66) . reduce 66 nl goto 97 state 69 cmd : cmd OROR . nl cmd (20) nl : . (66) . reduce 66 nl goto 98 state 70 cmd : cmd PIPE . nl cmd (21) nl : . (66) . reduce 66 nl goto 99 state 71 cmdsa : cmd ';' . (9) . reduce 9 state 72 cmdsa : cmd '&' . (10) . reduce 10 state 73 line : cmdsa line . (6) . reduce 6 state 74 first : first '^' . sword (40) caret : '^' . (69) WORD shift 2 QWORD shift 3 LOCAL shift 38 LET shift 39 FOR shift 40 CLOSURE shift 41 FN shift 42 BACKBACK shift 9 EXTRACT shift 43 CALL shift 11 COUNT shift 12 FLAT shift 14 PRIM shift 15 '!' shift 44 '$' shift 18 '(' shift 19 '~' shift 45 '{' shift 21 '@' shift 22 '`' shift 23 '=' reduce 69 keyword goto 46 comword goto 47 param goto 31 sword goto 100 state 75 cmd : first assign . (16) . reduce 16 state 76 assign : caret . '=' caret words (36) '=' shift 101 . error state 77 es : line end . (1) . reduce 1 state 78 simple : simple word . (26) word : word . '^' sword (44) '^' shift 82 WORD reduce 26 QWORD reduce 26 LOCAL reduce 26 LET reduce 26 FOR reduce 26 CLOSURE reduce 26 FN reduce 26 ANDAND reduce 26 BACKBACK reduce 26 EXTRACT reduce 26 CALL reduce 26 COUNT reduce 26 DUP reduce 26 FLAT reduce 26 OROR reduce 26 PRIM reduce 26 REDIR reduce 26 NL reduce 26 ENDFILE reduce 26 '!' reduce 26 PIPE reduce 26 '$' reduce 26 ';' reduce 26 '&' reduce 26 '(' reduce 26 '~' reduce 26 '{' reduce 26 '}' reduce 26 '@' reduce 26 '`' reduce 26 state 79 simple : simple redir . (27) . reduce 27 state 80 cmd : redir cmd . (15) cmd : cmd . ANDAND nl cmd (19) cmd : cmd . OROR nl cmd (20) cmd : cmd . PIPE nl cmd (21) PIPE shift 70 ANDAND reduce 15 OROR reduce 15 NL reduce 15 ENDFILE reduce 15 ';' reduce 15 '&' reduce 15 '}' reduce 15 state 81 cmd : binder nl . '(' bindings ')' nl cmd (18) nl : nl . NL (67) NL shift 102 '(' shift 103 . error state 82 word : word '^' . sword (44) WORD shift 2 QWORD shift 3 LOCAL shift 38 LET shift 39 FOR shift 40 CLOSURE shift 41 FN shift 42 BACKBACK shift 9 EXTRACT shift 43 CALL shift 11 COUNT shift 12 FLAT shift 14 PRIM shift 15 '!' shift 44 '$' shift 18 '(' shift 19 '~' shift 45 '{' shift 21 '@' shift 22 '`' shift 23 . error keyword goto 46 comword goto 47 param goto 31 sword goto 104 state 83 fn : FN word params . '{' body '}' (37) params : params . param (60) WORD shift 2 QWORD shift 3 '{' shift 105 . error param goto 96 state 84 comword : BACKBACK word sword . (56) . reduce 56 state 85 cmd : EXTRACT word words . (24) words : words . word (62) WORD shift 2 QWORD shift 3 LOCAL shift 38 LET shift 39 FOR shift 40 CLOSURE shift 41 FN shift 42 BACKBACK shift 9 EXTRACT shift 43 CALL shift 11 COUNT shift 12 FLAT shift 14 PRIM shift 15 '!' shift 44 '$' shift 18 '(' shift 19 '~' shift 45 '{' shift 21 '@' shift 22 '`' shift 23 ANDAND reduce 24 OROR reduce 24 NL reduce 24 ENDFILE reduce 24 PIPE reduce 24 ';' reduce 24 '&' reduce 24 '}' reduce 24 keyword goto 46 comword goto 47 word goto 106 param goto 31 sword goto 49 state 86 cmd : cmd . ANDAND nl cmd (19) cmd : cmd . OROR nl cmd (20) cmd : cmd . PIPE nl cmd (21) cmd : '!' caret cmd . (22) PIPE shift 70 ANDAND reduce 22 OROR reduce 22 NL reduce 22 ENDFILE reduce 22 ';' reduce 22 '&' reduce 22 '}' reduce 22 state 87 comword : '$' sword SUB . words ')' (50) words : . (61) . reduce 61 words goto 107 state 88 nlwords : nlwords NL . (65) . reduce 65 state 89 comword : '(' nlwords ')' . (46) . reduce 46 state 90 word : word . '^' sword (44) nlwords : nlwords word . (64) '^' shift 82 WORD reduce 64 QWORD reduce 64 LOCAL reduce 64 LET reduce 64 FOR reduce 64 CLOSURE reduce 64 FN reduce 64 BACKBACK reduce 64 EXTRACT reduce 64 CALL reduce 64 COUNT reduce 64 FLAT reduce 64 PRIM reduce 64 NL reduce 64 ')' reduce 64 '!' reduce 64 '$' reduce 64 '(' reduce 64 '~' reduce 64 '{' reduce 64 '@' reduce 64 '`' reduce 64 state 91 cmd : '~' word words . (23) words : words . word (62) WORD shift 2 QWORD shift 3 LOCAL shift 38 LET shift 39 FOR shift 40 CLOSURE shift 41 FN shift 42 BACKBACK shift 9 EXTRACT shift 43 CALL shift 11 COUNT shift 12 FLAT shift 14 PRIM shift 15 '!' shift 44 '$' shift 18 '(' shift 19 '~' shift 45 '{' shift 21 '@' shift 22 '`' shift 23 ANDAND reduce 23 OROR reduce 23 NL reduce 23 ENDFILE reduce 23 PIPE reduce 23 ';' reduce 23 '&' reduce 23 '}' reduce 23 keyword goto 46 comword goto 47 word goto 106 param goto 31 sword goto 49 state 92 comword : '{' body '}' . (47) . reduce 47 state 93 cmdsan : cmd NL . (12) . reduce 12 state 94 body : cmdsan body . (8) . reduce 8 state 95 comword : '@' params '{' . body '}' (48) cmd : . (13) WORD shift 2 QWORD shift 3 LOCAL shift 4 LET shift 5 FOR shift 6 CLOSURE shift 7 FN shift 8 BACKBACK shift 9 EXTRACT shift 10 CALL shift 11 COUNT shift 12 DUP shift 13 FLAT shift 14 PRIM shift 15 REDIR shift 16 '!' shift 17 '$' shift 18 '(' shift 19 '~' shift 20 '{' shift 21 '@' shift 22 '`' shift 23 ANDAND reduce 13 OROR reduce 13 NL reduce 13 PIPE reduce 13 ';' reduce 13 '&' reduce 13 '}' reduce 13 body goto 108 cmd goto 63 cmdsa goto 64 cmdsan goto 65 comword goto 27 first goto 28 fn goto 29 param goto 31 simple goto 32 redir goto 33 binder goto 34 state 96 params : params param . (60) . reduce 60 state 97 cmd : cmd ANDAND nl . cmd (19) nl : nl . NL (67) cmd : . (13) WORD shift 2 QWORD shift 3 LOCAL shift 4 LET shift 5 FOR shift 6 CLOSURE shift 7 FN shift 8 BACKBACK shift 9 EXTRACT shift 10 CALL shift 11 COUNT shift 12 DUP shift 13 FLAT shift 14 PRIM shift 15 REDIR shift 16 NL shift 102 '!' shift 17 '$' shift 18 '(' shift 19 '~' shift 20 '{' shift 21 '@' shift 22 '`' shift 23 ANDAND reduce 13 OROR reduce 13 ENDFILE reduce 13 PIPE reduce 13 ';' reduce 13 '&' reduce 13 '}' reduce 13 cmd goto 109 comword goto 27 first goto 28 fn goto 29 param goto 31 simple goto 32 redir goto 33 binder goto 34 state 98 cmd : cmd OROR nl . cmd (20) nl : nl . NL (67) cmd : . (13) WORD shift 2 QWORD shift 3 LOCAL shift 4 LET shift 5 FOR shift 6 CLOSURE shift 7 FN shift 8 BACKBACK shift 9 EXTRACT shift 10 CALL shift 11 COUNT shift 12 DUP shift 13 FLAT shift 14 PRIM shift 15 REDIR shift 16 NL shift 102 '!' shift 17 '$' shift 18 '(' shift 19 '~' shift 20 '{' shift 21 '@' shift 22 '`' shift 23 ANDAND reduce 13 OROR reduce 13 ENDFILE reduce 13 PIPE reduce 13 ';' reduce 13 '&' reduce 13 '}' reduce 13 cmd goto 110 comword goto 27 first goto 28 fn goto 29 param goto 31 simple goto 32 redir goto 33 binder goto 34 state 99 cmd : cmd PIPE nl . cmd (21) nl : nl . NL (67) cmd : . (13) WORD shift 2 QWORD shift 3 LOCAL shift 4 LET shift 5 FOR shift 6 CLOSURE shift 7 FN shift 8 BACKBACK shift 9 EXTRACT shift 10 CALL shift 11 COUNT shift 12 DUP shift 13 FLAT shift 14 PRIM shift 15 REDIR shift 16 NL shift 102 '!' shift 17 '$' shift 18 '(' shift 19 '~' shift 20 '{' shift 21 '@' shift 22 '`' shift 23 ANDAND reduce 13 OROR reduce 13 ENDFILE reduce 13 PIPE reduce 13 ';' reduce 13 '&' reduce 13 '}' reduce 13 cmd goto 111 comword goto 27 first goto 28 fn goto 29 param goto 31 simple goto 32 redir goto 33 binder goto 34 state 100 first : first '^' sword . (40) . reduce 40 state 101 assign : caret '=' . caret words (36) caret : . (68) '^' shift 57 WORD reduce 68 QWORD reduce 68 LOCAL reduce 68 LET reduce 68 FOR reduce 68 CLOSURE reduce 68 FN reduce 68 ANDAND reduce 68 BACKBACK reduce 68 EXTRACT reduce 68 CALL reduce 68 COUNT reduce 68 FLAT reduce 68 OROR reduce 68 PRIM reduce 68 NL reduce 68 ENDFILE reduce 68 ')' reduce 68 '!' reduce 68 PIPE reduce 68 '$' reduce 68 ';' reduce 68 '&' reduce 68 '(' reduce 68 '~' reduce 68 '{' reduce 68 '}' reduce 68 '@' reduce 68 '`' reduce 68 caret goto 112 state 102 nl : nl NL . (67) . reduce 67 state 103 cmd : binder nl '(' . bindings ')' nl cmd (18) binding : . (33) WORD shift 2 QWORD shift 3 LOCAL shift 38 LET shift 39 FOR shift 40 CLOSURE shift 41 FN shift 113 BACKBACK shift 9 EXTRACT shift 43 CALL shift 11 COUNT shift 12 FLAT shift 14 PRIM shift 15 '!' shift 44 '$' shift 18 '(' shift 19 '~' shift 45 '{' shift 21 '@' shift 22 '`' shift 23 NL reduce 33 ')' reduce 33 ';' reduce 33 keyword goto 46 comword goto 47 fn goto 114 word goto 115 param goto 31 binding goto 116 bindings goto 117 sword goto 49 state 104 word : word '^' sword . (44) . reduce 44 state 105 fn : FN word params '{' . body '}' (37) cmd : . (13) WORD shift 2 QWORD shift 3 LOCAL shift 4 LET shift 5 FOR shift 6 CLOSURE shift 7 FN shift 8 BACKBACK shift 9 EXTRACT shift 10 CALL shift 11 COUNT shift 12 DUP shift 13 FLAT shift 14 PRIM shift 15 REDIR shift 16 '!' shift 17 '$' shift 18 '(' shift 19 '~' shift 20 '{' shift 21 '@' shift 22 '`' shift 23 ANDAND reduce 13 OROR reduce 13 NL reduce 13 PIPE reduce 13 ';' reduce 13 '&' reduce 13 '}' reduce 13 body goto 118 cmd goto 63 cmdsa goto 64 cmdsan goto 65 comword goto 27 first goto 28 fn goto 29 param goto 31 simple goto 32 redir goto 33 binder goto 34 state 106 word : word . '^' sword (44) words : words word . (62) '^' shift 82 WORD reduce 62 QWORD reduce 62 LOCAL reduce 62 LET reduce 62 FOR reduce 62 CLOSURE reduce 62 FN reduce 62 ANDAND reduce 62 BACKBACK reduce 62 EXTRACT reduce 62 CALL reduce 62 COUNT reduce 62 FLAT reduce 62 OROR reduce 62 PRIM reduce 62 NL reduce 62 ENDFILE reduce 62 ')' reduce 62 '!' reduce 62 PIPE reduce 62 '$' reduce 62 ';' reduce 62 '&' reduce 62 '(' reduce 62 '~' reduce 62 '{' reduce 62 '}' reduce 62 '@' reduce 62 '`' reduce 62 state 107 comword : '$' sword SUB words . ')' (50) words : words . word (62) WORD shift 2 QWORD shift 3 LOCAL shift 38 LET shift 39 FOR shift 40 CLOSURE shift 41 FN shift 42 BACKBACK shift 9 EXTRACT shift 43 CALL shift 11 COUNT shift 12 FLAT shift 14 PRIM shift 15 ')' shift 119 '!' shift 44 '$' shift 18 '(' shift 19 '~' shift 45 '{' shift 21 '@' shift 22 '`' shift 23 . error keyword goto 46 comword goto 47 word goto 106 param goto 31 sword goto 49 state 108 comword : '@' params '{' body . '}' (48) '}' shift 120 . error state 109 cmd : cmd . ANDAND nl cmd (19) cmd : cmd ANDAND nl cmd . (19) cmd : cmd . OROR nl cmd (20) cmd : cmd . PIPE nl cmd (21) PIPE shift 70 ANDAND reduce 19 OROR reduce 19 NL reduce 19 ENDFILE reduce 19 ';' reduce 19 '&' reduce 19 '}' reduce 19 state 110 cmd : cmd . ANDAND nl cmd (19) cmd : cmd . OROR nl cmd (20) cmd : cmd OROR nl cmd . (20) cmd : cmd . PIPE nl cmd (21) PIPE shift 70 ANDAND reduce 20 OROR reduce 20 NL reduce 20 ENDFILE reduce 20 ';' reduce 20 '&' reduce 20 '}' reduce 20 state 111 cmd : cmd . ANDAND nl cmd (19) cmd : cmd . OROR nl cmd (20) cmd : cmd . PIPE nl cmd (21) cmd : cmd PIPE nl cmd . (21) . reduce 21 state 112 assign : caret '=' caret . words (36) words : . (61) . reduce 61 words goto 121 state 113 fn : FN . word params '{' body '}' (37) fn : FN . word (38) keyword : FN . (80) WORD shift 2 QWORD shift 3 LOCAL shift 38 LET shift 39 FOR shift 40 CLOSURE shift 41 FN shift 42 BACKBACK shift 9 EXTRACT shift 43 CALL shift 11 COUNT shift 12 FLAT shift 14 PRIM shift 15 '!' shift 44 '$' shift 18 '(' shift 19 '~' shift 45 '{' shift 21 '@' shift 22 '`' shift 23 '=' reduce 80 '^' reduce 80 keyword goto 46 comword goto 47 word goto 48 param goto 31 sword goto 49 state 114 binding : fn . (34) . reduce 34 state 115 binding : word . assign (35) word : word . '^' sword (44) caret : . (68) '^' shift 122 '=' reduce 68 assign goto 123 caret goto 76 state 116 bindings : binding . (30) . reduce 30 state 117 cmd : binder nl '(' bindings . ')' nl cmd (18) bindings : bindings . ';' binding (31) bindings : bindings . NL binding (32) NL shift 124 ')' shift 125 ';' shift 126 . error state 118 fn : FN word params '{' body . '}' (37) '}' shift 127 . error state 119 comword : '$' sword SUB words ')' . (50) . reduce 50 state 120 comword : '@' params '{' body '}' . (48) . reduce 48 state 121 assign : caret '=' caret words . (36) words : words . word (62) WORD shift 2 QWORD shift 3 LOCAL shift 38 LET shift 39 FOR shift 40 CLOSURE shift 41 FN shift 42 BACKBACK shift 9 EXTRACT shift 43 CALL shift 11 COUNT shift 12 FLAT shift 14 PRIM shift 15 '!' shift 44 '$' shift 18 '(' shift 19 '~' shift 45 '{' shift 21 '@' shift 22 '`' shift 23 ANDAND reduce 36 OROR reduce 36 NL reduce 36 ENDFILE reduce 36 ')' reduce 36 PIPE reduce 36 ';' reduce 36 '&' reduce 36 '}' reduce 36 keyword goto 46 comword goto 47 word goto 106 param goto 31 sword goto 49 state 122 word : word '^' . sword (44) caret : '^' . (69) WORD shift 2 QWORD shift 3 LOCAL shift 38 LET shift 39 FOR shift 40 CLOSURE shift 41 FN shift 42 BACKBACK shift 9 EXTRACT shift 43 CALL shift 11 COUNT shift 12 FLAT shift 14 PRIM shift 15 '!' shift 44 '$' shift 18 '(' shift 19 '~' shift 45 '{' shift 21 '@' shift 22 '`' shift 23 '=' reduce 69 keyword goto 46 comword goto 47 param goto 31 sword goto 104 state 123 binding : word assign . (35) . reduce 35 state 124 bindings : bindings NL . binding (32) binding : . (33) WORD shift 2 QWORD shift 3 LOCAL shift 38 LET shift 39 FOR shift 40 CLOSURE shift 41 FN shift 113 BACKBACK shift 9 EXTRACT shift 43 CALL shift 11 COUNT shift 12 FLAT shift 14 PRIM shift 15 '!' shift 44 '$' shift 18 '(' shift 19 '~' shift 45 '{' shift 21 '@' shift 22 '`' shift 23 NL reduce 33 ')' reduce 33 ';' reduce 33 keyword goto 46 comword goto 47 fn goto 114 word goto 115 param goto 31 binding goto 128 sword goto 49 state 125 cmd : binder nl '(' bindings ')' . nl cmd (18) nl : . (66) . reduce 66 nl goto 129 state 126 bindings : bindings ';' . binding (31) binding : . (33) WORD shift 2 QWORD shift 3 LOCAL shift 38 LET shift 39 FOR shift 40 CLOSURE shift 41 FN shift 113 BACKBACK shift 9 EXTRACT shift 43 CALL shift 11 COUNT shift 12 FLAT shift 14 PRIM shift 15 '!' shift 44 '$' shift 18 '(' shift 19 '~' shift 45 '{' shift 21 '@' shift 22 '`' shift 23 NL reduce 33 ')' reduce 33 ';' reduce 33 keyword goto 46 comword goto 47 fn goto 114 word goto 115 param goto 31 binding goto 130 sword goto 49 state 127 fn : FN word params '{' body '}' . (37) . reduce 37 state 128 bindings : bindings NL binding . (32) . reduce 32 state 129 cmd : binder nl '(' bindings ')' nl . cmd (18) nl : nl . NL (67) cmd : . (13) WORD shift 2 QWORD shift 3 LOCAL shift 4 LET shift 5 FOR shift 6 CLOSURE shift 7 FN shift 8 BACKBACK shift 9 EXTRACT shift 10 CALL shift 11 COUNT shift 12 DUP shift 13 FLAT shift 14 PRIM shift 15 REDIR shift 16 NL shift 102 '!' shift 17 '$' shift 18 '(' shift 19 '~' shift 20 '{' shift 21 '@' shift 22 '`' shift 23 ANDAND reduce 13 OROR reduce 13 ENDFILE reduce 13 PIPE reduce 13 ';' reduce 13 '&' reduce 13 '}' reduce 13 cmd goto 131 comword goto 27 first goto 28 fn goto 29 param goto 31 simple goto 32 redir goto 33 binder goto 34 state 130 bindings : bindings ';' binding . (31) . reduce 31 state 131 cmd : binder nl '(' bindings ')' nl cmd . (18) cmd : cmd . ANDAND nl cmd (19) cmd : cmd . OROR nl cmd (20) cmd : cmd . PIPE nl cmd (21) ANDAND shift 68 OROR shift 69 PIPE shift 70 NL reduce 18 ENDFILE reduce 18 ';' reduce 18 '&' reduce 18 '}' reduce 18 37 terminals, 26 nonterminals 82 grammar rules, 132 states