//SMALLTALK -------------------------> #( (keywords if for else) (ReadaheadTable 1 (for 'RS' 4) (#'(' 'RS' 6) (walkInteger: 'RSN' 68) (walkIdentifier: 'RSN' 7) (if 'RS' 8) (#'}' 'L' 52) (#'-|' 'L' 52)) (ReadaheadTable 2 (if 'RS' 8) (walkIdentifier: 'RSN' 7) (for 'RS' 4) (walkInteger: 'RSN' 68) (#'(' 'RS' 6) (#'}' 'L' 52) (#'-|' 'L' 52)) (ReadaheadTable 3 (#'*' 'RS' 11) (#'/' 'RS' 12) (#'+' 'L' 66) (#'-' 'L' 66) (#'<' 'L' 66) (#'>' 'L' 66) (#'==' 'L' 66) (#'?' 'L' 66) (#')' 'L' 66) (#',' 'L' 66) (#';' 'L' 66) (#':' 'L' 66)) (ReadaheadTable 4 (#'(' 'RS' 13)) (ReadaheadTable 5 (#'<' 'RS' 14) (#'>' 'RS' 15) (#'==' 'RS' 16) (#'?' 'RS' 17) (#')' 'L' 67) (#',' 'L' 67) (#';' 'L' 67)) (ReadaheadTable 6 (walkIdentifier: 'RSN' 7) (walkInteger: 'RSN' 68) (#'(' 'RS' 6)) (ReadaheadTable 7 (#'=' 'RS' 19) (#'(' 'RS' 20) (#'*' 'L' 68) (#'/' 'L' 68) (#'+' 'L' 68) (#'-' 'L' 68) (#'<' 'L' 68) (#'>' 'L' 68) (#'==' 'L' 68) (#'?' 'L' 68) (#')' 'L' 68) (#',' 'L' 68) (#';' 'L' 68) (#':' 'L' 68)) (ReadaheadTable 8 (#'(' 'RS' 21)) (ReadaheadTable 9 (#'+' 'RS' 22) (#'-' 'RS' 23) (#'<' 'L' 70) (#'>' 'L' 70) (#'==' 'L' 70) (#'?' 'L' 70) (#')' 'L' 70) (#',' 'L' 70) (#';' 'L' 70) (#':' 'L' 70)) (ReadaheadTable 10 (#';' 'RS' 71)) (ReadaheadTable 11 (#'(' 'RS' 6) (walkInteger: 'RSN' 68) (walkIdentifier: 'RSN' 24)) (ReadaheadTable 12 (#'(' 'RS' 6) (walkInteger: 'RSN' 68) (walkIdentifier: 'RSN' 24)) (ReadaheadTable 13 (#'(' 'RS' 6) (walkIdentifier: 'RSN' 7) (walkInteger: 'RSN' 68)) (ReadaheadTable 14 (walkIdentifier: 'RSN' 24) (walkInteger: 'RSN' 68) (#'(' 'RS' 6)) (ReadaheadTable 15 (walkIdentifier: 'RSN' 24) (walkInteger: 'RSN' 68) (#'(' 'RS' 6)) (ReadaheadTable 16 (walkIdentifier: 'RSN' 24) (walkInteger: 'RSN' 68) (#'(' 'RS' 6)) (ReadaheadTable 17 (walkIdentifier: 'RSN' 24) (walkInteger: 'RSN' 68) (#'(' 'RS' 6)) (ReadaheadTable 18 (#')' 'RS' 72)) (ReadaheadTable 19 (walkIdentifier: 'RSN' 7) (walkInteger: 'RSN' 68) (#'(' 'RS' 6)) (ReadaheadTable 20 (#')' 'RS' 79) (#'(' 'RS' 6) (walkIdentifier: 'RSN' 7) (walkInteger: 'RSN' 68)) (ReadaheadTable 21 (#'(' 'RS' 6) (walkIdentifier: 'RSN' 7) (walkInteger: 'RSN' 68)) (ReadaheadTable 22 (walkIdentifier: 'RSN' 24) (#'(' 'RS' 6) (walkInteger: 'RSN' 68)) (ReadaheadTable 23 (walkIdentifier: 'RSN' 24) (#'(' 'RS' 6) (walkInteger: 'RSN' 68)) (ReadaheadTable 24 (#'(' 'RS' 20) (#'*' 'L' 68) (#'/' 'L' 68) (#'+' 'L' 68) (#'-' 'L' 68) (#'<' 'L' 68) (#'>' 'L' 68) (#'==' 'L' 68) (#'?' 'L' 68) (#')' 'L' 68) (#',' 'L' 68) (#';' 'L' 68) (#':' 'L' 68)) (ReadaheadTable 25 (#';' 'RS' 34)) (ReadaheadTable 26 (#'+' 'RS' 22) (#'-' 'RS' 23) (#'<' 'L' 75) (#'>' 'L' 75) (#'==' 'L' 75) (#'?' 'L' 75) (#')' 'L' 75) (#',' 'L' 75) (#';' 'L' 75) (#':' 'L' 75)) (ReadaheadTable 27 (#'+' 'RS' 22) (#'-' 'RS' 23) (#'<' 'L' 76) (#'>' 'L' 76) (#'==' 'L' 76) (#'?' 'L' 76) (#')' 'L' 76) (#',' 'L' 76) (#';' 'L' 76) (#':' 'L' 76)) (ReadaheadTable 28 (#'+' 'RS' 22) (#'-' 'RS' 23) (#'<' 'L' 77) (#'>' 'L' 77) (#'==' 'L' 77) (#'?' 'L' 77) (#')' 'L' 77) (#',' 'L' 77) (#';' 'L' 77) (#':' 'L' 77)) (ReadaheadTable 29 (#'<' 'RS' 14) (#'>' 'RS' 15) (#'==' 'RS' 16) (#':' 'RS' 35)) (ReadaheadTable 30 (#',' 'RS' 36) (#')' 'RS' 79)) (ReadaheadTable 31 (#')' 'RS' 37)) (ReadaheadTable 32 (#'*' 'RS' 11) (#'/' 'RS' 12) (#'+' 'L' 80) (#'-' 'L' 80) (#'<' 'L' 80) (#'>' 'L' 80) (#'==' 'L' 80) (#'?' 'L' 80) (#')' 'L' 80) (#',' 'L' 80) (#';' 'L' 80) (#':' 'L' 80)) (ReadaheadTable 33 (#'*' 'RS' 11) (#'/' 'RS' 12) (#'+' 'L' 81) (#'-' 'L' 81) (#'<' 'L' 81) (#'>' 'L' 81) (#'==' 'L' 81) (#'?' 'L' 81) (#')' 'L' 81) (#',' 'L' 81) (#';' 'L' 81) (#':' 'L' 81)) (ReadaheadTable 34 (#'(' 'RS' 6) (walkIdentifier: 'RSN' 7) (walkInteger: 'RSN' 68)) (ReadaheadTable 35 (#'(' 'RS' 6) (walkIdentifier: 'RSN' 24) (walkInteger: 'RSN' 68)) (ReadaheadTable 36 (walkIdentifier: 'RSN' 7) (walkInteger: 'RSN' 68) (#'(' 'RS' 6)) (ReadaheadTable 37 (#'{' 'RS' 41)) (ReadaheadTable 38 (#';' 'RS' 42)) (ReadaheadTable 39 (#'<' 'RS' 14) (#'>' 'RS' 15) (#'==' 'RS' 16) (#')' 'L' 82) (#',' 'L' 82) (#';' 'L' 82)) (ReadaheadTable 40 (#',' 'RS' 36) (#')' 'RS' 79)) (ReadaheadTable 41 (for 'RS' 4) (walkInteger: 'RSN' 68) (#'(' 'RS' 6) (walkIdentifier: 'RSN' 7) (if 'RS' 8) (#'}' 'L' 52) (#'-|' 'L' 52)) (ReadaheadTable 42 (walkIdentifier: 'RSN' 7) (walkInteger: 'RSN' 68) (#'(' 'RS' 6)) (ReadaheadTable 43 (#'}' 'RS' 45)) (ReadaheadTable 44 (#')' 'RS' 46)) (ReadaheadTable 45 (else 'RS' 47) (if 'L' 53) (for 'L' 53) (walkInteger: 'L' 53) (walkIdentifier: 'L' 53) (#'(' 'L' 53) (#'}' 'L' 53) (#'-|' 'L' 53)) (ReadaheadTable 46 (#'{' 'RS' 48)) (ReadaheadTable 47 (#'{' 'RS' 49)) (ReadaheadTable 48 (for 'RS' 4) (#'(' 'RS' 6) (walkInteger: 'RSN' 68) (walkIdentifier: 'RSN' 7) (if 'RS' 8) (#'}' 'L' 52) (#'-|' 'L' 52)) (ReadaheadTable 49 (for 'RS' 4) (#'(' 'RS' 6) (walkInteger: 'RSN' 68) (walkIdentifier: 'RSN' 7) (if 'RS' 8) (#'}' 'L' 52) (#'-|' 'L' 52)) (ReadaheadTable 50 (#'}' 'RS' 83)) (ReadaheadTable 51 (#'}' 'RS' 53)) (ReadbackTable 52 ((Statement 2) 'RSN' 54) ((#'|-' 1) 'L' 96) ((#'{' 41) 'L' 96) ((#'{' 48) 'L' 96) ((#'{' 49) 'L' 96)) (ReadbackTable 53 ((#'}' 53) 'RS' 84) ((#'}' 45) 'RS' 85)) (ReadbackTable 54 ((Statement 2) 'RSN' 54) ((#'|-' 1) 'L' 96) ((#'{' 41) 'L' 96) ((#'{' 48) 'L' 96) ((#'{' 49) 'L' 96)) (ReadbackTable 55 ((#'(' 20) 'RS' 61) ((Expression 40) 'RSN' 86) ((Expression 30) 'RSN' 87)) (ReadbackTable 56 ((Expression2 32) 'RSN' 97) ((Expression2 33) 'RSN' 97) ((Expression2 3) 'RSN' 97)) (ReadbackTable 57 ((Expression2 32) 'RSN' 98) ((Expression2 33) 'RSN' 98) ((Expression2 3) 'RSN' 98)) (ReadbackTable 58 ((Expression0 39) 'RSN' 99) ((Expression0 5) 'RSN' 99) ((Expression0 29) 'RSN' 99)) (ReadbackTable 59 ((Expression0 39) 'RSN' 100) ((Expression0 5) 'RSN' 100) ((Expression0 29) 'RSN' 100)) (ReadbackTable 60 ((Expression0 39) 'RSN' 101) ((Expression0 5) 'RSN' 101) ((Expression0 29) 'RSN' 101)) (ReadbackTable 61 ((walkIdentifier: 24) 'RSN' 103) ((walkIdentifier: 7) 'RSN' 103)) (ReadbackTable 62 ((Expression1 27) 'RSN' 104) ((Expression1 28) 'RSN' 104) ((Expression1 9) 'RSN' 104) ((Expression1 26) 'RSN' 104)) (ReadbackTable 63 ((Expression1 27) 'RSN' 105) ((Expression1 28) 'RSN' 105) ((Expression1 9) 'RSN' 105) ((Expression1 26) 'RSN' 105)) (ReadbackTable 64 ((Expression 40) 'RSN' 86) ((Expression 30) 'RSN' 87)) (ShiftbackTable 65 1 91) (ShiftbackTable 66 1 94) (ShiftbackTable 67 1 95) (ShiftbackTable 68 1 93) (ShiftbackTable 69 1 92) (ShiftbackTable 70 1 88) (ShiftbackTable 71 2 90) (ShiftbackTable 72 3 93) (ShiftbackTable 73 2 56) (ShiftbackTable 74 2 57) (ShiftbackTable 75 2 58) (ShiftbackTable 76 2 59) (ShiftbackTable 77 2 60) (ShiftbackTable 78 3 102) (ShiftbackTable 79 1 55) (ShiftbackTable 80 2 62) (ShiftbackTable 81 2 63) (ShiftbackTable 82 5 106) (ShiftbackTable 83 11 108) (ShiftbackTable 84 10 107) (ShiftbackTable 85 6 107) (ShiftbackTable 86 1 64) (ShiftbackTable 87 1 61) (ReduceTable 88 Expression0 (1 'RSN' 5)(2 'RSN' 5)(6 'RSN' 5)(13 'RSN' 5)(17 'RSN' 29)(19 'RSN' 5)(20 'RSN' 5)(21 'RSN' 5)(34 'RSN' 5)(35 'RSN' 39)(36 'RSN' 5)(41 'RSN' 5)(42 'RSN' 5)(48 'RSN' 5)(49 'RSN' 5)) (ReduceTable 89 Statements (1 'RSN' 65)(41 'RSN' 43)(48 'RSN' 50)(49 'RSN' 51)) (ReduceTable 90 Statement (1 'RSN' 2)(2 'RSN' 2)(41 'RSN' 2)(48 'RSN' 2)(49 'RSN' 2)) (ReduceTable 91 Grammar (1 'RSN' 109)) (ReduceTable 92 Expression2 (1 'RSN' 3)(2 'RSN' 3)(6 'RSN' 3)(13 'RSN' 3)(14 'RSN' 3)(15 'RSN' 3)(16 'RSN' 3)(17 'RSN' 3)(19 'RSN' 3)(20 'RSN' 3)(21 'RSN' 3)(22 'RSN' 32)(23 'RSN' 33)(34 'RSN' 3)(35 'RSN' 3)(36 'RSN' 3)(41 'RSN' 3)(42 'RSN' 3)(48 'RSN' 3)(49 'RSN' 3)) (ReduceTable 93 Expression3 (1 'RSN' 69)(2 'RSN' 69)(6 'RSN' 69)(11 'RSN' 73)(12 'RSN' 74)(13 'RSN' 69)(14 'RSN' 69)(15 'RSN' 69)(16 'RSN' 69)(17 'RSN' 69)(19 'RSN' 69)(20 'RSN' 69)(21 'RSN' 69)(22 'RSN' 69)(23 'RSN' 69)(34 'RSN' 69)(35 'RSN' 69)(36 'RSN' 69)(41 'RSN' 69)(42 'RSN' 69)(48 'RSN' 69)(49 'RSN' 69)) (ReduceTable 94 Expression1 (1 'RSN' 9)(2 'RSN' 9)(6 'RSN' 9)(13 'RSN' 9)(14 'RSN' 26)(15 'RSN' 27)(16 'RSN' 28)(17 'RSN' 9)(19 'RSN' 9)(20 'RSN' 9)(21 'RSN' 9)(34 'RSN' 9)(35 'RSN' 9)(36 'RSN' 9)(41 'RSN' 9)(42 'RSN' 9)(48 'RSN' 9)(49 'RSN' 9)) (ReduceTable 95 Expression (1 'RSN' 10)(2 'RSN' 10)(6 'RSN' 18)(13 'RSN' 25)(19 'RSN' 78)(20 'RSN' 30)(21 'RSN' 31)(34 'RSN' 38)(36 'RSN' 40)(41 'RSN' 10)(42 'RSN' 44)(48 'RSN' 10)(49 'RSN' 10)) (SemanticTable 96 buildTree: walkList: 89) (SemanticTable 97 buildTree: walkMultiply: 92) (SemanticTable 98 buildTree: walkDivide: 92) (SemanticTable 99 buildTree: walkLess: 88) (SemanticTable 100 buildTree: walkGreater: 88) (SemanticTable 101 buildTree: walkEqual: 88) (SemanticTable 102 buildTree: walkAssign: 95) (SemanticTable 103 buildTree: walkSend: 93) (SemanticTable 104 buildTree: walkPlus: 94) (SemanticTable 105 buildTree: walkMinus: 94) (SemanticTable 106 buildTree: walkIf: 95) (SemanticTable 107 buildTree: walkIf: 90) (SemanticTable 108 buildTree: walkFor: 90) (AcceptTable 109)) //RUBY -----------------------------------> [ [:keywords, ':''if for else'''], [:ReadaheadTable, 1, [for, 'RS', 4], [:'(', 'RS', 6], [walkInteger:, 'RSN', 68], [walkIdentifier:, 'RSN', 7], [if, 'RS', 8], [:'}', 'L', 52], [:'-|', 'L', 52]], [:ReadaheadTable, 2, [if, 'RS', 8], [walkIdentifier:, 'RSN', 7], [for, 'RS', 4], [walkInteger:, 'RSN', 68], [:'(', 'RS', 6], [:'}', 'L', 52], [:'-|', 'L', 52]], [:ReadaheadTable, 3, [:'*', 'RS', 11], [:'/', 'RS', 12], [:'+', 'L', 66], [:'-', 'L', 66], [:'<', 'L', 66], [:'>', 'L', 66], [:'==', 'L', 66], [:'?', 'L', 66], [:')', 'L', 66], [:',', 'L', 66], [:';', 'L', 66], [:':', 'L', 66]], [:ReadaheadTable, 4, [:'(', 'RS', 13]], [:ReadaheadTable, 5, [:'<', 'RS', 14], [:'>', 'RS', 15], [:'==', 'RS', 16], [:'?', 'RS', 17], [:')', 'L', 67], [:',', 'L', 67], [:';', 'L', 67]], [:ReadaheadTable, 6, [walkIdentifier:, 'RSN', 7], [walkInteger:, 'RSN', 68], [:'(', 'RS', 6]], [:ReadaheadTable, 7, [:'=', 'RS', 19], [:'(', 'RS', 20], [:'*', 'L', 68], [:'/', 'L', 68], [:'+', 'L', 68], [:'-', 'L', 68], [:'<', 'L', 68], [:'>', 'L', 68], [:'==', 'L', 68], [:'?', 'L', 68], [:')', 'L', 68], [:',', 'L', 68], [:';', 'L', 68], [:':', 'L', 68]], [:ReadaheadTable, 8, [:'(', 'RS', 21]], [:ReadaheadTable, 9, [:'+', 'RS', 22], [:'-', 'RS', 23], [:'<', 'L', 70], [:'>', 'L', 70], [:'==', 'L', 70], [:'?', 'L', 70], [:')', 'L', 70], [:',', 'L', 70], [:';', 'L', 70], [:':', 'L', 70]], [:ReadaheadTable, 10, [:';', 'RS', 71]], [:ReadaheadTable, 11, [:'(', 'RS', 6], [walkInteger:, 'RSN', 68], [walkIdentifier:, 'RSN', 24]], [:ReadaheadTable, 12, [:'(', 'RS', 6], [walkInteger:, 'RSN', 68], [walkIdentifier:, 'RSN', 24]], [:ReadaheadTable, 13, [:'(', 'RS', 6], [walkIdentifier:, 'RSN', 7], [walkInteger:, 'RSN', 68]], [:ReadaheadTable, 14, [walkIdentifier:, 'RSN', 24], [walkInteger:, 'RSN', 68], [:'(', 'RS', 6]], [:ReadaheadTable, 15, [walkIdentifier:, 'RSN', 24], [walkInteger:, 'RSN', 68], [:'(', 'RS', 6]], [:ReadaheadTable, 16, [walkIdentifier:, 'RSN', 24], [walkInteger:, 'RSN', 68], [:'(', 'RS', 6]], [:ReadaheadTable, 17, [walkIdentifier:, 'RSN', 24], [walkInteger:, 'RSN', 68], [:'(', 'RS', 6]], [:ReadaheadTable, 18, [:')', 'RS', 72]], [:ReadaheadTable, 19, [walkIdentifier:, 'RSN', 7], [walkInteger:, 'RSN', 68], [:'(', 'RS', 6]], [:ReadaheadTable, 20, [:')', 'RS', 79], [:'(', 'RS', 6], [walkIdentifier:, 'RSN', 7], [walkInteger:, 'RSN', 68]], [:ReadaheadTable, 21, [:'(', 'RS', 6], [walkIdentifier:, 'RSN', 7], [walkInteger:, 'RSN', 68]], [:ReadaheadTable, 22, [walkIdentifier:, 'RSN', 24], [:'(', 'RS', 6], [walkInteger:, 'RSN', 68]], [:ReadaheadTable, 23, [walkIdentifier:, 'RSN', 24], [:'(', 'RS', 6], [walkInteger:, 'RSN', 68]], [:ReadaheadTable, 24, [:'(', 'RS', 20], [:'*', 'L', 68], [:'/', 'L', 68], [:'+', 'L', 68], [:'-', 'L', 68], [:'<', 'L', 68], [:'>', 'L', 68], [:'==', 'L', 68], [:'?', 'L', 68], [:')', 'L', 68], [:',', 'L', 68], [:';', 'L', 68], [:':', 'L', 68]], [:ReadaheadTable, 25, [:';', 'RS', 34]], [:ReadaheadTable, 26, [:'+', 'RS', 22], [:'-', 'RS', 23], [:'<', 'L', 75], [:'>', 'L', 75], [:'==', 'L', 75], [:'?', 'L', 75], [:')', 'L', 75], [:',', 'L', 75], [:';', 'L', 75], [:':', 'L', 75]], [:ReadaheadTable, 27, [:'+', 'RS', 22], [:'-', 'RS', 23], [:'<', 'L', 76], [:'>', 'L', 76], [:'==', 'L', 76], [:'?', 'L', 76], [:')', 'L', 76], [:',', 'L', 76], [:';', 'L', 76], [:':', 'L', 76]], [:ReadaheadTable, 28, [:'+', 'RS', 22], [:'-', 'RS', 23], [:'<', 'L', 77], [:'>', 'L', 77], [:'==', 'L', 77], [:'?', 'L', 77], [:')', 'L', 77], [:',', 'L', 77], [:';', 'L', 77], [:':', 'L', 77]], [:ReadaheadTable, 29, [:'<', 'RS', 14], [:'>', 'RS', 15], [:'==', 'RS', 16], [:':', 'RS', 35]], [:ReadaheadTable, 30, [:',', 'RS', 36], [:')', 'RS', 79]], [:ReadaheadTable, 31, [:')', 'RS', 37]], [:ReadaheadTable, 32, [:'*', 'RS', 11], [:'/', 'RS', 12], [:'+', 'L', 80], [:'-', 'L', 80], [:'<', 'L', 80], [:'>', 'L', 80], [:'==', 'L', 80], [:'?', 'L', 80], [:')', 'L', 80], [:',', 'L', 80], [:';', 'L', 80], [:':', 'L', 80]], [:ReadaheadTable, 33, [:'*', 'RS', 11], [:'/', 'RS', 12], [:'+', 'L', 81], [:'-', 'L', 81], [:'<', 'L', 81], [:'>', 'L', 81], [:'==', 'L', 81], [:'?', 'L', 81], [:')', 'L', 81], [:',', 'L', 81], [:';', 'L', 81], [:':', 'L', 81]], [:ReadaheadTable, 34, [:'(', 'RS', 6], [walkIdentifier:, 'RSN', 7], [walkInteger:, 'RSN', 68]], [:ReadaheadTable, 35, [:'(', 'RS', 6], [walkIdentifier:, 'RSN', 24], [walkInteger:, 'RSN', 68]], [:ReadaheadTable, 36, [walkIdentifier:, 'RSN', 7], [walkInteger:, 'RSN', 68], [:'(', 'RS', 6]], [:ReadaheadTable, 37, [:'{', 'RS', 41]], [:ReadaheadTable, 38, [:';', 'RS', 42]], [:ReadaheadTable, 39, [:'<', 'RS', 14], [:'>', 'RS', 15], [:'==', 'RS', 16], [:')', 'L', 82], [:',', 'L', 82], [:';', 'L', 82]], [:ReadaheadTable, 40, [:',', 'RS', 36], [:')', 'RS', 79]], [:ReadaheadTable, 41, [for, 'RS', 4], [walkInteger:, 'RSN', 68], [:'(', 'RS', 6], [walkIdentifier:, 'RSN', 7], [if, 'RS', 8], [:'}', 'L', 52], [:'-|', 'L', 52]], [:ReadaheadTable, 42, [walkIdentifier:, 'RSN', 7], [walkInteger:, 'RSN', 68], [:'(', 'RS', 6]], [:ReadaheadTable, 43, [:'}', 'RS', 45]], [:ReadaheadTable, 44, [:')', 'RS', 46]], [:ReadaheadTable, 45, [else, 'RS', 47], [if, 'L', 53], [for, 'L', 53], [walkInteger:, 'L', 53], [walkIdentifier:, 'L', 53], [:'(', 'L', 53], [:'}', 'L', 53], [:'-|', 'L', 53]], [:ReadaheadTable, 46, [:'{', 'RS', 48]], [:ReadaheadTable, 47, [:'{', 'RS', 49]], [:ReadaheadTable, 48, [for, 'RS', 4], [:'(', 'RS', 6], [walkInteger:, 'RSN', 68], [walkIdentifier:, 'RSN', 7], [if, 'RS', 8], [:'}', 'L', 52], [:'-|', 'L', 52]], [:ReadaheadTable, 49, [for, 'RS', 4], [:'(', 'RS', 6], [walkInteger:, 'RSN', 68], [walkIdentifier:, 'RSN', 7], [if, 'RS', 8], [:'}', 'L', 52], [:'-|', 'L', 52]], [:ReadaheadTable, 50, [:'}', 'RS', 83]], [:ReadaheadTable, 51, [:'}', 'RS', 53]], [:ReadbackTable, 52, [[Statement, 2], 'RSN', 54], [[:'|-', 1], 'L', 96], [[:'{', 41], 'L', 96], [[:'{', 48], 'L', 96], [[:'{', 49], 'L', 96]], [:ReadbackTable, 53, [[:'}', 53], 'RS', 84], [[:'}', 45], 'RS', 85]], [:ReadbackTable, 54, [[Statement, 2], 'RSN', 54], [[:'|-', 1], 'L', 96], [[:'{', 41], 'L', 96], [[:'{', 48], 'L', 96], [[:'{', 49], 'L', 96]], [:ReadbackTable, 55, [[:'(', 20], 'RS', 61], [[Expression, 40], 'RSN', 86], [[Expression, 30], 'RSN', 87]], [:ReadbackTable, 56, [[Expression2, 32], 'RSN', 97], [[Expression2, 33], 'RSN', 97], [[Expression2, 3], 'RSN', 97]], [:ReadbackTable, 57, [[Expression2, 32], 'RSN', 98], [[Expression2, 33], 'RSN', 98], [[Expression2, 3], 'RSN', 98]], [:ReadbackTable, 58, [[Expression0, 39], 'RSN', 99], [[Expression0, 5], 'RSN', 99], [[Expression0, 29], 'RSN', 99]], [:ReadbackTable, 59, [[Expression0, 39], 'RSN', 100], [[Expression0, 5], 'RSN', 100], [[Expression0, 29], 'RSN', 100]], [:ReadbackTable, 60, [[Expression0, 39], 'RSN', 101], [[Expression0, 5], 'RSN', 101], [[Expression0, 29], 'RSN', 101]], [:ReadbackTable, 61, [[walkIdentifier:, 24], 'RSN', 103], [[walkIdentifier:, 7], 'RSN', 103]], [:ReadbackTable, 62, [[Expression1, 27], 'RSN', 104], [[Expression1, 28], 'RSN', 104], [[Expression1, 9], 'RSN', 104], [[Expression1, 26], 'RSN', 104]], [:ReadbackTable, 63, [[Expression1, 27], 'RSN', 105], [[Expression1, 28], 'RSN', 105], [[Expression1, 9], 'RSN', 105], [[Expression1, 26], 'RSN', 105]], [:ReadbackTable, 64, [[Expression, 40], 'RSN', 86], [[Expression, 30], 'RSN', 87]], [ShiftbackTable, 65, 1, 91], [ShiftbackTable, 66, 1, 94], [ShiftbackTable, 67, 1, 95], [ShiftbackTable, 68, 1, 93], [ShiftbackTable, 69, 1, 92], [ShiftbackTable, 70, 1, 88], [ShiftbackTable, 71, 2, 90], [ShiftbackTable, 72, 3, 93], [ShiftbackTable, 73, 2, 56], [ShiftbackTable, 74, 2, 57], [ShiftbackTable, 75, 2, 58], [ShiftbackTable, 76, 2, 59], [ShiftbackTable, 77, 2, 60], [ShiftbackTable, 78, 3, 102], [ShiftbackTable, 79, 1, 55], [ShiftbackTable, 80, 2, 62], [ShiftbackTable, 81, 2, 63], [ShiftbackTable, 82, 5, 106], [ShiftbackTable, 83, 11, 108], [ShiftbackTable, 84, 10, 107], [ShiftbackTable, 85, 6, 107], [ShiftbackTable, 86, 1, 64], [ShiftbackTable, 87, 1, 61], [:ReduceTable, 88, Expression0, [[1, 'RSN', 5], [2, 'RSN', 5], [6, 'RSN', 5], [13, 'RSN', 5], [17, 'RSN', 29], [19, 'RSN', 5], [20, 'RSN', 5], [21, 'RSN', 5], [34, 'RSN', 5], [35, 'RSN', 39], [36, 'RSN', 5], [41, 'RSN', 5], [42, 'RSN', 5], [48, 'RSN', 5], [49, 'RSN', 5]]], [:ReduceTable, 89, Statements, [[1, 'RSN', 65], [41, 'RSN', 43], [48, 'RSN', 50], [49, 'RSN', 51]]], [:ReduceTable, 90, Statement, [[1, 'RSN', 2], [2, 'RSN', 2], [41, 'RSN', 2], [48, 'RSN', 2], [49, 'RSN', 2]]], [:ReduceTable, 91, Grammar, [[1, 'RSN', 109]]], [:ReduceTable, 92, Expression2, [[1, 'RSN', 3], [2, 'RSN', 3], [6, 'RSN', 3], [13, 'RSN', 3], [14, 'RSN', 3], [15, 'RSN', 3], [16, 'RSN', 3], [17, 'RSN', 3], [19, 'RSN', 3], [20, 'RSN', 3], [21, 'RSN', 3], [22, 'RSN', 32], [23, 'RSN', 33], [34, 'RSN', 3], [35, 'RSN', 3], [36, 'RSN', 3], [41, 'RSN', 3], [42, 'RSN', 3], [48, 'RSN', 3], [49, 'RSN', 3]]], [:ReduceTable, 93, Expression3, [[1, 'RSN', 69], [2, 'RSN', 69], [6, 'RSN', 69], [11, 'RSN', 73], [12, 'RSN', 74], [13, 'RSN', 69], [14, 'RSN', 69], [15, 'RSN', 69], [16, 'RSN', 69], [17, 'RSN', 69], [19, 'RSN', 69], [20, 'RSN', 69], [21, 'RSN', 69], [22, 'RSN', 69], [23, 'RSN', 69], [34, 'RSN', 69], [35, 'RSN', 69], [36, 'RSN', 69], [41, 'RSN', 69], [42, 'RSN', 69], [48, 'RSN', 69], [49, 'RSN', 69]]], [:ReduceTable, 94, Expression1, [[1, 'RSN', 9], [2, 'RSN', 9], [6, 'RSN', 9], [13, 'RSN', 9], [14, 'RSN', 26], [15, 'RSN', 27], [16, 'RSN', 28], [17, 'RSN', 9], [19, 'RSN', 9], [20, 'RSN', 9], [21, 'RSN', 9], [34, 'RSN', 9], [35, 'RSN', 9], [36, 'RSN', 9], [41, 'RSN', 9], [42, 'RSN', 9], [48, 'RSN', 9], [49, 'RSN', 9]]], [:ReduceTable, 95, Expression, [[1, 'RSN', 10], [2, 'RSN', 10], [6, 'RSN', 18], [13, 'RSN', 25], [19, 'RSN', 78], [20, 'RSN', 30], [21, 'RSN', 31], [34, 'RSN', 38], [36, 'RSN', 40], [41, 'RSN', 10], [42, 'RSN', 44], [48, 'RSN', 10], [49, 'RSN', 10]]], [:SemanticTable, 96, :buildTree, walkList:, 89], [:SemanticTable, 97, :buildTree, walkMultiply:, 92], [:SemanticTable, 98, :buildTree, walkDivide:, 92], [:SemanticTable, 99, :buildTree, walkLess:, 88], [:SemanticTable, 100, :buildTree, walkGreater:, 88], [:SemanticTable, 101, :buildTree, walkEqual:, 88], [:SemanticTable, 102, :buildTree, walkAssign:, 95], [:SemanticTable, 103, :buildTree, walkSend:, 93], [:SemanticTable, 104, :buildTree, walkPlus:, 94], [:SemanticTable, 105, :buildTree, walkMinus:, 94], [:SemanticTable, 106, :buildTree, walkIf:, 95], [:SemanticTable, 107, :buildTree, walkIf:, 90], [:SemanticTable, 108, :buildTree, walkFor:, 90], [:AcceptTable, 109]] //C++: ONE EXPRESSION VERSION ----------------------> //For parsingTables.h struct RawReadaheadTriple {const char *string; const char *attributes; long gotoTable;}; struct RawReadaheadTable {const char *name; long state; long size; RawReadaheadTriple **triples;}; struct RawReadbackPair {const char *symbol; long state;}; struct RawReadbackTriple {RawReadbackPair pair; const char *attributes; long gotoTable;}; struct RawReadbackTable {const char *name; long state; long size; RawReadbackTriple **triples;}; struct RawShiftbackTable {const char *name; long state; long shift; long gotoTable;}; struct RawReduceTriple {long stackTopState; const char *attributes; long gotoTable;}; struct RawReduceTable {const char *name; long state; const char *nonterminal; long size; RawReduceTriple **triples;}; //The following is assumed available from scanner.h //struct RawSemanticTable {const char *name; long state; const char *action; long size; const char **parameters; long gotoTable;}; struct RawAcceptTable {const char *name; long state;}; struct ParserTables { long keywordsSize; const char **keywords; long readaheadTablesSize; RawReadaheadTable **readaheadTables; long readbackTablesSize; RawReadbackTable **readbackTables; long shiftbackTablesSize; RawShiftbackTable **shiftbackTables; long reduceTablesSize; RawReduceTable **reduceTables; long semanticTablesSize; RawSemanticTable **semanticTables; RawAcceptTable *acceptTable; }; ParserTables *parserTables(); void deleteParserTables(ParserTables *parserTable); ParserTables *parserTables () { return new ParserTables { 1, new const char * [1] {"if for else"}, 51, new RawReadaheadTable* [51] { new RawReadaheadTable {"ReadaheadTable", 0, 7, new RawReadaheadTriple* [7] { new RawReadaheadTriple {"for", "RS", 3}, new RawReadaheadTriple {"(", "RS", 5}, new RawReadaheadTriple {"walkInteger:", "RSN", 67}, new RawReadaheadTriple {"walkIdentifier:", "RSN", 6}, new RawReadaheadTriple {"if", "RS", 7}, new RawReadaheadTriple {"}", "L", 51}, new RawReadaheadTriple {"-|", "L", 51}}}, new RawReadaheadTable {"ReadaheadTable", 1, 7, new RawReadaheadTriple* [7] { new RawReadaheadTriple {"if", "RS", 7}, new RawReadaheadTriple {"walkIdentifier:", "RSN", 6}, new RawReadaheadTriple {"for", "RS", 3}, new RawReadaheadTriple {"walkInteger:", "RSN", 67}, new RawReadaheadTriple {"(", "RS", 5}, new RawReadaheadTriple {"}", "L", 51}, new RawReadaheadTriple {"-|", "L", 51}}}, new RawReadaheadTable {"ReadaheadTable", 2, 12, new RawReadaheadTriple* [12] { new RawReadaheadTriple {"*", "RS", 10}, new RawReadaheadTriple {"/", "RS", 11}, new RawReadaheadTriple {"+", "L", 65}, new RawReadaheadTriple {"-", "L", 65}, new RawReadaheadTriple {"<", "L", 65}, new RawReadaheadTriple {">", "L", 65}, new RawReadaheadTriple {"==", "L", 65}, new RawReadaheadTriple {"?", "L", 65}, new RawReadaheadTriple {")", "L", 65}, new RawReadaheadTriple {",", "L", 65}, new RawReadaheadTriple {";", "L", 65}, new RawReadaheadTriple {":", "L", 65}}}, new RawReadaheadTable {"ReadaheadTable", 3, 1, new RawReadaheadTriple* [1] { new RawReadaheadTriple {"(", "RS", 12}}}, new RawReadaheadTable {"ReadaheadTable", 4, 7, new RawReadaheadTriple* [7] { new RawReadaheadTriple {"<", "RS", 13}, new RawReadaheadTriple {">", "RS", 14}, new RawReadaheadTriple {"==", "RS", 15}, new RawReadaheadTriple {"?", "RS", 16}, new RawReadaheadTriple {")", "L", 66}, new RawReadaheadTriple {",", "L", 66}, new RawReadaheadTriple {";", "L", 66}}}, new RawReadaheadTable {"ReadaheadTable", 5, 3, new RawReadaheadTriple* [3] { new RawReadaheadTriple {"walkIdentifier:", "RSN", 6}, new RawReadaheadTriple {"walkInteger:", "RSN", 67}, new RawReadaheadTriple {"(", "RS", 5}}}, new RawReadaheadTable {"ReadaheadTable", 6, 14, new RawReadaheadTriple* [14] { new RawReadaheadTriple {"=", "RS", 18}, new RawReadaheadTriple {"(", "RS", 19}, new RawReadaheadTriple {"*", "L", 67}, new RawReadaheadTriple {"/", "L", 67}, new RawReadaheadTriple {"+", "L", 67}, new RawReadaheadTriple {"-", "L", 67}, new RawReadaheadTriple {"<", "L", 67}, new RawReadaheadTriple {">", "L", 67}, new RawReadaheadTriple {"==", "L", 67}, new RawReadaheadTriple {"?", "L", 67}, new RawReadaheadTriple {")", "L", 67}, new RawReadaheadTriple {",", "L", 67}, new RawReadaheadTriple {";", "L", 67}, new RawReadaheadTriple {":", "L", 67}}}, new RawReadaheadTable {"ReadaheadTable", 7, 1, new RawReadaheadTriple* [1] { new RawReadaheadTriple {"(", "RS", 20}}}, new RawReadaheadTable {"ReadaheadTable", 8, 10, new RawReadaheadTriple* [10] { new RawReadaheadTriple {"+", "RS", 21}, new RawReadaheadTriple {"-", "RS", 22}, new RawReadaheadTriple {"<", "L", 69}, new RawReadaheadTriple {">", "L", 69}, new RawReadaheadTriple {"==", "L", 69}, new RawReadaheadTriple {"?", "L", 69}, new RawReadaheadTriple {")", "L", 69}, new RawReadaheadTriple {",", "L", 69}, new RawReadaheadTriple {";", "L", 69}, new RawReadaheadTriple {":", "L", 69}}}, new RawReadaheadTable {"ReadaheadTable", 9, 1, new RawReadaheadTriple* [1] { new RawReadaheadTriple {";", "RS", 70}}}, new RawReadaheadTable {"ReadaheadTable", 10, 3, new RawReadaheadTriple* [3] { new RawReadaheadTriple {"(", "RS", 5}, new RawReadaheadTriple {"walkInteger:", "RSN", 67}, new RawReadaheadTriple {"walkIdentifier:", "RSN", 23}}}, new RawReadaheadTable {"ReadaheadTable", 11, 3, new RawReadaheadTriple* [3] { new RawReadaheadTriple {"(", "RS", 5}, new RawReadaheadTriple {"walkInteger:", "RSN", 67}, new RawReadaheadTriple {"walkIdentifier:", "RSN", 23}}}, new RawReadaheadTable {"ReadaheadTable", 12, 3, new RawReadaheadTriple* [3] { new RawReadaheadTriple {"(", "RS", 5}, new RawReadaheadTriple {"walkIdentifier:", "RSN", 6}, new RawReadaheadTriple {"walkInteger:", "RSN", 67}}}, new RawReadaheadTable {"ReadaheadTable", 13, 3, new RawReadaheadTriple* [3] { new RawReadaheadTriple {"walkIdentifier:", "RSN", 23}, new RawReadaheadTriple {"walkInteger:", "RSN", 67}, new RawReadaheadTriple {"(", "RS", 5}}}, new RawReadaheadTable {"ReadaheadTable", 14, 3, new RawReadaheadTriple* [3] { new RawReadaheadTriple {"walkIdentifier:", "RSN", 23}, new RawReadaheadTriple {"walkInteger:", "RSN", 67}, new RawReadaheadTriple {"(", "RS", 5}}}, new RawReadaheadTable {"ReadaheadTable", 15, 3, new RawReadaheadTriple* [3] { new RawReadaheadTriple {"walkIdentifier:", "RSN", 23}, new RawReadaheadTriple {"walkInteger:", "RSN", 67}, new RawReadaheadTriple {"(", "RS", 5}}}, new RawReadaheadTable {"ReadaheadTable", 16, 3, new RawReadaheadTriple* [3] { new RawReadaheadTriple {"walkIdentifier:", "RSN", 23}, new RawReadaheadTriple {"walkInteger:", "RSN", 67}, new RawReadaheadTriple {"(", "RS", 5}}}, new RawReadaheadTable {"ReadaheadTable", 17, 1, new RawReadaheadTriple* [1] { new RawReadaheadTriple {")", "RS", 71}}}, new RawReadaheadTable {"ReadaheadTable", 18, 3, new RawReadaheadTriple* [3] { new RawReadaheadTriple {"walkIdentifier:", "RSN", 6}, new RawReadaheadTriple {"walkInteger:", "RSN", 67}, new RawReadaheadTriple {"(", "RS", 5}}}, new RawReadaheadTable {"ReadaheadTable", 19, 4, new RawReadaheadTriple* [4] { new RawReadaheadTriple {")", "RS", 78}, new RawReadaheadTriple {"(", "RS", 5}, new RawReadaheadTriple {"walkIdentifier:", "RSN", 6}, new RawReadaheadTriple {"walkInteger:", "RSN", 67}}}, new RawReadaheadTable {"ReadaheadTable", 20, 3, new RawReadaheadTriple* [3] { new RawReadaheadTriple {"(", "RS", 5}, new RawReadaheadTriple {"walkIdentifier:", "RSN", 6}, new RawReadaheadTriple {"walkInteger:", "RSN", 67}}}, new RawReadaheadTable {"ReadaheadTable", 21, 3, new RawReadaheadTriple* [3] { new RawReadaheadTriple {"walkIdentifier:", "RSN", 23}, new RawReadaheadTriple {"(", "RS", 5}, new RawReadaheadTriple {"walkInteger:", "RSN", 67}}}, new RawReadaheadTable {"ReadaheadTable", 22, 3, new RawReadaheadTriple* [3] { new RawReadaheadTriple {"walkIdentifier:", "RSN", 23}, new RawReadaheadTriple {"(", "RS", 5}, new RawReadaheadTriple {"walkInteger:", "RSN", 67}}}, new RawReadaheadTable {"ReadaheadTable", 23, 13, new RawReadaheadTriple* [13] { new RawReadaheadTriple {"(", "RS", 19}, new RawReadaheadTriple {"*", "L", 67}, new RawReadaheadTriple {"/", "L", 67}, new RawReadaheadTriple {"+", "L", 67}, new RawReadaheadTriple {"-", "L", 67}, new RawReadaheadTriple {"<", "L", 67}, new RawReadaheadTriple {">", "L", 67}, new RawReadaheadTriple {"==", "L", 67}, new RawReadaheadTriple {"?", "L", 67}, new RawReadaheadTriple {")", "L", 67}, new RawReadaheadTriple {",", "L", 67}, new RawReadaheadTriple {";", "L", 67}, new RawReadaheadTriple {":", "L", 67}}}, new RawReadaheadTable {"ReadaheadTable", 24, 1, new RawReadaheadTriple* [1] { new RawReadaheadTriple {";", "RS", 33}}}, new RawReadaheadTable {"ReadaheadTable", 25, 10, new RawReadaheadTriple* [10] { new RawReadaheadTriple {"+", "RS", 21}, new RawReadaheadTriple {"-", "RS", 22}, new RawReadaheadTriple {"<", "L", 74}, new RawReadaheadTriple {">", "L", 74}, new RawReadaheadTriple {"==", "L", 74}, new RawReadaheadTriple {"?", "L", 74}, new RawReadaheadTriple {")", "L", 74}, new RawReadaheadTriple {",", "L", 74}, new RawReadaheadTriple {";", "L", 74}, new RawReadaheadTriple {":", "L", 74}}}, new RawReadaheadTable {"ReadaheadTable", 26, 10, new RawReadaheadTriple* [10] { new RawReadaheadTriple {"+", "RS", 21}, new RawReadaheadTriple {"-", "RS", 22}, new RawReadaheadTriple {"<", "L", 75}, new RawReadaheadTriple {">", "L", 75}, new RawReadaheadTriple {"==", "L", 75}, new RawReadaheadTriple {"?", "L", 75}, new RawReadaheadTriple {")", "L", 75}, new RawReadaheadTriple {",", "L", 75}, new RawReadaheadTriple {";", "L", 75}, new RawReadaheadTriple {":", "L", 75}}}, new RawReadaheadTable {"ReadaheadTable", 27, 10, new RawReadaheadTriple* [10] { new RawReadaheadTriple {"+", "RS", 21}, new RawReadaheadTriple {"-", "RS", 22}, new RawReadaheadTriple {"<", "L", 76}, new RawReadaheadTriple {">", "L", 76}, new RawReadaheadTriple {"==", "L", 76}, new RawReadaheadTriple {"?", "L", 76}, new RawReadaheadTriple {")", "L", 76}, new RawReadaheadTriple {",", "L", 76}, new RawReadaheadTriple {";", "L", 76}, new RawReadaheadTriple {":", "L", 76}}}, new RawReadaheadTable {"ReadaheadTable", 28, 4, new RawReadaheadTriple* [4] { new RawReadaheadTriple {"<", "RS", 13}, new RawReadaheadTriple {">", "RS", 14}, new RawReadaheadTriple {"==", "RS", 15}, new RawReadaheadTriple {":", "RS", 34}}}, new RawReadaheadTable {"ReadaheadTable", 29, 2, new RawReadaheadTriple* [2] { new RawReadaheadTriple {",", "RS", 35}, new RawReadaheadTriple {")", "RS", 78}}}, new RawReadaheadTable {"ReadaheadTable", 30, 1, new RawReadaheadTriple* [1] { new RawReadaheadTriple {")", "RS", 36}}}, new RawReadaheadTable {"ReadaheadTable", 31, 12, new RawReadaheadTriple* [12] { new RawReadaheadTriple {"*", "RS", 10}, new RawReadaheadTriple {"/", "RS", 11}, new RawReadaheadTriple {"+", "L", 79}, new RawReadaheadTriple {"-", "L", 79}, new RawReadaheadTriple {"<", "L", 79}, new RawReadaheadTriple {">", "L", 79}, new RawReadaheadTriple {"==", "L", 79}, new RawReadaheadTriple {"?", "L", 79}, new RawReadaheadTriple {")", "L", 79}, new RawReadaheadTriple {",", "L", 79}, new RawReadaheadTriple {";", "L", 79}, new RawReadaheadTriple {":", "L", 79}}}, new RawReadaheadTable {"ReadaheadTable", 32, 12, new RawReadaheadTriple* [12] { new RawReadaheadTriple {"*", "RS", 10}, new RawReadaheadTriple {"/", "RS", 11}, new RawReadaheadTriple {"+", "L", 80}, new RawReadaheadTriple {"-", "L", 80}, new RawReadaheadTriple {"<", "L", 80}, new RawReadaheadTriple {">", "L", 80}, new RawReadaheadTriple {"==", "L", 80}, new RawReadaheadTriple {"?", "L", 80}, new RawReadaheadTriple {")", "L", 80}, new RawReadaheadTriple {",", "L", 80}, new RawReadaheadTriple {";", "L", 80}, new RawReadaheadTriple {":", "L", 80}}}, new RawReadaheadTable {"ReadaheadTable", 33, 3, new RawReadaheadTriple* [3] { new RawReadaheadTriple {"(", "RS", 5}, new RawReadaheadTriple {"walkIdentifier:", "RSN", 6}, new RawReadaheadTriple {"walkInteger:", "RSN", 67}}}, new RawReadaheadTable {"ReadaheadTable", 34, 3, new RawReadaheadTriple* [3] { new RawReadaheadTriple {"(", "RS", 5}, new RawReadaheadTriple {"walkIdentifier:", "RSN", 23}, new RawReadaheadTriple {"walkInteger:", "RSN", 67}}}, new RawReadaheadTable {"ReadaheadTable", 35, 3, new RawReadaheadTriple* [3] { new RawReadaheadTriple {"walkIdentifier:", "RSN", 6}, new RawReadaheadTriple {"walkInteger:", "RSN", 67}, new RawReadaheadTriple {"(", "RS", 5}}}, new RawReadaheadTable {"ReadaheadTable", 36, 1, new RawReadaheadTriple* [1] { new RawReadaheadTriple {"{", "RS", 40}}}, new RawReadaheadTable {"ReadaheadTable", 37, 1, new RawReadaheadTriple* [1] { new RawReadaheadTriple {";", "RS", 41}}}, new RawReadaheadTable {"ReadaheadTable", 38, 6, new RawReadaheadTriple* [6] { new RawReadaheadTriple {"<", "RS", 13}, new RawReadaheadTriple {">", "RS", 14}, new RawReadaheadTriple {"==", "RS", 15}, new RawReadaheadTriple {")", "L", 81}, new RawReadaheadTriple {",", "L", 81}, new RawReadaheadTriple {";", "L", 81}}}, new RawReadaheadTable {"ReadaheadTable", 39, 2, new RawReadaheadTriple* [2] { new RawReadaheadTriple {",", "RS", 35}, new RawReadaheadTriple {")", "RS", 78}}}, new RawReadaheadTable {"ReadaheadTable", 40, 7, new RawReadaheadTriple* [7] { new RawReadaheadTriple {"for", "RS", 3}, new RawReadaheadTriple {"walkInteger:", "RSN", 67}, new RawReadaheadTriple {"(", "RS", 5}, new RawReadaheadTriple {"walkIdentifier:", "RSN", 6}, new RawReadaheadTriple {"if", "RS", 7}, new RawReadaheadTriple {"}", "L", 51}, new RawReadaheadTriple {"-|", "L", 51}}}, new RawReadaheadTable {"ReadaheadTable", 41, 3, new RawReadaheadTriple* [3] { new RawReadaheadTriple {"walkIdentifier:", "RSN", 6}, new RawReadaheadTriple {"walkInteger:", "RSN", 67}, new RawReadaheadTriple {"(", "RS", 5}}}, new RawReadaheadTable {"ReadaheadTable", 42, 1, new RawReadaheadTriple* [1] { new RawReadaheadTriple {"}", "RS", 44}}}, new RawReadaheadTable {"ReadaheadTable", 43, 1, new RawReadaheadTriple* [1] { new RawReadaheadTriple {")", "RS", 45}}}, new RawReadaheadTable {"ReadaheadTable", 44, 8, new RawReadaheadTriple* [8] { new RawReadaheadTriple {"else", "RS", 46}, new RawReadaheadTriple {"if", "L", 52}, new RawReadaheadTriple {"for", "L", 52}, new RawReadaheadTriple {"walkInteger:", "L", 52}, new RawReadaheadTriple {"walkIdentifier:", "L", 52}, new RawReadaheadTriple {"(", "L", 52}, new RawReadaheadTriple {"}", "L", 52}, new RawReadaheadTriple {"-|", "L", 52}}}, new RawReadaheadTable {"ReadaheadTable", 45, 1, new RawReadaheadTriple* [1] { new RawReadaheadTriple {"{", "RS", 47}}}, new RawReadaheadTable {"ReadaheadTable", 46, 1, new RawReadaheadTriple* [1] { new RawReadaheadTriple {"{", "RS", 48}}}, new RawReadaheadTable {"ReadaheadTable", 47, 7, new RawReadaheadTriple* [7] { new RawReadaheadTriple {"for", "RS", 3}, new RawReadaheadTriple {"(", "RS", 5}, new RawReadaheadTriple {"walkInteger:", "RSN", 67}, new RawReadaheadTriple {"walkIdentifier:", "RSN", 6}, new RawReadaheadTriple {"if", "RS", 7}, new RawReadaheadTriple {"}", "L", 51}, new RawReadaheadTriple {"-|", "L", 51}}}, new RawReadaheadTable {"ReadaheadTable", 48, 7, new RawReadaheadTriple* [7] { new RawReadaheadTriple {"for", "RS", 3}, new RawReadaheadTriple {"(", "RS", 5}, new RawReadaheadTriple {"walkInteger:", "RSN", 67}, new RawReadaheadTriple {"walkIdentifier:", "RSN", 6}, new RawReadaheadTriple {"if", "RS", 7}, new RawReadaheadTriple {"}", "L", 51}, new RawReadaheadTriple {"-|", "L", 51}}}, new RawReadaheadTable {"ReadaheadTable", 49, 1, new RawReadaheadTriple* [1] { new RawReadaheadTriple {"}", "RS", 82}}}, new RawReadaheadTable {"ReadaheadTable", 50, 1, new RawReadaheadTriple* [1] { new RawReadaheadTriple {"}", "RS", 52}}}}, 13, new RawReadbackTable* [13] { new RawReadbackTable {"ReadbackTable", 51, 5, new RawReadbackTriple* [5] { new RawReadbackTriple {{"Statement", 1}, "RSN", 53}, new RawReadbackTriple {{"|-", 0}, "L", 95}, new RawReadbackTriple {{"{", 40}, "L", 95}, new RawReadbackTriple {{"{", 47}, "L", 95}, new RawReadbackTriple {{"{", 48}, "L", 95}}}, new RawReadbackTable {"ReadbackTable", 52, 2, new RawReadbackTriple* [2] { new RawReadbackTriple {{"}", 52}, "RS", 83}, new RawReadbackTriple {{"}", 44}, "RS", 84}}}, new RawReadbackTable {"ReadbackTable", 53, 5, new RawReadbackTriple* [5] { new RawReadbackTriple {{"Statement", 1}, "RSN", 53}, new RawReadbackTriple {{"|-", 0}, "L", 95}, new RawReadbackTriple {{"{", 40}, "L", 95}, new RawReadbackTriple {{"{", 47}, "L", 95}, new RawReadbackTriple {{"{", 48}, "L", 95}}}, new RawReadbackTable {"ReadbackTable", 54, 3, new RawReadbackTriple* [3] { new RawReadbackTriple {{"(", 19}, "RS", 60}, new RawReadbackTriple {{"Expression", 39}, "RSN", 85}, new RawReadbackTriple {{"Expression", 29}, "RSN", 86}}}, new RawReadbackTable {"ReadbackTable", 55, 3, new RawReadbackTriple* [3] { new RawReadbackTriple {{"Expression2", 31}, "RSN", 96}, new RawReadbackTriple {{"Expression2", 32}, "RSN", 96}, new RawReadbackTriple {{"Expression2", 2}, "RSN", 96}}}, new RawReadbackTable {"ReadbackTable", 56, 3, new RawReadbackTriple* [3] { new RawReadbackTriple {{"Expression2", 31}, "RSN", 97}, new RawReadbackTriple {{"Expression2", 32}, "RSN", 97}, new RawReadbackTriple {{"Expression2", 2}, "RSN", 97}}}, new RawReadbackTable {"ReadbackTable", 57, 3, new RawReadbackTriple* [3] { new RawReadbackTriple {{"Expression0", 38}, "RSN", 98}, new RawReadbackTriple {{"Expression0", 4}, "RSN", 98}, new RawReadbackTriple {{"Expression0", 28}, "RSN", 98}}}, new RawReadbackTable {"ReadbackTable", 58, 3, new RawReadbackTriple* [3] { new RawReadbackTriple {{"Expression0", 38}, "RSN", 99}, new RawReadbackTriple {{"Expression0", 4}, "RSN", 99}, new RawReadbackTriple {{"Expression0", 28}, "RSN", 99}}}, new RawReadbackTable {"ReadbackTable", 59, 3, new RawReadbackTriple* [3] { new RawReadbackTriple {{"Expression0", 38}, "RSN", 100}, new RawReadbackTriple {{"Expression0", 4}, "RSN", 100}, new RawReadbackTriple {{"Expression0", 28}, "RSN", 100}}}, new RawReadbackTable {"ReadbackTable", 60, 2, new RawReadbackTriple* [2] { new RawReadbackTriple {{"walkIdentifier:", 23}, "RSN", 102}, new RawReadbackTriple {{"walkIdentifier:", 6}, "RSN", 102}}}, new RawReadbackTable {"ReadbackTable", 61, 4, new RawReadbackTriple* [4] { new RawReadbackTriple {{"Expression1", 26}, "RSN", 103}, new RawReadbackTriple {{"Expression1", 27}, "RSN", 103}, new RawReadbackTriple {{"Expression1", 8}, "RSN", 103}, new RawReadbackTriple {{"Expression1", 25}, "RSN", 103}}}, new RawReadbackTable {"ReadbackTable", 62, 4, new RawReadbackTriple* [4] { new RawReadbackTriple {{"Expression1", 26}, "RSN", 104}, new RawReadbackTriple {{"Expression1", 27}, "RSN", 104}, new RawReadbackTriple {{"Expression1", 8}, "RSN", 104}, new RawReadbackTriple {{"Expression1", 25}, "RSN", 104}}}, new RawReadbackTable {"ReadbackTable", 63, 2, new RawReadbackTriple* [2] { new RawReadbackTriple {{"Expression", 39}, "RSN", 85}, new RawReadbackTriple {{"Expression", 29}, "RSN", 86}}}}, 23, new RawShiftbackTable* [23] { new RawShiftbackTable {"ShiftbackTable", 64, 1, 90}, new RawShiftbackTable {"ShiftbackTable", 65, 1, 93}, new RawShiftbackTable {"ShiftbackTable", 66, 1, 94}, new RawShiftbackTable {"ShiftbackTable", 67, 1, 92}, new RawShiftbackTable {"ShiftbackTable", 68, 1, 91}, new RawShiftbackTable {"ShiftbackTable", 69, 1, 87}, new RawShiftbackTable {"ShiftbackTable", 70, 2, 89}, new RawShiftbackTable {"ShiftbackTable", 71, 3, 92}, new RawShiftbackTable {"ShiftbackTable", 72, 2, 55}, new RawShiftbackTable {"ShiftbackTable", 73, 2, 56}, new RawShiftbackTable {"ShiftbackTable", 74, 2, 57}, new RawShiftbackTable {"ShiftbackTable", 75, 2, 58}, new RawShiftbackTable {"ShiftbackTable", 76, 2, 59}, new RawShiftbackTable {"ShiftbackTable", 77, 3, 101}, new RawShiftbackTable {"ShiftbackTable", 78, 1, 54}, new RawShiftbackTable {"ShiftbackTable", 79, 2, 61}, new RawShiftbackTable {"ShiftbackTable", 80, 2, 62}, new RawShiftbackTable {"ShiftbackTable", 81, 5, 105}, new RawShiftbackTable {"ShiftbackTable", 82, 11, 107}, new RawShiftbackTable {"ShiftbackTable", 83, 10, 106}, new RawShiftbackTable {"ShiftbackTable", 84, 6, 106}, new RawShiftbackTable {"ShiftbackTable", 85, 1, 63}, new RawShiftbackTable {"ShiftbackTable", 86, 1, 60}}, 8, new RawReduceTable* [8] { new RawReduceTable {"ReduceTable", 87, "Expression0", 15, new RawReduceTriple* [15] { new RawReduceTriple {0, "RSN", 4}, new RawReduceTriple {1, "RSN", 4}, new RawReduceTriple {5, "RSN", 4}, new RawReduceTriple {12, "RSN", 4}, new RawReduceTriple {16, "RSN", 28}, new RawReduceTriple {18, "RSN", 4}, new RawReduceTriple {19, "RSN", 4}, new RawReduceTriple {20, "RSN", 4}, new RawReduceTriple {33, "RSN", 4}, new RawReduceTriple {34, "RSN", 38}, new RawReduceTriple {35, "RSN", 4}, new RawReduceTriple {40, "RSN", 4}, new RawReduceTriple {41, "RSN", 4}, new RawReduceTriple {47, "RSN", 4}, new RawReduceTriple {48, "RSN", 4}}}, new RawReduceTable {"ReduceTable", 88, "Statements", 4, new RawReduceTriple* [4] { new RawReduceTriple {0, "RSN", 64}, new RawReduceTriple {40, "RSN", 42}, new RawReduceTriple {47, "RSN", 49}, new RawReduceTriple {48, "RSN", 50}}}, new RawReduceTable {"ReduceTable", 89, "Statement", 5, new RawReduceTriple* [5] { new RawReduceTriple {0, "RSN", 1}, new RawReduceTriple {1, "RSN", 1}, new RawReduceTriple {40, "RSN", 1}, new RawReduceTriple {47, "RSN", 1}, new RawReduceTriple {48, "RSN", 1}}}, new RawReduceTable {"ReduceTable", 90, "Grammar", 1, new RawReduceTriple* [1] { new RawReduceTriple {0, "RSN", 108}}}, new RawReduceTable {"ReduceTable", 91, "Expression2", 20, new RawReduceTriple* [20] { new RawReduceTriple {0, "RSN", 2}, new RawReduceTriple {1, "RSN", 2}, new RawReduceTriple {5, "RSN", 2}, new RawReduceTriple {12, "RSN", 2}, new RawReduceTriple {13, "RSN", 2}, new RawReduceTriple {14, "RSN", 2}, new RawReduceTriple {15, "RSN", 2}, new RawReduceTriple {16, "RSN", 2}, new RawReduceTriple {18, "RSN", 2}, new RawReduceTriple {19, "RSN", 2}, new RawReduceTriple {20, "RSN", 2}, new RawReduceTriple {21, "RSN", 31}, new RawReduceTriple {22, "RSN", 32}, new RawReduceTriple {33, "RSN", 2}, new RawReduceTriple {34, "RSN", 2}, new RawReduceTriple {35, "RSN", 2}, new RawReduceTriple {40, "RSN", 2}, new RawReduceTriple {41, "RSN", 2}, new RawReduceTriple {47, "RSN", 2}, new RawReduceTriple {48, "RSN", 2}}}, new RawReduceTable {"ReduceTable", 92, "Expression3", 22, new RawReduceTriple* [22] { new RawReduceTriple {0, "RSN", 68}, new RawReduceTriple {1, "RSN", 68}, new RawReduceTriple {5, "RSN", 68}, new RawReduceTriple {10, "RSN", 72}, new RawReduceTriple {11, "RSN", 73}, new RawReduceTriple {12, "RSN", 68}, new RawReduceTriple {13, "RSN", 68}, new RawReduceTriple {14, "RSN", 68}, new RawReduceTriple {15, "RSN", 68}, new RawReduceTriple {16, "RSN", 68}, new RawReduceTriple {18, "RSN", 68}, new RawReduceTriple {19, "RSN", 68}, new RawReduceTriple {20, "RSN", 68}, new RawReduceTriple {21, "RSN", 68}, new RawReduceTriple {22, "RSN", 68}, new RawReduceTriple {33, "RSN", 68}, new RawReduceTriple {34, "RSN", 68}, new RawReduceTriple {35, "RSN", 68}, new RawReduceTriple {40, "RSN", 68}, new RawReduceTriple {41, "RSN", 68}, new RawReduceTriple {47, "RSN", 68}, new RawReduceTriple {48, "RSN", 68}}}, new RawReduceTable {"ReduceTable", 93, "Expression1", 18, new RawReduceTriple* [18] { new RawReduceTriple {0, "RSN", 8}, new RawReduceTriple {1, "RSN", 8}, new RawReduceTriple {5, "RSN", 8}, new RawReduceTriple {12, "RSN", 8}, new RawReduceTriple {13, "RSN", 25}, new RawReduceTriple {14, "RSN", 26}, new RawReduceTriple {15, "RSN", 27}, new RawReduceTriple {16, "RSN", 8}, new RawReduceTriple {18, "RSN", 8}, new RawReduceTriple {19, "RSN", 8}, new RawReduceTriple {20, "RSN", 8}, new RawReduceTriple {33, "RSN", 8}, new RawReduceTriple {34, "RSN", 8}, new RawReduceTriple {35, "RSN", 8}, new RawReduceTriple {40, "RSN", 8}, new RawReduceTriple {41, "RSN", 8}, new RawReduceTriple {47, "RSN", 8}, new RawReduceTriple {48, "RSN", 8}}}, new RawReduceTable {"ReduceTable", 94, "Expression", 13, new RawReduceTriple* [13] { new RawReduceTriple {0, "RSN", 9}, new RawReduceTriple {1, "RSN", 9}, new RawReduceTriple {5, "RSN", 17}, new RawReduceTriple {12, "RSN", 24}, new RawReduceTriple {18, "RSN", 77}, new RawReduceTriple {19, "RSN", 29}, new RawReduceTriple {20, "RSN", 30}, new RawReduceTriple {33, "RSN", 37}, new RawReduceTriple {35, "RSN", 39}, new RawReduceTriple {40, "RSN", 9}, new RawReduceTriple {41, "RSN", 43}, new RawReduceTriple {47, "RSN", 9}, new RawReduceTriple {48, "RSN", 9}}}}, 13, new RawSemanticTable* [13] { new RawSemanticTable {"SemanticTable", 95, "buildTree", 1, new const char * [1] {"walkList"}, 88}, new RawSemanticTable {"SemanticTable", 96, "buildTree", 1, new const char * [1] {"walkMultiply"}, 91}, new RawSemanticTable {"SemanticTable", 97, "buildTree", 1, new const char * [1] {"walkDivide"}, 91}, new RawSemanticTable {"SemanticTable", 98, "buildTree", 1, new const char * [1] {"walkLess"}, 87}, new RawSemanticTable {"SemanticTable", 99, "buildTree", 1, new const char * [1] {"walkGreater"}, 87}, new RawSemanticTable {"SemanticTable", 100, "buildTree", 1, new const char * [1] {"walkEqual"}, 87}, new RawSemanticTable {"SemanticTable", 101, "buildTree", 1, new const char * [1] {"walkAssign"}, 94}, new RawSemanticTable {"SemanticTable", 102, "buildTree", 1, new const char * [1] {"walkSend"}, 92}, new RawSemanticTable {"SemanticTable", 103, "buildTree", 1, new const char * [1] {"walkPlus"}, 93}, new RawSemanticTable {"SemanticTable", 104, "buildTree", 1, new const char * [1] {"walkMinus"}, 93}, new RawSemanticTable {"SemanticTable", 105, "buildTree", 1, new const char * [1] {"walkIf"}, 94}, new RawSemanticTable {"SemanticTable", 106, "buildTree", 1, new const char * [1] {"walkIf"}, 89}, new RawSemanticTable {"SemanticTable", 107, "buildTree", 1, new const char * [1] {"walkFor"}, 89}}, new RawAcceptTable {"AcceptTable", 108}}; }; void deleteParserTables (ParserTables *parserTable) { delete [] parserTable->keywords; for (long index0 = 0; index0 < parserTable->readaheadTablesSize; index0++) { for (long index1 = 0; index1< parserTable->readaheadTables [index0]->size; index1++) { delete parserTable->readaheadTables [index0]->triples [index1]; } delete [] parserTable->readaheadTables [index0]->triples; delete parserTable->readaheadTables [index0]; } delete [] parserTable->readaheadTables; for (long index0 = 0; index0 < parserTable->readbackTablesSize; index0++) { for (long index1 = 0; index1< parserTable->readbackTables [index0]->size; index1++) { delete parserTable->readbackTables [index0]->triples [index1]; } delete [] parserTable->readbackTables [index0]->triples; delete parserTable->readbackTables [index0]; } delete [] parserTable->readbackTables; for (long index0 = 0; index0 < parserTable->shiftbackTablesSize; index0++) { delete parserTable->shiftbackTables [index0]; } delete [] parserTable->shiftbackTables; for (long index0 = 0; index0 < parserTable->reduceTablesSize; index0++) { for (long index1 = 0; index1< parserTable->reduceTables [index0]->size; index1++) { delete parserTable->reduceTables [index0]->triples [index1]; } delete [] parserTable->reduceTables [index0]->triples; delete parserTable->reduceTables [index0]; } delete [] parserTable->reduceTables; for (long index = 0; index < parserTable->semanticTablesSize; index++) { delete [] parserTable->semanticTables [index]->parameters; delete parserTable->semanticTables [index]; } delete [] parserTable->semanticTables; delete parserTable->acceptTable; delete parserTable; } //C++: MULTI-STATEMENT VERSION ----------------------> //NOTE: The following declarations should probably be moved manually to a more global location for access elsewhere... struct RawReadaheadTriple {const char *string; const char *attributes; long gotoTable;}; struct RawReadaheadTable {const char *name; long state; long size; RawReadaheadTriple *triples;}; struct RawReadbackPair {const char *symbol; long state;}; struct RawReadbackTriple {RawReadbackPair pair; const char *attributes; long gotoTable;}; struct RawReadbackTable {const char *name; long state; long size; RawReadbackTriple *triples;}; struct RawShiftbackTable {const char *name; long state; long shift; long gotoTable;}; struct RawReduceTriple {long stackTopState; const char *attributes; long gotoTable;}; struct RawReduceTable {const char *name; long state; const char *nonterminal; long size; RawReduceTriple *triples;}; struct RawSemanticTable {const char *name; long state; const char *action; long size; const char **parameters; long gotoTable;}; struct RawAcceptTable {const char *name; long state;}; struct ParserTables { long keywordsSize; const char **keywords; long readaheadTablesSize; RawReadaheadTable *readaheadTables; long readbackTablesSize; RawReadbackTable *readbackTables; long shiftbackTablesSize; RawShiftbackTable *shiftbackTables; long reduceTablesSize; RawReduceTable *reduceTables; long semanticTablesSize; RawSemanticTable *semanticTables; RawAcceptTable *acceptTable; }; //For parsingTables.cpp ParserTables *parserTables () { const char **keywords = new const char * [1] {"if for else"}; //Define VARIABLES to refer to readahead table TRIPLEs. //FORMAT: RawReadaheadTriple {const char *string; const char *attributes; long gotoTableNumber;} //Note: string == NULL is equivalent to "{256}" (end of file). RawReadaheadTriple *ra0 = new RawReadaheadTriple [7] {{"for", "RS", 3}, {"(", "RS", 5}, {"walkInteger:", "RSN", 67}, {"walkIdentifier:", "RSN", 6}, {"if", "RS", 7}, {"}", "L", 51}, {"-|", "L", 51}}; RawReadaheadTriple *ra1 = new RawReadaheadTriple [7] {{"if", "RS", 7}, {"walkIdentifier:", "RSN", 6}, {"for", "RS", 3}, {"walkInteger:", "RSN", 67}, {"(", "RS", 5}, {"}", "L", 51}, {"-|", "L", 51}}; RawReadaheadTriple *ra2 = new RawReadaheadTriple [12] {{"*", "RS", 10}, {"/", "RS", 11}, {"+", "L", 65}, {"-", "L", 65}, {"<", "L", 65}, {">", "L", 65}, {"==", "L", 65}, {"?", "L", 65}, {")", "L", 65}, {",", "L", 65}, {";", "L", 65}, {":", "L", 65}}; RawReadaheadTriple *ra3 = new RawReadaheadTriple [1] {{"(", "RS", 12}}; RawReadaheadTriple *ra4 = new RawReadaheadTriple [7] {{"<", "RS", 13}, {">", "RS", 14}, {"==", "RS", 15}, {"?", "RS", 16}, {")", "L", 66}, {",", "L", 66}, {";", "L", 66}}; RawReadaheadTriple *ra5 = new RawReadaheadTriple [3] {{"walkIdentifier:", "RSN", 6}, {"walkInteger:", "RSN", 67}, {"(", "RS", 5}}; RawReadaheadTriple *ra6 = new RawReadaheadTriple [14] {{"=", "RS", 18}, {"(", "RS", 19}, {"*", "L", 67}, {"/", "L", 67}, {"+", "L", 67}, {"-", "L", 67}, {"<", "L", 67}, {">", "L", 67}, {"==", "L", 67}, {"?", "L", 67}, {")", "L", 67}, {",", "L", 67}, {";", "L", 67}, {":", "L", 67}}; RawReadaheadTriple *ra7 = new RawReadaheadTriple [1] {{"(", "RS", 20}}; RawReadaheadTriple *ra8 = new RawReadaheadTriple [10] {{"+", "RS", 21}, {"-", "RS", 22}, {"<", "L", 69}, {">", "L", 69}, {"==", "L", 69}, {"?", "L", 69}, {")", "L", 69}, {",", "L", 69}, {";", "L", 69}, {":", "L", 69}}; RawReadaheadTriple *ra9 = new RawReadaheadTriple [1] {{";", "RS", 70}}; RawReadaheadTriple *ra10 = new RawReadaheadTriple [3] {{"(", "RS", 5}, {"walkInteger:", "RSN", 67}, {"walkIdentifier:", "RSN", 23}}; RawReadaheadTriple *ra11 = new RawReadaheadTriple [3] {{"(", "RS", 5}, {"walkInteger:", "RSN", 67}, {"walkIdentifier:", "RSN", 23}}; RawReadaheadTriple *ra12 = new RawReadaheadTriple [3] {{"(", "RS", 5}, {"walkIdentifier:", "RSN", 6}, {"walkInteger:", "RSN", 67}}; RawReadaheadTriple *ra13 = new RawReadaheadTriple [3] {{"walkIdentifier:", "RSN", 23}, {"walkInteger:", "RSN", 67}, {"(", "RS", 5}}; RawReadaheadTriple *ra14 = new RawReadaheadTriple [3] {{"walkIdentifier:", "RSN", 23}, {"walkInteger:", "RSN", 67}, {"(", "RS", 5}}; RawReadaheadTriple *ra15 = new RawReadaheadTriple [3] {{"walkIdentifier:", "RSN", 23}, {"walkInteger:", "RSN", 67}, {"(", "RS", 5}}; RawReadaheadTriple *ra16 = new RawReadaheadTriple [3] {{"walkIdentifier:", "RSN", 23}, {"walkInteger:", "RSN", 67}, {"(", "RS", 5}}; RawReadaheadTriple *ra17 = new RawReadaheadTriple [1] {{")", "RS", 71}}; RawReadaheadTriple *ra18 = new RawReadaheadTriple [3] {{"walkIdentifier:", "RSN", 6}, {"walkInteger:", "RSN", 67}, {"(", "RS", 5}}; RawReadaheadTriple *ra19 = new RawReadaheadTriple [4] {{")", "RS", 78}, {"(", "RS", 5}, {"walkIdentifier:", "RSN", 6}, {"walkInteger:", "RSN", 67}}; RawReadaheadTriple *ra20 = new RawReadaheadTriple [3] {{"(", "RS", 5}, {"walkIdentifier:", "RSN", 6}, {"walkInteger:", "RSN", 67}}; RawReadaheadTriple *ra21 = new RawReadaheadTriple [3] {{"walkIdentifier:", "RSN", 23}, {"(", "RS", 5}, {"walkInteger:", "RSN", 67}}; RawReadaheadTriple *ra22 = new RawReadaheadTriple [3] {{"walkIdentifier:", "RSN", 23}, {"(", "RS", 5}, {"walkInteger:", "RSN", 67}}; RawReadaheadTriple *ra23 = new RawReadaheadTriple [13] {{"(", "RS", 19}, {"*", "L", 67}, {"/", "L", 67}, {"+", "L", 67}, {"-", "L", 67}, {"<", "L", 67}, {">", "L", 67}, {"==", "L", 67}, {"?", "L", 67}, {")", "L", 67}, {",", "L", 67}, {";", "L", 67}, {":", "L", 67}}; RawReadaheadTriple *ra24 = new RawReadaheadTriple [1] {{";", "RS", 33}}; RawReadaheadTriple *ra25 = new RawReadaheadTriple [10] {{"+", "RS", 21}, {"-", "RS", 22}, {"<", "L", 74}, {">", "L", 74}, {"==", "L", 74}, {"?", "L", 74}, {")", "L", 74}, {",", "L", 74}, {";", "L", 74}, {":", "L", 74}}; RawReadaheadTriple *ra26 = new RawReadaheadTriple [10] {{"+", "RS", 21}, {"-", "RS", 22}, {"<", "L", 75}, {">", "L", 75}, {"==", "L", 75}, {"?", "L", 75}, {")", "L", 75}, {",", "L", 75}, {";", "L", 75}, {":", "L", 75}}; RawReadaheadTriple *ra27 = new RawReadaheadTriple [10] {{"+", "RS", 21}, {"-", "RS", 22}, {"<", "L", 76}, {">", "L", 76}, {"==", "L", 76}, {"?", "L", 76}, {")", "L", 76}, {",", "L", 76}, {";", "L", 76}, {":", "L", 76}}; RawReadaheadTriple *ra28 = new RawReadaheadTriple [4] {{"<", "RS", 13}, {">", "RS", 14}, {"==", "RS", 15}, {":", "RS", 34}}; RawReadaheadTriple *ra29 = new RawReadaheadTriple [2] {{",", "RS", 35}, {")", "RS", 78}}; RawReadaheadTriple *ra30 = new RawReadaheadTriple [1] {{")", "RS", 36}}; RawReadaheadTriple *ra31 = new RawReadaheadTriple [12] {{"*", "RS", 10}, {"/", "RS", 11}, {"+", "L", 79}, {"-", "L", 79}, {"<", "L", 79}, {">", "L", 79}, {"==", "L", 79}, {"?", "L", 79}, {")", "L", 79}, {",", "L", 79}, {";", "L", 79}, {":", "L", 79}}; RawReadaheadTriple *ra32 = new RawReadaheadTriple [12] {{"*", "RS", 10}, {"/", "RS", 11}, {"+", "L", 80}, {"-", "L", 80}, {"<", "L", 80}, {">", "L", 80}, {"==", "L", 80}, {"?", "L", 80}, {")", "L", 80}, {",", "L", 80}, {";", "L", 80}, {":", "L", 80}}; RawReadaheadTriple *ra33 = new RawReadaheadTriple [3] {{"(", "RS", 5}, {"walkIdentifier:", "RSN", 6}, {"walkInteger:", "RSN", 67}}; RawReadaheadTriple *ra34 = new RawReadaheadTriple [3] {{"(", "RS", 5}, {"walkIdentifier:", "RSN", 23}, {"walkInteger:", "RSN", 67}}; RawReadaheadTriple *ra35 = new RawReadaheadTriple [3] {{"walkIdentifier:", "RSN", 6}, {"walkInteger:", "RSN", 67}, {"(", "RS", 5}}; RawReadaheadTriple *ra36 = new RawReadaheadTriple [1] {{"{", "RS", 40}}; RawReadaheadTriple *ra37 = new RawReadaheadTriple [1] {{";", "RS", 41}}; RawReadaheadTriple *ra38 = new RawReadaheadTriple [6] {{"<", "RS", 13}, {">", "RS", 14}, {"==", "RS", 15}, {")", "L", 81}, {",", "L", 81}, {";", "L", 81}}; RawReadaheadTriple *ra39 = new RawReadaheadTriple [2] {{",", "RS", 35}, {")", "RS", 78}}; RawReadaheadTriple *ra40 = new RawReadaheadTriple [7] {{"for", "RS", 3}, {"walkInteger:", "RSN", 67}, {"(", "RS", 5}, {"walkIdentifier:", "RSN", 6}, {"if", "RS", 7}, {"}", "L", 51}, {"-|", "L", 51}}; RawReadaheadTriple *ra41 = new RawReadaheadTriple [3] {{"walkIdentifier:", "RSN", 6}, {"walkInteger:", "RSN", 67}, {"(", "RS", 5}}; RawReadaheadTriple *ra42 = new RawReadaheadTriple [1] {{"}", "RS", 44}}; RawReadaheadTriple *ra43 = new RawReadaheadTriple [1] {{")", "RS", 45}}; RawReadaheadTriple *ra44 = new RawReadaheadTriple [8] {{"else", "RS", 46}, {"if", "L", 52}, {"for", "L", 52}, {"walkInteger:", "L", 52}, {"walkIdentifier:", "L", 52}, {"(", "L", 52}, {"}", "L", 52}, {"-|", "L", 52}}; RawReadaheadTriple *ra45 = new RawReadaheadTriple [1] {{"{", "RS", 47}}; RawReadaheadTriple *ra46 = new RawReadaheadTriple [1] {{"{", "RS", 48}}; RawReadaheadTriple *ra47 = new RawReadaheadTriple [7] {{"for", "RS", 3}, {"(", "RS", 5}, {"walkInteger:", "RSN", 67}, {"walkIdentifier:", "RSN", 6}, {"if", "RS", 7}, {"}", "L", 51}, {"-|", "L", 51}}; RawReadaheadTriple *ra48 = new RawReadaheadTriple [7] {{"for", "RS", 3}, {"(", "RS", 5}, {"walkInteger:", "RSN", 67}, {"walkIdentifier:", "RSN", 6}, {"if", "RS", 7}, {"}", "L", 51}, {"-|", "L", 51}}; RawReadaheadTriple *ra49 = new RawReadaheadTriple [1] {{"}", "RS", 82}}; RawReadaheadTriple *ra50 = new RawReadaheadTriple [1] {{"}", "RS", 52}}; //Define an array of readahead tables. //FORMAT: RawReadaheadTable {char *name; long stateNumber; long size; RawReadaheadTriple *triples;} RawReadaheadTable *readaheadTables = new RawReadaheadTable [51] { {"ReadaheadTable", 0, 7, &ra0[0]}, {"ReadaheadTable", 1, 7, &ra1[0]}, {"ReadaheadTable", 2, 12, &ra2[0]}, {"ReadaheadTable", 3, 1, &ra3[0]}, {"ReadaheadTable", 4, 7, &ra4[0]}, {"ReadaheadTable", 5, 3, &ra5[0]}, {"ReadaheadTable", 6, 14, &ra6[0]}, {"ReadaheadTable", 7, 1, &ra7[0]}, {"ReadaheadTable", 8, 10, &ra8[0]}, {"ReadaheadTable", 9, 1, &ra9[0]}, {"ReadaheadTable", 10, 3, &ra10[0]}, {"ReadaheadTable", 11, 3, &ra11[0]}, {"ReadaheadTable", 12, 3, &ra12[0]}, {"ReadaheadTable", 13, 3, &ra13[0]}, {"ReadaheadTable", 14, 3, &ra14[0]}, {"ReadaheadTable", 15, 3, &ra15[0]}, {"ReadaheadTable", 16, 3, &ra16[0]}, {"ReadaheadTable", 17, 1, &ra17[0]}, {"ReadaheadTable", 18, 3, &ra18[0]}, {"ReadaheadTable", 19, 4, &ra19[0]}, {"ReadaheadTable", 20, 3, &ra20[0]}, {"ReadaheadTable", 21, 3, &ra21[0]}, {"ReadaheadTable", 22, 3, &ra22[0]}, {"ReadaheadTable", 23, 13, &ra23[0]}, {"ReadaheadTable", 24, 1, &ra24[0]}, {"ReadaheadTable", 25, 10, &ra25[0]}, {"ReadaheadTable", 26, 10, &ra26[0]}, {"ReadaheadTable", 27, 10, &ra27[0]}, {"ReadaheadTable", 28, 4, &ra28[0]}, {"ReadaheadTable", 29, 2, &ra29[0]}, {"ReadaheadTable", 30, 1, &ra30[0]}, {"ReadaheadTable", 31, 12, &ra31[0]}, {"ReadaheadTable", 32, 12, &ra32[0]}, {"ReadaheadTable", 33, 3, &ra33[0]}, {"ReadaheadTable", 34, 3, &ra34[0]}, {"ReadaheadTable", 35, 3, &ra35[0]}, {"ReadaheadTable", 36, 1, &ra36[0]}, {"ReadaheadTable", 37, 1, &ra37[0]}, {"ReadaheadTable", 38, 6, &ra38[0]}, {"ReadaheadTable", 39, 2, &ra39[0]}, {"ReadaheadTable", 40, 7, &ra40[0]}, {"ReadaheadTable", 41, 3, &ra41[0]}, {"ReadaheadTable", 42, 1, &ra42[0]}, {"ReadaheadTable", 43, 1, &ra43[0]}, {"ReadaheadTable", 44, 8, &ra44[0]}, {"ReadaheadTable", 45, 1, &ra45[0]}, {"ReadaheadTable", 46, 1, &ra46[0]}, {"ReadaheadTable", 47, 7, &ra47[0]}, {"ReadaheadTable", 48, 7, &ra48[0]}, {"ReadaheadTable", 49, 1, &ra49[0]}, {"ReadaheadTable", 50, 1, &ra50[0]}}; //Define VARIABLES to refer to readback table TRIPLEs. //FORMAT: RawReadbackPair {const char *symbol; long state;} //FORMAT: RawReadbackTriple {RawReadbackPair pair; const char *attributes; long gotoTableNumber;} RawReadbackTriple *rb51 = new RawReadbackTriple [5] {{{"Statement", 1}, "RSN", 53}, {{"|-", 0}, "L", 95}, {{"{", 40}, "L", 95}, {{"{", 47}, "L", 95}, {{"{", 48}, "L", 95}}; RawReadbackTriple *rb52 = new RawReadbackTriple [2] {{{"}", 52}, "RS", 83}, {{"}", 44}, "RS", 84}}; RawReadbackTriple *rb53 = new RawReadbackTriple [5] {{{"Statement", 1}, "RSN", 53}, {{"|-", 0}, "L", 95}, {{"{", 40}, "L", 95}, {{"{", 47}, "L", 95}, {{"{", 48}, "L", 95}}; RawReadbackTriple *rb54 = new RawReadbackTriple [3] {{{"(", 19}, "RS", 60}, {{"Expression", 39}, "RSN", 85}, {{"Expression", 29}, "RSN", 86}}; RawReadbackTriple *rb55 = new RawReadbackTriple [3] {{{"Expression2", 31}, "RSN", 96}, {{"Expression2", 32}, "RSN", 96}, {{"Expression2", 2}, "RSN", 96}}; RawReadbackTriple *rb56 = new RawReadbackTriple [3] {{{"Expression2", 31}, "RSN", 97}, {{"Expression2", 32}, "RSN", 97}, {{"Expression2", 2}, "RSN", 97}}; RawReadbackTriple *rb57 = new RawReadbackTriple [3] {{{"Expression0", 38}, "RSN", 98}, {{"Expression0", 4}, "RSN", 98}, {{"Expression0", 28}, "RSN", 98}}; RawReadbackTriple *rb58 = new RawReadbackTriple [3] {{{"Expression0", 38}, "RSN", 99}, {{"Expression0", 4}, "RSN", 99}, {{"Expression0", 28}, "RSN", 99}}; RawReadbackTriple *rb59 = new RawReadbackTriple [3] {{{"Expression0", 38}, "RSN", 100}, {{"Expression0", 4}, "RSN", 100}, {{"Expression0", 28}, "RSN", 100}}; RawReadbackTriple *rb60 = new RawReadbackTriple [2] {{{"walkIdentifier:", 23}, "RSN", 102}, {{"walkIdentifier:", 6}, "RSN", 102}}; RawReadbackTriple *rb61 = new RawReadbackTriple [4] {{{"Expression1", 26}, "RSN", 103}, {{"Expression1", 27}, "RSN", 103}, {{"Expression1", 8}, "RSN", 103}, {{"Expression1", 25}, "RSN", 103}}; RawReadbackTriple *rb62 = new RawReadbackTriple [4] {{{"Expression1", 26}, "RSN", 104}, {{"Expression1", 27}, "RSN", 104}, {{"Expression1", 8}, "RSN", 104}, {{"Expression1", 25}, "RSN", 104}}; RawReadbackTriple *rb63 = new RawReadbackTriple [2] {{{"Expression", 39}, "RSN", 85}, {{"Expression", 29}, "RSN", 86}}; //Define an array of readback tables. //FORMAT: RawReadabackTable {const char *name; long stateNumber; long size; RawReadbackTriple *triples;} RawReadbackTable *readbackTables = new RawReadbackTable [13] { {"ReadbackTable", 51, 5, rb52}, {"ReadbackTable", 52, 2, rb53}, {"ReadbackTable", 53, 5, rb54}, {"ReadbackTable", 54, 3, rb55}, {"ReadbackTable", 55, 3, rb56}, {"ReadbackTable", 56, 3, rb57}, {"ReadbackTable", 57, 3, rb58}, {"ReadbackTable", 58, 3, rb59}, {"ReadbackTable", 59, 3, rb60}, {"ReadbackTable", 60, 2, rb61}, {"ReadbackTable", 61, 4, rb62}, {"ReadbackTable", 62, 4, rb63}, {"ReadbackTable", 63, 2, rb64}}; //Define an array of shiftback tables. //FORMAT: RawShiftbackTable {const char *name; long stateNumber; long shift; long gotoTable;} RawShiftbackTable *shiftbackTables = new RawShiftbackTable [23] { {"ShiftbackTable", 64, 1, 90}, {"ShiftbackTable", 65, 1, 93}, {"ShiftbackTable", 66, 1, 94}, {"ShiftbackTable", 67, 1, 92}, {"ShiftbackTable", 68, 1, 91}, {"ShiftbackTable", 69, 1, 87}, {"ShiftbackTable", 70, 2, 89}, {"ShiftbackTable", 71, 3, 92}, {"ShiftbackTable", 72, 2, 55}, {"ShiftbackTable", 73, 2, 56}, {"ShiftbackTable", 74, 2, 57}, {"ShiftbackTable", 75, 2, 58}, {"ShiftbackTable", 76, 2, 59}, {"ShiftbackTable", 77, 3, 101}, {"ShiftbackTable", 78, 1, 54}, {"ShiftbackTable", 79, 2, 61}, {"ShiftbackTable", 80, 2, 62}, {"ShiftbackTable", 81, 5, 105}, {"ShiftbackTable", 82, 11, 107}, {"ShiftbackTable", 83, 10, 106}, {"ShiftbackTable", 84, 6, 106}, {"ShiftbackTable", 85, 1, 63}, {"ShiftbackTable", 86, 1, 60}}; //Define VARIABLES to refer to reduce table TRIPLEs. //FORMAT: RawReduceTriple {long stackTopState; const char *attributes; long gotoTableNumber;} RawReduceTriple *rd87 = new RawReduceTriple [15] {{0, "RSN", 4}, {1, "RSN", 4}, {5, "RSN", 4}, {12, "RSN", 4}, {16, "RSN", 28}, {18, "RSN", 4}, {19, "RSN", 4}, {20, "RSN", 4}, {33, "RSN", 4}, {34, "RSN", 38}, {35, "RSN", 4}, {40, "RSN", 4}, {41, "RSN", 4}, {47, "RSN", 4}, {48, "RSN", 4}}; RawReduceTriple *rd88 = new RawReduceTriple [4] {{0, "RSN", 64}, {40, "RSN", 42}, {47, "RSN", 49}, {48, "RSN", 50}}; RawReduceTriple *rd89 = new RawReduceTriple [5] {{0, "RSN", 1}, {1, "RSN", 1}, {40, "RSN", 1}, {47, "RSN", 1}, {48, "RSN", 1}}; RawReduceTriple *rd90 = new RawReduceTriple [1] {{0, "RSN", 108}}; RawReduceTriple *rd91 = new RawReduceTriple [20] {{0, "RSN", 2}, {1, "RSN", 2}, {5, "RSN", 2}, {12, "RSN", 2}, {13, "RSN", 2}, {14, "RSN", 2}, {15, "RSN", 2}, {16, "RSN", 2}, {18, "RSN", 2}, {19, "RSN", 2}, {20, "RSN", 2}, {21, "RSN", 31}, {22, "RSN", 32}, {33, "RSN", 2}, {34, "RSN", 2}, {35, "RSN", 2}, {40, "RSN", 2}, {41, "RSN", 2}, {47, "RSN", 2}, {48, "RSN", 2}}; RawReduceTriple *rd92 = new RawReduceTriple [22] {{0, "RSN", 68}, {1, "RSN", 68}, {5, "RSN", 68}, {10, "RSN", 72}, {11, "RSN", 73}, {12, "RSN", 68}, {13, "RSN", 68}, {14, "RSN", 68}, {15, "RSN", 68}, {16, "RSN", 68}, {18, "RSN", 68}, {19, "RSN", 68}, {20, "RSN", 68}, {21, "RSN", 68}, {22, "RSN", 68}, {33, "RSN", 68}, {34, "RSN", 68}, {35, "RSN", 68}, {40, "RSN", 68}, {41, "RSN", 68}, {47, "RSN", 68}, {48, "RSN", 68}}; RawReduceTriple *rd93 = new RawReduceTriple [18] {{0, "RSN", 8}, {1, "RSN", 8}, {5, "RSN", 8}, {12, "RSN", 8}, {13, "RSN", 25}, {14, "RSN", 26}, {15, "RSN", 27}, {16, "RSN", 8}, {18, "RSN", 8}, {19, "RSN", 8}, {20, "RSN", 8}, {33, "RSN", 8}, {34, "RSN", 8}, {35, "RSN", 8}, {40, "RSN", 8}, {41, "RSN", 8}, {47, "RSN", 8}, {48, "RSN", 8}}; RawReduceTriple *rd94 = new RawReduceTriple [13] {{0, "RSN", 9}, {1, "RSN", 9}, {5, "RSN", 17}, {12, "RSN", 24}, {18, "RSN", 77}, {19, "RSN", 29}, {20, "RSN", 30}, {33, "RSN", 37}, {35, "RSN", 39}, {40, "RSN", 9}, {41, "RSN", 43}, {47, "RSN", 9}, {48, "RSN", 9}}; //Define an array of reduce tables. //FORMAT: RawReduceTable {const char *name; long stateNumber; const char *nonterminal, long size; RawReduceTriple *triples;} RawReduceTable *reduceTables = new RawReduceTable [8] { {"ReduceTable", 87, "Expression0", 15, rd87}, {"ReduceTable", 88, "Statements", 4, rd88}, {"ReduceTable", 89, "Statement", 5, rd89}, {"ReduceTable", 90, "Grammar", 1, rd90}, {"ReduceTable", 91, "Expression2", 20, rd91}, {"ReduceTable", 92, "Expression3", 22, rd92}, {"ReduceTable", 93, "Expression1", 18, rd93}, {"ReduceTable", 94, "Expression", 13, rd94}}; //Define VARIABLES to refer to semantic table PARAMETERs. //FORMAT {string0, string1, ...} const char **p95 = new const char * [1] {"walkList:"}; const char **p96 = new const char * [1] {"walkMultiply:"}; const char **p97 = new const char * [1] {"walkDivide:"}; const char **p98 = new const char * [1] {"walkLess:"}; const char **p99 = new const char * [1] {"walkGreater:"}; const char **p100 = new const char * [1] {"walkEqual:"}; const char **p101 = new const char * [1] {"walkAssign:"}; const char **p102 = new const char * [1] {"walkSend:"}; const char **p103 = new const char * [1] {"walkPlus:"}; const char **p104 = new const char * [1] {"walkMinus:"}; const char **p105 = new const char * [1] {"walkIf:"}; const char **p106 = new const char * [1] {"walkIf:"}; const char **p107 = new const char * [1] {"walkFor:"}; //Define an array of semantic tables. //FORMAT SemanticTable {const char *name; long stateNumber; const char *action; long size; const char **parameters; long gotoTableNumber;} RawSemanticTable *semanticTables = new RawSemanticTable [13] { {"SemanticTable", 95, "buildTree", 1, p95, 88}, {"SemanticTable", 96, "buildTree", 1, p96, 91}, {"SemanticTable", 97, "buildTree", 1, p97, 91}, {"SemanticTable", 98, "buildTree", 1, p98, 87}, {"SemanticTable", 99, "buildTree", 1, p99, 87}, {"SemanticTable", 100, "buildTree", 1, p100, 87}, {"SemanticTable", 101, "buildTree", 1, p101, 94}, {"SemanticTable", 102, "buildTree", 1, p102, 92}, {"SemanticTable", 103, "buildTree", 1, p103, 93}, {"SemanticTable", 104, "buildTree", 1, p104, 93}, {"SemanticTable", 105, "buildTree", 1, p105, 94}, {"SemanticTable", 106, "buildTree", 1, p106, 89}, {"SemanticTable", 107, "buildTree", 1, p107, 89} }; RawAcceptTable *acceptTable = new RawAcceptTable {"AcceptTable", 108}; ParserTables *parserTables = new ParserTables { 1, keywords, 51, readaheadTables, 13, readbackTables, 23, shiftbackTables, 8, reduceTables, 13, semanticTables, acceptTable}; return parserTables; } void deleteParserTables (ParserTables *parserTable) { for (long index = 0; index < parserTable->readaheadTablesSize; index++) { delete [] parserTable->readaheadTables [index].triples; } delete [] parserTable->readaheadTables; for (long index = 0; index < parserTable->readbackTablesSize; index++) { delete [] parserTable->readbackTables [index].triples; } delete [] parserTable->readbackTables; delete [] parserTable->shiftbackTables; for (long index = 0; index < parserTable->reduceTablesSize; index++) { delete [] parserTable->reduceTables [index].triples; } delete [] parserTable->reduceTables; for (long index = 0; index < parserTable->semanticTablesSize; index++) { delete [] parserTable->semanticTables [index].parameters; } delete [] parserTable->semanticTables; } //C++98 -----------------------------------> //NOTE: The following declarations should probably be moved manually to a more global location for access elsewhere... struct RawReadaheadTriple {const char *string; const char *attributes; long gotoTable;}; struct RawReadaheadTable {const char *name; long state; long size; RawReadaheadTriple *triples;}; struct RawReadbackPair {const char *symbol; long state;}; struct RawReadbackTriple {RawReadbackPair pair; const char *attributes; long gotoTable;}; struct RawReadbackTable {const char *name; long state; long size; RawReadbackTriple *triples;}; struct RawShiftbackTable {const char *name; long state; long shift; long gotoTable;}; struct RawReduceTriple {long stackTopState; const char *attributes; long gotoTable;}; struct RawReduceTable {const char *name; long state; const char *nonterminal; long size; RawReduceTriple *triples;}; struct RawSemanticTable {const char *name; long state; const char *action; long size; const char **parameters; long gotoTable;}; struct RawAcceptTable {const char *name; long state;}; struct ParserTables { long keywordsSize; const char **keywords; long readaheadTablesSize; RawReadaheadTable *readaheadTables; long readbackTablesSize; RawReadbackTable *readbackTables; long shiftbackTablesSize; RawShiftbackTable *shiftbackTables; long reduceTablesSize; RawReduceTable *reduceTables; long semanticTablesSize; RawSemanticTable *semanticTables; RawAcceptTable *acceptTable; }; #define copy(a,b) CopyMemory (a, b, sizeof (b)) //For parsingTables.cpp ParserTables *parserTables () { const char **keywords = new const char * [1] {"if for else"}; //Define VARIABLES to refer to readahead table TRIPLEs. //FORMAT: RawReadaheadTriple {const char *string; const char *attributes; long gotoTableNumber;} //Note: string == NULL is equivalent to "{256}" (end of file). RawReadaheadTriple *ra0 = new RawReadaheadTriple [7] {{"for", "RS", 3}, {"(", "RS", 5}, {"walkInteger:", "RSN", 67}, {"walkIdentifier:", "RSN", 6}, {"if", "RS", 7}, {"}", "L", 51}, {"-|", "L", 51}}; RawReadaheadTriple *ra1 = new RawReadaheadTriple [7] {{"if", "RS", 7}, {"walkIdentifier:", "RSN", 6}, {"for", "RS", 3}, {"walkInteger:", "RSN", 67}, {"(", "RS", 5}, {"}", "L", 51}, {"-|", "L", 51}}; RawReadaheadTriple *ra2 = new RawReadaheadTriple [12] {{"*", "RS", 10}, {"/", "RS", 11}, {"+", "L", 65}, {"-", "L", 65}, {"<", "L", 65}, {">", "L", 65}, {"==", "L", 65}, {"?", "L", 65}, {")", "L", 65}, {",", "L", 65}, {";", "L", 65}, {":", "L", 65}}; RawReadaheadTriple *ra3 = new RawReadaheadTriple [1] {{"(", "RS", 12}}; RawReadaheadTriple *ra4 = new RawReadaheadTriple [7] {{"<", "RS", 13}, {">", "RS", 14}, {"==", "RS", 15}, {"?", "RS", 16}, {")", "L", 66}, {",", "L", 66}, {";", "L", 66}}; RawReadaheadTriple *ra5 = new RawReadaheadTriple [3] {{"walkIdentifier:", "RSN", 6}, {"walkInteger:", "RSN", 67}, {"(", "RS", 5}}; RawReadaheadTriple *ra6 = new RawReadaheadTriple [14] {{"=", "RS", 18}, {"(", "RS", 19}, {"*", "L", 67}, {"/", "L", 67}, {"+", "L", 67}, {"-", "L", 67}, {"<", "L", 67}, {">", "L", 67}, {"==", "L", 67}, {"?", "L", 67}, {")", "L", 67}, {",", "L", 67}, {";", "L", 67}, {":", "L", 67}}; RawReadaheadTriple *ra7 = new RawReadaheadTriple [1] {{"(", "RS", 20}}; RawReadaheadTriple *ra8 = new RawReadaheadTriple [10] {{"+", "RS", 21}, {"-", "RS", 22}, {"<", "L", 69}, {">", "L", 69}, {"==", "L", 69}, {"?", "L", 69}, {")", "L", 69}, {",", "L", 69}, {";", "L", 69}, {":", "L", 69}}; RawReadaheadTriple *ra9 = new RawReadaheadTriple [1] {{";", "RS", 70}}; RawReadaheadTriple *ra10 = new RawReadaheadTriple [3] {{"(", "RS", 5}, {"walkInteger:", "RSN", 67}, {"walkIdentifier:", "RSN", 23}}; RawReadaheadTriple *ra11 = new RawReadaheadTriple [3] {{"(", "RS", 5}, {"walkInteger:", "RSN", 67}, {"walkIdentifier:", "RSN", 23}}; RawReadaheadTriple *ra12 = new RawReadaheadTriple [3] {{"(", "RS", 5}, {"walkIdentifier:", "RSN", 6}, {"walkInteger:", "RSN", 67}}; RawReadaheadTriple *ra13 = new RawReadaheadTriple [3] {{"walkIdentifier:", "RSN", 23}, {"walkInteger:", "RSN", 67}, {"(", "RS", 5}}; RawReadaheadTriple *ra14 = new RawReadaheadTriple [3] {{"walkIdentifier:", "RSN", 23}, {"walkInteger:", "RSN", 67}, {"(", "RS", 5}}; RawReadaheadTriple *ra15 = new RawReadaheadTriple [3] {{"walkIdentifier:", "RSN", 23}, {"walkInteger:", "RSN", 67}, {"(", "RS", 5}}; RawReadaheadTriple *ra16 = new RawReadaheadTriple [3] {{"walkIdentifier:", "RSN", 23}, {"walkInteger:", "RSN", 67}, {"(", "RS", 5}}; RawReadaheadTriple *ra17 = new RawReadaheadTriple [1] {{")", "RS", 71}}; RawReadaheadTriple *ra18 = new RawReadaheadTriple [3] {{"walkIdentifier:", "RSN", 6}, {"walkInteger:", "RSN", 67}, {"(", "RS", 5}}; RawReadaheadTriple *ra19 = new RawReadaheadTriple [4] {{")", "RS", 78}, {"(", "RS", 5}, {"walkIdentifier:", "RSN", 6}, {"walkInteger:", "RSN", 67}}; RawReadaheadTriple *ra20 = new RawReadaheadTriple [3] {{"(", "RS", 5}, {"walkIdentifier:", "RSN", 6}, {"walkInteger:", "RSN", 67}}; RawReadaheadTriple *ra21 = new RawReadaheadTriple [3] {{"walkIdentifier:", "RSN", 23}, {"(", "RS", 5}, {"walkInteger:", "RSN", 67}}; RawReadaheadTriple *ra22 = new RawReadaheadTriple [3] {{"walkIdentifier:", "RSN", 23}, {"(", "RS", 5}, {"walkInteger:", "RSN", 67}}; RawReadaheadTriple *ra23 = new RawReadaheadTriple [13] {{"(", "RS", 19}, {"*", "L", 67}, {"/", "L", 67}, {"+", "L", 67}, {"-", "L", 67}, {"<", "L", 67}, {">", "L", 67}, {"==", "L", 67}, {"?", "L", 67}, {")", "L", 67}, {",", "L", 67}, {";", "L", 67}, {":", "L", 67}}; RawReadaheadTriple *ra24 = new RawReadaheadTriple [1] {{";", "RS", 33}}; RawReadaheadTriple *ra25 = new RawReadaheadTriple [10] {{"+", "RS", 21}, {"-", "RS", 22}, {"<", "L", 74}, {">", "L", 74}, {"==", "L", 74}, {"?", "L", 74}, {")", "L", 74}, {",", "L", 74}, {";", "L", 74}, {":", "L", 74}}; RawReadaheadTriple *ra26 = new RawReadaheadTriple [10] {{"+", "RS", 21}, {"-", "RS", 22}, {"<", "L", 75}, {">", "L", 75}, {"==", "L", 75}, {"?", "L", 75}, {")", "L", 75}, {",", "L", 75}, {";", "L", 75}, {":", "L", 75}}; RawReadaheadTriple *ra27 = new RawReadaheadTriple [10] {{"+", "RS", 21}, {"-", "RS", 22}, {"<", "L", 76}, {">", "L", 76}, {"==", "L", 76}, {"?", "L", 76}, {")", "L", 76}, {",", "L", 76}, {";", "L", 76}, {":", "L", 76}}; RawReadaheadTriple *ra28 = new RawReadaheadTriple [4] {{"<", "RS", 13}, {">", "RS", 14}, {"==", "RS", 15}, {":", "RS", 34}}; RawReadaheadTriple *ra29 = new RawReadaheadTriple [2] {{",", "RS", 35}, {")", "RS", 78}}; RawReadaheadTriple *ra30 = new RawReadaheadTriple [1] {{")", "RS", 36}}; RawReadaheadTriple *ra31 = new RawReadaheadTriple [12] {{"*", "RS", 10}, {"/", "RS", 11}, {"+", "L", 79}, {"-", "L", 79}, {"<", "L", 79}, {">", "L", 79}, {"==", "L", 79}, {"?", "L", 79}, {")", "L", 79}, {",", "L", 79}, {";", "L", 79}, {":", "L", 79}}; RawReadaheadTriple *ra32 = new RawReadaheadTriple [12] {{"*", "RS", 10}, {"/", "RS", 11}, {"+", "L", 80}, {"-", "L", 80}, {"<", "L", 80}, {">", "L", 80}, {"==", "L", 80}, {"?", "L", 80}, {")", "L", 80}, {",", "L", 80}, {";", "L", 80}, {":", "L", 80}}; RawReadaheadTriple *ra33 = new RawReadaheadTriple [3] {{"(", "RS", 5}, {"walkIdentifier:", "RSN", 6}, {"walkInteger:", "RSN", 67}}; RawReadaheadTriple *ra34 = new RawReadaheadTriple [3] {{"(", "RS", 5}, {"walkIdentifier:", "RSN", 23}, {"walkInteger:", "RSN", 67}}; RawReadaheadTriple *ra35 = new RawReadaheadTriple [3] {{"walkIdentifier:", "RSN", 6}, {"walkInteger:", "RSN", 67}, {"(", "RS", 5}}; RawReadaheadTriple *ra36 = new RawReadaheadTriple [1] {{"{", "RS", 40}}; RawReadaheadTriple *ra37 = new RawReadaheadTriple [1] {{";", "RS", 41}}; RawReadaheadTriple *ra38 = new RawReadaheadTriple [6] {{"<", "RS", 13}, {">", "RS", 14}, {"==", "RS", 15}, {")", "L", 81}, {",", "L", 81}, {";", "L", 81}}; RawReadaheadTriple *ra39 = new RawReadaheadTriple [2] {{",", "RS", 35}, {")", "RS", 78}}; RawReadaheadTriple *ra40 = new RawReadaheadTriple [7] {{"for", "RS", 3}, {"walkInteger:", "RSN", 67}, {"(", "RS", 5}, {"walkIdentifier:", "RSN", 6}, {"if", "RS", 7}, {"}", "L", 51}, {"-|", "L", 51}}; RawReadaheadTriple *ra41 = new RawReadaheadTriple [3] {{"walkIdentifier:", "RSN", 6}, {"walkInteger:", "RSN", 67}, {"(", "RS", 5}}; RawReadaheadTriple *ra42 = new RawReadaheadTriple [1] {{"}", "RS", 44}}; RawReadaheadTriple *ra43 = new RawReadaheadTriple [1] {{")", "RS", 45}}; RawReadaheadTriple *ra44 = new RawReadaheadTriple [8] {{"else", "RS", 46}, {"if", "L", 52}, {"for", "L", 52}, {"walkInteger:", "L", 52}, {"walkIdentifier:", "L", 52}, {"(", "L", 52}, {"}", "L", 52}, {"-|", "L", 52}}; RawReadaheadTriple *ra45 = new RawReadaheadTriple [1] {{"{", "RS", 47}}; RawReadaheadTriple *ra46 = new RawReadaheadTriple [1] {{"{", "RS", 48}}; RawReadaheadTriple *ra47 = new RawReadaheadTriple [7] {{"for", "RS", 3}, {"(", "RS", 5}, {"walkInteger:", "RSN", 67}, {"walkIdentifier:", "RSN", 6}, {"if", "RS", 7}, {"}", "L", 51}, {"-|", "L", 51}}; RawReadaheadTriple *ra48 = new RawReadaheadTriple [7] {{"for", "RS", 3}, {"(", "RS", 5}, {"walkInteger:", "RSN", 67}, {"walkIdentifier:", "RSN", 6}, {"if", "RS", 7}, {"}", "L", 51}, {"-|", "L", 51}}; RawReadaheadTriple *ra49 = new RawReadaheadTriple [1] {{"}", "RS", 82}}; RawReadaheadTriple *ra50 = new RawReadaheadTriple [1] {{"}", "RS", 52}}; //Define an array of readahead tables. //FORMAT: RawReadaheadTable {char *name; long stateNumber; long size; RawReadaheadTriple *triples;} RawReadaheadTable *readaheadTables = new RawReadaheadTable [51] { {"ReadaheadTable", 0, 7, &ra0[0]}, {"ReadaheadTable", 1, 7, &ra1[0]}, {"ReadaheadTable", 2, 12, &ra2[0]}, {"ReadaheadTable", 3, 1, &ra3[0]}, {"ReadaheadTable", 4, 7, &ra4[0]}, {"ReadaheadTable", 5, 3, &ra5[0]}, {"ReadaheadTable", 6, 14, &ra6[0]}, {"ReadaheadTable", 7, 1, &ra7[0]}, {"ReadaheadTable", 8, 10, &ra8[0]}, {"ReadaheadTable", 9, 1, &ra9[0]}, {"ReadaheadTable", 10, 3, &ra10[0]}, {"ReadaheadTable", 11, 3, &ra11[0]}, {"ReadaheadTable", 12, 3, &ra12[0]}, {"ReadaheadTable", 13, 3, &ra13[0]}, {"ReadaheadTable", 14, 3, &ra14[0]}, {"ReadaheadTable", 15, 3, &ra15[0]}, {"ReadaheadTable", 16, 3, &ra16[0]}, {"ReadaheadTable", 17, 1, &ra17[0]}, {"ReadaheadTable", 18, 3, &ra18[0]}, {"ReadaheadTable", 19, 4, &ra19[0]}, {"ReadaheadTable", 20, 3, &ra20[0]}, {"ReadaheadTable", 21, 3, &ra21[0]}, {"ReadaheadTable", 22, 3, &ra22[0]}, {"ReadaheadTable", 23, 13, &ra23[0]}, {"ReadaheadTable", 24, 1, &ra24[0]}, {"ReadaheadTable", 25, 10, &ra25[0]}, {"ReadaheadTable", 26, 10, &ra26[0]}, {"ReadaheadTable", 27, 10, &ra27[0]}, {"ReadaheadTable", 28, 4, &ra28[0]}, {"ReadaheadTable", 29, 2, &ra29[0]}, {"ReadaheadTable", 30, 1, &ra30[0]}, {"ReadaheadTable", 31, 12, &ra31[0]}, {"ReadaheadTable", 32, 12, &ra32[0]}, {"ReadaheadTable", 33, 3, &ra33[0]}, {"ReadaheadTable", 34, 3, &ra34[0]}, {"ReadaheadTable", 35, 3, &ra35[0]}, {"ReadaheadTable", 36, 1, &ra36[0]}, {"ReadaheadTable", 37, 1, &ra37[0]}, {"ReadaheadTable", 38, 6, &ra38[0]}, {"ReadaheadTable", 39, 2, &ra39[0]}, {"ReadaheadTable", 40, 7, &ra40[0]}, {"ReadaheadTable", 41, 3, &ra41[0]}, {"ReadaheadTable", 42, 1, &ra42[0]}, {"ReadaheadTable", 43, 1, &ra43[0]}, {"ReadaheadTable", 44, 8, &ra44[0]}, {"ReadaheadTable", 45, 1, &ra45[0]}, {"ReadaheadTable", 46, 1, &ra46[0]}, {"ReadaheadTable", 47, 7, &ra47[0]}, {"ReadaheadTable", 48, 7, &ra48[0]}, {"ReadaheadTable", 49, 1, &ra49[0]}, {"ReadaheadTable", 50, 1, &ra50[0]}}; //Define VARIABLES to refer to readback table TRIPLEs. //FORMAT: RawReadbackPair {const char *symbol; long state;} //FORMAT: RawReadbackTriple {RawReadbackPair pair; const char *attributes; long gotoTableNumber;} RawReadbackTriple *rb51 = new RawReadbackTriple [5] {{{"Statement", 1}, "RSN", 53}, {{"|-", 0}, "L", 95}, {{"{", 40}, "L", 95}, {{"{", 47}, "L", 95}, {{"{", 48}, "L", 95}}; RawReadbackTriple *rb52 = new RawReadbackTriple [2] {{{"}", 52}, "RS", 83}, {{"}", 44}, "RS", 84}}; RawReadbackTriple *rb53 = new RawReadbackTriple [5] {{{"Statement", 1}, "RSN", 53}, {{"|-", 0}, "L", 95}, {{"{", 40}, "L", 95}, {{"{", 47}, "L", 95}, {{"{", 48}, "L", 95}}; RawReadbackTriple *rb54 = new RawReadbackTriple [3] {{{"(", 19}, "RS", 60}, {{"Expression", 39}, "RSN", 85}, {{"Expression", 29}, "RSN", 86}}; RawReadbackTriple *rb55 = new RawReadbackTriple [3] {{{"Expression2", 31}, "RSN", 96}, {{"Expression2", 32}, "RSN", 96}, {{"Expression2", 2}, "RSN", 96}}; RawReadbackTriple *rb56 = new RawReadbackTriple [3] {{{"Expression2", 31}, "RSN", 97}, {{"Expression2", 32}, "RSN", 97}, {{"Expression2", 2}, "RSN", 97}}; RawReadbackTriple *rb57 = new RawReadbackTriple [3] {{{"Expression0", 38}, "RSN", 98}, {{"Expression0", 4}, "RSN", 98}, {{"Expression0", 28}, "RSN", 98}}; RawReadbackTriple *rb58 = new RawReadbackTriple [3] {{{"Expression0", 38}, "RSN", 99}, {{"Expression0", 4}, "RSN", 99}, {{"Expression0", 28}, "RSN", 99}}; RawReadbackTriple *rb59 = new RawReadbackTriple [3] {{{"Expression0", 38}, "RSN", 100}, {{"Expression0", 4}, "RSN", 100}, {{"Expression0", 28}, "RSN", 100}}; RawReadbackTriple *rb60 = new RawReadbackTriple [2] {{{"walkIdentifier:", 23}, "RSN", 102}, {{"walkIdentifier:", 6}, "RSN", 102}}; RawReadbackTriple *rb61 = new RawReadbackTriple [4] {{{"Expression1", 26}, "RSN", 103}, {{"Expression1", 27}, "RSN", 103}, {{"Expression1", 8}, "RSN", 103}, {{"Expression1", 25}, "RSN", 103}}; RawReadbackTriple *rb62 = new RawReadbackTriple [4] {{{"Expression1", 26}, "RSN", 104}, {{"Expression1", 27}, "RSN", 104}, {{"Expression1", 8}, "RSN", 104}, {{"Expression1", 25}, "RSN", 104}}; RawReadbackTriple *rb63 = new RawReadbackTriple [2] {{{"Expression", 39}, "RSN", 85}, {{"Expression", 29}, "RSN", 86}}; //Define an array of readback tables. //FORMAT: RawReadabackTable {const char *name; long stateNumber; long size; RawReadbackTriple *triples;} RawReadbackTable *readbackTables = new RawReadbackTable [13] { {"ReadbackTable", 51, 5, rb52}, {"ReadbackTable", 52, 2, rb53}, {"ReadbackTable", 53, 5, rb54}, {"ReadbackTable", 54, 3, rb55}, {"ReadbackTable", 55, 3, rb56}, {"ReadbackTable", 56, 3, rb57}, {"ReadbackTable", 57, 3, rb58}, {"ReadbackTable", 58, 3, rb59}, {"ReadbackTable", 59, 3, rb60}, {"ReadbackTable", 60, 2, rb61}, {"ReadbackTable", 61, 4, rb62}, {"ReadbackTable", 62, 4, rb63}, {"ReadbackTable", 63, 2, rb64}}; //Define an array of shiftback tables. //FORMAT: RawShiftbackTable {const char *name; long stateNumber; long shift; long gotoTable;} RawShiftbackTable *shiftbackTables = new RawShiftbackTable [23] { {"ShiftbackTable", 64, 1, 90}, {"ShiftbackTable", 65, 1, 93}, {"ShiftbackTable", 66, 1, 94}, {"ShiftbackTable", 67, 1, 92}, {"ShiftbackTable", 68, 1, 91}, {"ShiftbackTable", 69, 1, 87}, {"ShiftbackTable", 70, 2, 89}, {"ShiftbackTable", 71, 3, 92}, {"ShiftbackTable", 72, 2, 55}, {"ShiftbackTable", 73, 2, 56}, {"ShiftbackTable", 74, 2, 57}, {"ShiftbackTable", 75, 2, 58}, {"ShiftbackTable", 76, 2, 59}, {"ShiftbackTable", 77, 3, 101}, {"ShiftbackTable", 78, 1, 54}, {"ShiftbackTable", 79, 2, 61}, {"ShiftbackTable", 80, 2, 62}, {"ShiftbackTable", 81, 5, 105}, {"ShiftbackTable", 82, 11, 107}, {"ShiftbackTable", 83, 10, 106}, {"ShiftbackTable", 84, 6, 106}, {"ShiftbackTable", 85, 1, 63}, {"ShiftbackTable", 86, 1, 60}}; //Define VARIABLES to refer to reduce table TRIPLEs. //FORMAT: RawReduceTriple {long stackTopState; const char *attributes; long gotoTableNumber;} RawReduceTriple *rd87 = new RawReduceTriple [15] {{0, "RSN", 4}, {1, "RSN", 4}, {5, "RSN", 4}, {12, "RSN", 4}, {16, "RSN", 28}, {18, "RSN", 4}, {19, "RSN", 4}, {20, "RSN", 4}, {33, "RSN", 4}, {34, "RSN", 38}, {35, "RSN", 4}, {40, "RSN", 4}, {41, "RSN", 4}, {47, "RSN", 4}, {48, "RSN", 4}}; RawReduceTriple *rd88 = new RawReduceTriple [4] {{0, "RSN", 64}, {40, "RSN", 42}, {47, "RSN", 49}, {48, "RSN", 50}}; RawReduceTriple *rd89 = new RawReduceTriple [5] {{0, "RSN", 1}, {1, "RSN", 1}, {40, "RSN", 1}, {47, "RSN", 1}, {48, "RSN", 1}}; RawReduceTriple *rd90 = new RawReduceTriple [1] {{0, "RSN", 108}}; RawReduceTriple *rd91 = new RawReduceTriple [20] {{0, "RSN", 2}, {1, "RSN", 2}, {5, "RSN", 2}, {12, "RSN", 2}, {13, "RSN", 2}, {14, "RSN", 2}, {15, "RSN", 2}, {16, "RSN", 2}, {18, "RSN", 2}, {19, "RSN", 2}, {20, "RSN", 2}, {21, "RSN", 31}, {22, "RSN", 32}, {33, "RSN", 2}, {34, "RSN", 2}, {35, "RSN", 2}, {40, "RSN", 2}, {41, "RSN", 2}, {47, "RSN", 2}, {48, "RSN", 2}}; RawReduceTriple *rd92 = new RawReduceTriple [22] {{0, "RSN", 68}, {1, "RSN", 68}, {5, "RSN", 68}, {10, "RSN", 72}, {11, "RSN", 73}, {12, "RSN", 68}, {13, "RSN", 68}, {14, "RSN", 68}, {15, "RSN", 68}, {16, "RSN", 68}, {18, "RSN", 68}, {19, "RSN", 68}, {20, "RSN", 68}, {21, "RSN", 68}, {22, "RSN", 68}, {33, "RSN", 68}, {34, "RSN", 68}, {35, "RSN", 68}, {40, "RSN", 68}, {41, "RSN", 68}, {47, "RSN", 68}, {48, "RSN", 68}}; RawReduceTriple *rd93 = new RawReduceTriple [18] {{0, "RSN", 8}, {1, "RSN", 8}, {5, "RSN", 8}, {12, "RSN", 8}, {13, "RSN", 25}, {14, "RSN", 26}, {15, "RSN", 27}, {16, "RSN", 8}, {18, "RSN", 8}, {19, "RSN", 8}, {20, "RSN", 8}, {33, "RSN", 8}, {34, "RSN", 8}, {35, "RSN", 8}, {40, "RSN", 8}, {41, "RSN", 8}, {47, "RSN", 8}, {48, "RSN", 8}}; RawReduceTriple *rd94 = new RawReduceTriple [13] {{0, "RSN", 9}, {1, "RSN", 9}, {5, "RSN", 17}, {12, "RSN", 24}, {18, "RSN", 77}, {19, "RSN", 29}, {20, "RSN", 30}, {33, "RSN", 37}, {35, "RSN", 39}, {40, "RSN", 9}, {41, "RSN", 43}, {47, "RSN", 9}, {48, "RSN", 9}}; //Define an array of reduce tables. //FORMAT: RawReduceTable {const char *name; long stateNumber; const char *nonterminal, long size; RawReduceTriple *triples;} RawReduceTable *reduceTables = new RawReduceTable [8] { {"ReduceTable", 87, "Expression0", 15, rd87}, {"ReduceTable", 88, "Statements", 4, rd88}, {"ReduceTable", 89, "Statement", 5, rd89}, {"ReduceTable", 90, "Grammar", 1, rd90}, {"ReduceTable", 91, "Expression2", 20, rd91}, {"ReduceTable", 92, "Expression3", 22, rd92}, {"ReduceTable", 93, "Expression1", 18, rd93}, {"ReduceTable", 94, "Expression", 13, rd94}}; //Define VARIABLES to refer to semantic table PARAMETERs. //FORMAT {string0, string1, ...} const char **p95 = new const char * [1] {"walkList:"}; const char **p96 = new const char * [1] {"walkMultiply:"}; const char **p97 = new const char * [1] {"walkDivide:"}; const char **p98 = new const char * [1] {"walkLess:"}; const char **p99 = new const char * [1] {"walkGreater:"}; const char **p100 = new const char * [1] {"walkEqual:"}; const char **p101 = new const char * [1] {"walkAssign:"}; const char **p102 = new const char * [1] {"walkSend:"}; const char **p103 = new const char * [1] {"walkPlus:"}; const char **p104 = new const char * [1] {"walkMinus:"}; const char **p105 = new const char * [1] {"walkIf:"}; const char **p106 = new const char * [1] {"walkIf:"}; const char **p107 = new const char * [1] {"walkFor:"}; //Define an array of semantic tables. //FORMAT SemanticTable {const char *name; long stateNumber; const char *action; long size; const char **parameters; long gotoTableNumber;} RawSemanticTable *semanticTables = new RawSemanticTable [13] { {"SemanticTable", 95, "buildTree", 1, p95, 88}, {"SemanticTable", 96, "buildTree", 1, p96, 91}, {"SemanticTable", 97, "buildTree", 1, p97, 91}, {"SemanticTable", 98, "buildTree", 1, p98, 87}, {"SemanticTable", 99, "buildTree", 1, p99, 87}, {"SemanticTable", 100, "buildTree", 1, p100, 87}, {"SemanticTable", 101, "buildTree", 1, p101, 94}, {"SemanticTable", 102, "buildTree", 1, p102, 92}, {"SemanticTable", 103, "buildTree", 1, p103, 93}, {"SemanticTable", 104, "buildTree", 1, p104, 93}, {"SemanticTable", 105, "buildTree", 1, p105, 94}, {"SemanticTable", 106, "buildTree", 1, p106, 89}, {"SemanticTable", 107, "buildTree", 1, p107, 89} }; RawAcceptTable *acceptTable = new RawAcceptTable {"AcceptTable", 108}; ParserTables *parserTables = new ParserTables; ParserTables rawParserTables = { 1, keywords, 51, readaheadTables, 13, readbackTables, 23, shiftbackTables, 8, reduceTables, 13, semanticTables, acceptTable}; copy (parserTables, &rawParserTables); return parserTables; } void deleteParserTables (ParserTables *parserTable) { for (long index = 0; index < parserTable->readaheadTablesSize; index++) { delete [] parserTable->readaheadTables [index].triples; } delete [] parserTable->readaheadTables; for (long index = 0; index < parserTable->readbackTablesSize; index++) { delete [] parserTable->readbackTables [index].triples; } delete [] parserTable->readbackTables; delete [] parserTable->shiftbackTables; for (long index = 0; index < parserTable->reduceTablesSize; index++) { delete [] parserTable->reduceTables [index].triples; } delete [] parserTable->reduceTables; for (long index = 0; index < parserTable->semanticTablesSize; index++) { delete [] parserTable->semanticTables [index].parameters; } delete [] parserTable->semanticTables; } //JAVA ------------------------------------> //NOTE: The following declarations should probably be moved manually to a more global location for access elsewhere... struct RawReadaheadTriple {const char *string; const char *attributes; long gotoTable;}; struct RawReadaheadTable {const char *name; long state; long size; RawReadaheadTriple *triples;}; struct RawReadbackPair {const char *symbol; long state;}; struct RawReadbackTriple {RawReadbackPair pair; const char *attributes; long gotoTable;}; struct RawReadbackTable {const char *name; long state; long size; RawReadbackTriple *triples;}; struct RawShiftbackTable {const char *name; long state; long shift; long gotoTable;}; struct RawReduceTriple {long stackTopState; const char *attributes; long gotoTable;}; struct RawReduceTable {const char *name; long state; const char *nonterminal; long size; RawReduceTriple *triples;}; struct RawSemanticTable {const char *name; long state; const char *action; long size; const char **parameters; long gotoTable;}; struct RawAcceptTable {const char *name; long state;}; struct ParserTables { long keywordsSize; const char **keywords; long readaheadTablesSize; RawReadaheadTable *readaheadTables; long readbackTablesSize; RawReadbackTable *readbackTables; long shiftbackTablesSize; RawShiftbackTable *shiftbackTables; long reduceTablesSize; RawReduceTable *reduceTables; long semanticTablesSize; RawSemanticTable *semanticTables; RawAcceptTable *acceptTable; }; #define copy(a,b) CopyMemory (a, b, sizeof (b)) //For parsingTables.cpp ParserTables *parserTables () { const char **keywords = new const char * [1] {"if for else"}; //Define VARIABLES to refer to readahead table TRIPLEs. //FORMAT: RawReadaheadTriple {const char *string; const char *attributes; long gotoTableNumber;} //Note: string == NULL is equivalent to "{256}" (end of file). RawReadaheadTriple *ra0 = new RawReadaheadTriple [7] {{"for", "RS", 3}, {"(", "RS", 5}, {"walkInteger:", "RSN", 67}, {"walkIdentifier:", "RSN", 6}, {"if", "RS", 7}, {"}", "L", 51}, {"-|", "L", 51}}; RawReadaheadTriple *ra1 = new RawReadaheadTriple [7] {{"if", "RS", 7}, {"walkIdentifier:", "RSN", 6}, {"for", "RS", 3}, {"walkInteger:", "RSN", 67}, {"(", "RS", 5}, {"}", "L", 51}, {"-|", "L", 51}}; RawReadaheadTriple *ra2 = new RawReadaheadTriple [12] {{"*", "RS", 10}, {"/", "RS", 11}, {"+", "L", 65}, {"-", "L", 65}, {"<", "L", 65}, {">", "L", 65}, {"==", "L", 65}, {"?", "L", 65}, {")", "L", 65}, {",", "L", 65}, {";", "L", 65}, {":", "L", 65}}; RawReadaheadTriple *ra3 = new RawReadaheadTriple [1] {{"(", "RS", 12}}; RawReadaheadTriple *ra4 = new RawReadaheadTriple [7] {{"<", "RS", 13}, {">", "RS", 14}, {"==", "RS", 15}, {"?", "RS", 16}, {")", "L", 66}, {",", "L", 66}, {";", "L", 66}}; RawReadaheadTriple *ra5 = new RawReadaheadTriple [3] {{"walkIdentifier:", "RSN", 6}, {"walkInteger:", "RSN", 67}, {"(", "RS", 5}}; RawReadaheadTriple *ra6 = new RawReadaheadTriple [14] {{"=", "RS", 18}, {"(", "RS", 19}, {"*", "L", 67}, {"/", "L", 67}, {"+", "L", 67}, {"-", "L", 67}, {"<", "L", 67}, {">", "L", 67}, {"==", "L", 67}, {"?", "L", 67}, {")", "L", 67}, {",", "L", 67}, {";", "L", 67}, {":", "L", 67}}; RawReadaheadTriple *ra7 = new RawReadaheadTriple [1] {{"(", "RS", 20}}; RawReadaheadTriple *ra8 = new RawReadaheadTriple [10] {{"+", "RS", 21}, {"-", "RS", 22}, {"<", "L", 69}, {">", "L", 69}, {"==", "L", 69}, {"?", "L", 69}, {")", "L", 69}, {",", "L", 69}, {";", "L", 69}, {":", "L", 69}}; RawReadaheadTriple *ra9 = new RawReadaheadTriple [1] {{";", "RS", 70}}; RawReadaheadTriple *ra10 = new RawReadaheadTriple [3] {{"(", "RS", 5}, {"walkInteger:", "RSN", 67}, {"walkIdentifier:", "RSN", 23}}; RawReadaheadTriple *ra11 = new RawReadaheadTriple [3] {{"(", "RS", 5}, {"walkInteger:", "RSN", 67}, {"walkIdentifier:", "RSN", 23}}; RawReadaheadTriple *ra12 = new RawReadaheadTriple [3] {{"(", "RS", 5}, {"walkIdentifier:", "RSN", 6}, {"walkInteger:", "RSN", 67}}; RawReadaheadTriple *ra13 = new RawReadaheadTriple [3] {{"walkIdentifier:", "RSN", 23}, {"walkInteger:", "RSN", 67}, {"(", "RS", 5}}; RawReadaheadTriple *ra14 = new RawReadaheadTriple [3] {{"walkIdentifier:", "RSN", 23}, {"walkInteger:", "RSN", 67}, {"(", "RS", 5}}; RawReadaheadTriple *ra15 = new RawReadaheadTriple [3] {{"walkIdentifier:", "RSN", 23}, {"walkInteger:", "RSN", 67}, {"(", "RS", 5}}; RawReadaheadTriple *ra16 = new RawReadaheadTriple [3] {{"walkIdentifier:", "RSN", 23}, {"walkInteger:", "RSN", 67}, {"(", "RS", 5}}; RawReadaheadTriple *ra17 = new RawReadaheadTriple [1] {{")", "RS", 71}}; RawReadaheadTriple *ra18 = new RawReadaheadTriple [3] {{"walkIdentifier:", "RSN", 6}, {"walkInteger:", "RSN", 67}, {"(", "RS", 5}}; RawReadaheadTriple *ra19 = new RawReadaheadTriple [4] {{")", "RS", 78}, {"(", "RS", 5}, {"walkIdentifier:", "RSN", 6}, {"walkInteger:", "RSN", 67}}; RawReadaheadTriple *ra20 = new RawReadaheadTriple [3] {{"(", "RS", 5}, {"walkIdentifier:", "RSN", 6}, {"walkInteger:", "RSN", 67}}; RawReadaheadTriple *ra21 = new RawReadaheadTriple [3] {{"walkIdentifier:", "RSN", 23}, {"(", "RS", 5}, {"walkInteger:", "RSN", 67}}; RawReadaheadTriple *ra22 = new RawReadaheadTriple [3] {{"walkIdentifier:", "RSN", 23}, {"(", "RS", 5}, {"walkInteger:", "RSN", 67}}; RawReadaheadTriple *ra23 = new RawReadaheadTriple [13] {{"(", "RS", 19}, {"*", "L", 67}, {"/", "L", 67}, {"+", "L", 67}, {"-", "L", 67}, {"<", "L", 67}, {">", "L", 67}, {"==", "L", 67}, {"?", "L", 67}, {")", "L", 67}, {",", "L", 67}, {";", "L", 67}, {":", "L", 67}}; RawReadaheadTriple *ra24 = new RawReadaheadTriple [1] {{";", "RS", 33}}; RawReadaheadTriple *ra25 = new RawReadaheadTriple [10] {{"+", "RS", 21}, {"-", "RS", 22}, {"<", "L", 74}, {">", "L", 74}, {"==", "L", 74}, {"?", "L", 74}, {")", "L", 74}, {",", "L", 74}, {";", "L", 74}, {":", "L", 74}}; RawReadaheadTriple *ra26 = new RawReadaheadTriple [10] {{"+", "RS", 21}, {"-", "RS", 22}, {"<", "L", 75}, {">", "L", 75}, {"==", "L", 75}, {"?", "L", 75}, {")", "L", 75}, {",", "L", 75}, {";", "L", 75}, {":", "L", 75}}; RawReadaheadTriple *ra27 = new RawReadaheadTriple [10] {{"+", "RS", 21}, {"-", "RS", 22}, {"<", "L", 76}, {">", "L", 76}, {"==", "L", 76}, {"?", "L", 76}, {")", "L", 76}, {",", "L", 76}, {";", "L", 76}, {":", "L", 76}}; RawReadaheadTriple *ra28 = new RawReadaheadTriple [4] {{"<", "RS", 13}, {">", "RS", 14}, {"==", "RS", 15}, {":", "RS", 34}}; RawReadaheadTriple *ra29 = new RawReadaheadTriple [2] {{",", "RS", 35}, {")", "RS", 78}}; RawReadaheadTriple *ra30 = new RawReadaheadTriple [1] {{")", "RS", 36}}; RawReadaheadTriple *ra31 = new RawReadaheadTriple [12] {{"*", "RS", 10}, {"/", "RS", 11}, {"+", "L", 79}, {"-", "L", 79}, {"<", "L", 79}, {">", "L", 79}, {"==", "L", 79}, {"?", "L", 79}, {")", "L", 79}, {",", "L", 79}, {";", "L", 79}, {":", "L", 79}}; RawReadaheadTriple *ra32 = new RawReadaheadTriple [12] {{"*", "RS", 10}, {"/", "RS", 11}, {"+", "L", 80}, {"-", "L", 80}, {"<", "L", 80}, {">", "L", 80}, {"==", "L", 80}, {"?", "L", 80}, {")", "L", 80}, {",", "L", 80}, {";", "L", 80}, {":", "L", 80}}; RawReadaheadTriple *ra33 = new RawReadaheadTriple [3] {{"(", "RS", 5}, {"walkIdentifier:", "RSN", 6}, {"walkInteger:", "RSN", 67}}; RawReadaheadTriple *ra34 = new RawReadaheadTriple [3] {{"(", "RS", 5}, {"walkIdentifier:", "RSN", 23}, {"walkInteger:", "RSN", 67}}; RawReadaheadTriple *ra35 = new RawReadaheadTriple [3] {{"walkIdentifier:", "RSN", 6}, {"walkInteger:", "RSN", 67}, {"(", "RS", 5}}; RawReadaheadTriple *ra36 = new RawReadaheadTriple [1] {{"{", "RS", 40}}; RawReadaheadTriple *ra37 = new RawReadaheadTriple [1] {{";", "RS", 41}}; RawReadaheadTriple *ra38 = new RawReadaheadTriple [6] {{"<", "RS", 13}, {">", "RS", 14}, {"==", "RS", 15}, {")", "L", 81}, {",", "L", 81}, {";", "L", 81}}; RawReadaheadTriple *ra39 = new RawReadaheadTriple [2] {{",", "RS", 35}, {")", "RS", 78}}; RawReadaheadTriple *ra40 = new RawReadaheadTriple [7] {{"for", "RS", 3}, {"walkInteger:", "RSN", 67}, {"(", "RS", 5}, {"walkIdentifier:", "RSN", 6}, {"if", "RS", 7}, {"}", "L", 51}, {"-|", "L", 51}}; RawReadaheadTriple *ra41 = new RawReadaheadTriple [3] {{"walkIdentifier:", "RSN", 6}, {"walkInteger:", "RSN", 67}, {"(", "RS", 5}}; RawReadaheadTriple *ra42 = new RawReadaheadTriple [1] {{"}", "RS", 44}}; RawReadaheadTriple *ra43 = new RawReadaheadTriple [1] {{")", "RS", 45}}; RawReadaheadTriple *ra44 = new RawReadaheadTriple [8] {{"else", "RS", 46}, {"if", "L", 52}, {"for", "L", 52}, {"walkInteger:", "L", 52}, {"walkIdentifier:", "L", 52}, {"(", "L", 52}, {"}", "L", 52}, {"-|", "L", 52}}; RawReadaheadTriple *ra45 = new RawReadaheadTriple [1] {{"{", "RS", 47}}; RawReadaheadTriple *ra46 = new RawReadaheadTriple [1] {{"{", "RS", 48}}; RawReadaheadTriple *ra47 = new RawReadaheadTriple [7] {{"for", "RS", 3}, {"(", "RS", 5}, {"walkInteger:", "RSN", 67}, {"walkIdentifier:", "RSN", 6}, {"if", "RS", 7}, {"}", "L", 51}, {"-|", "L", 51}}; RawReadaheadTriple *ra48 = new RawReadaheadTriple [7] {{"for", "RS", 3}, {"(", "RS", 5}, {"walkInteger:", "RSN", 67}, {"walkIdentifier:", "RSN", 6}, {"if", "RS", 7}, {"}", "L", 51}, {"-|", "L", 51}}; RawReadaheadTriple *ra49 = new RawReadaheadTriple [1] {{"}", "RS", 82}}; RawReadaheadTriple *ra50 = new RawReadaheadTriple [1] {{"}", "RS", 52}}; //Define an array of readahead tables. //FORMAT: RawReadaheadTable {char *name; long stateNumber; long size; RawReadaheadTriple *triples;} RawReadaheadTable *readaheadTables = new RawReadaheadTable [51] { {"ReadaheadTable", 0, 7, &ra0[0]}, {"ReadaheadTable", 1, 7, &ra1[0]}, {"ReadaheadTable", 2, 12, &ra2[0]}, {"ReadaheadTable", 3, 1, &ra3[0]}, {"ReadaheadTable", 4, 7, &ra4[0]}, {"ReadaheadTable", 5, 3, &ra5[0]}, {"ReadaheadTable", 6, 14, &ra6[0]}, {"ReadaheadTable", 7, 1, &ra7[0]}, {"ReadaheadTable", 8, 10, &ra8[0]}, {"ReadaheadTable", 9, 1, &ra9[0]}, {"ReadaheadTable", 10, 3, &ra10[0]}, {"ReadaheadTable", 11, 3, &ra11[0]}, {"ReadaheadTable", 12, 3, &ra12[0]}, {"ReadaheadTable", 13, 3, &ra13[0]}, {"ReadaheadTable", 14, 3, &ra14[0]}, {"ReadaheadTable", 15, 3, &ra15[0]}, {"ReadaheadTable", 16, 3, &ra16[0]}, {"ReadaheadTable", 17, 1, &ra17[0]}, {"ReadaheadTable", 18, 3, &ra18[0]}, {"ReadaheadTable", 19, 4, &ra19[0]}, {"ReadaheadTable", 20, 3, &ra20[0]}, {"ReadaheadTable", 21, 3, &ra21[0]}, {"ReadaheadTable", 22, 3, &ra22[0]}, {"ReadaheadTable", 23, 13, &ra23[0]}, {"ReadaheadTable", 24, 1, &ra24[0]}, {"ReadaheadTable", 25, 10, &ra25[0]}, {"ReadaheadTable", 26, 10, &ra26[0]}, {"ReadaheadTable", 27, 10, &ra27[0]}, {"ReadaheadTable", 28, 4, &ra28[0]}, {"ReadaheadTable", 29, 2, &ra29[0]}, {"ReadaheadTable", 30, 1, &ra30[0]}, {"ReadaheadTable", 31, 12, &ra31[0]}, {"ReadaheadTable", 32, 12, &ra32[0]}, {"ReadaheadTable", 33, 3, &ra33[0]}, {"ReadaheadTable", 34, 3, &ra34[0]}, {"ReadaheadTable", 35, 3, &ra35[0]}, {"ReadaheadTable", 36, 1, &ra36[0]}, {"ReadaheadTable", 37, 1, &ra37[0]}, {"ReadaheadTable", 38, 6, &ra38[0]}, {"ReadaheadTable", 39, 2, &ra39[0]}, {"ReadaheadTable", 40, 7, &ra40[0]}, {"ReadaheadTable", 41, 3, &ra41[0]}, {"ReadaheadTable", 42, 1, &ra42[0]}, {"ReadaheadTable", 43, 1, &ra43[0]}, {"ReadaheadTable", 44, 8, &ra44[0]}, {"ReadaheadTable", 45, 1, &ra45[0]}, {"ReadaheadTable", 46, 1, &ra46[0]}, {"ReadaheadTable", 47, 7, &ra47[0]}, {"ReadaheadTable", 48, 7, &ra48[0]}, {"ReadaheadTable", 49, 1, &ra49[0]}, {"ReadaheadTable", 50, 1, &ra50[0]}}; //Define VARIABLES to refer to readback table TRIPLEs. //FORMAT: RawReadbackPair {const char *symbol; long state;} //FORMAT: RawReadbackTriple {RawReadbackPair pair; const char *attributes; long gotoTableNumber;} RawReadbackTriple *rb51 = new RawReadbackTriple [5] {{{"Statement", 1}, "RSN", 53}, {{"|-", 0}, "L", 95}, {{"{", 40}, "L", 95}, {{"{", 47}, "L", 95}, {{"{", 48}, "L", 95}}; RawReadbackTriple *rb52 = new RawReadbackTriple [2] {{{"}", 52}, "RS", 83}, {{"}", 44}, "RS", 84}}; RawReadbackTriple *rb53 = new RawReadbackTriple [5] {{{"Statement", 1}, "RSN", 53}, {{"|-", 0}, "L", 95}, {{"{", 40}, "L", 95}, {{"{", 47}, "L", 95}, {{"{", 48}, "L", 95}}; RawReadbackTriple *rb54 = new RawReadbackTriple [3] {{{"(", 19}, "RS", 60}, {{"Expression", 39}, "RSN", 85}, {{"Expression", 29}, "RSN", 86}}; RawReadbackTriple *rb55 = new RawReadbackTriple [3] {{{"Expression2", 31}, "RSN", 96}, {{"Expression2", 32}, "RSN", 96}, {{"Expression2", 2}, "RSN", 96}}; RawReadbackTriple *rb56 = new RawReadbackTriple [3] {{{"Expression2", 31}, "RSN", 97}, {{"Expression2", 32}, "RSN", 97}, {{"Expression2", 2}, "RSN", 97}}; RawReadbackTriple *rb57 = new RawReadbackTriple [3] {{{"Expression0", 38}, "RSN", 98}, {{"Expression0", 4}, "RSN", 98}, {{"Expression0", 28}, "RSN", 98}}; RawReadbackTriple *rb58 = new RawReadbackTriple [3] {{{"Expression0", 38}, "RSN", 99}, {{"Expression0", 4}, "RSN", 99}, {{"Expression0", 28}, "RSN", 99}}; RawReadbackTriple *rb59 = new RawReadbackTriple [3] {{{"Expression0", 38}, "RSN", 100}, {{"Expression0", 4}, "RSN", 100}, {{"Expression0", 28}, "RSN", 100}}; RawReadbackTriple *rb60 = new RawReadbackTriple [2] {{{"walkIdentifier:", 23}, "RSN", 102}, {{"walkIdentifier:", 6}, "RSN", 102}}; RawReadbackTriple *rb61 = new RawReadbackTriple [4] {{{"Expression1", 26}, "RSN", 103}, {{"Expression1", 27}, "RSN", 103}, {{"Expression1", 8}, "RSN", 103}, {{"Expression1", 25}, "RSN", 103}}; RawReadbackTriple *rb62 = new RawReadbackTriple [4] {{{"Expression1", 26}, "RSN", 104}, {{"Expression1", 27}, "RSN", 104}, {{"Expression1", 8}, "RSN", 104}, {{"Expression1", 25}, "RSN", 104}}; RawReadbackTriple *rb63 = new RawReadbackTriple [2] {{{"Expression", 39}, "RSN", 85}, {{"Expression", 29}, "RSN", 86}}; //Define an array of readback tables. //FORMAT: RawReadabackTable {const char *name; long stateNumber; long size; RawReadbackTriple *triples;} RawReadbackTable *readbackTables = new RawReadbackTable [13] { {"ReadbackTable", 51, 5, rb52}, {"ReadbackTable", 52, 2, rb53}, {"ReadbackTable", 53, 5, rb54}, {"ReadbackTable", 54, 3, rb55}, {"ReadbackTable", 55, 3, rb56}, {"ReadbackTable", 56, 3, rb57}, {"ReadbackTable", 57, 3, rb58}, {"ReadbackTable", 58, 3, rb59}, {"ReadbackTable", 59, 3, rb60}, {"ReadbackTable", 60, 2, rb61}, {"ReadbackTable", 61, 4, rb62}, {"ReadbackTable", 62, 4, rb63}, {"ReadbackTable", 63, 2, rb64}}; //Define an array of shiftback tables. //FORMAT: RawShiftbackTable {const char *name; long stateNumber; long shift; long gotoTable;} RawShiftbackTable *shiftbackTables = new RawShiftbackTable [23] { {"ShiftbackTable", 64, 1, 90}, {"ShiftbackTable", 65, 1, 93}, {"ShiftbackTable", 66, 1, 94}, {"ShiftbackTable", 67, 1, 92}, {"ShiftbackTable", 68, 1, 91}, {"ShiftbackTable", 69, 1, 87}, {"ShiftbackTable", 70, 2, 89}, {"ShiftbackTable", 71, 3, 92}, {"ShiftbackTable", 72, 2, 55}, {"ShiftbackTable", 73, 2, 56}, {"ShiftbackTable", 74, 2, 57}, {"ShiftbackTable", 75, 2, 58}, {"ShiftbackTable", 76, 2, 59}, {"ShiftbackTable", 77, 3, 101}, {"ShiftbackTable", 78, 1, 54}, {"ShiftbackTable", 79, 2, 61}, {"ShiftbackTable", 80, 2, 62}, {"ShiftbackTable", 81, 5, 105}, {"ShiftbackTable", 82, 11, 107}, {"ShiftbackTable", 83, 10, 106}, {"ShiftbackTable", 84, 6, 106}, {"ShiftbackTable", 85, 1, 63}, {"ShiftbackTable", 86, 1, 60}}; //Define VARIABLES to refer to reduce table TRIPLEs. //FORMAT: RawReduceTriple {long stackTopState; const char *attributes; long gotoTableNumber;} RawReduceTriple *rd87 = new RawReduceTriple [15] {{0, "RSN", 4}, {1, "RSN", 4}, {5, "RSN", 4}, {12, "RSN", 4}, {16, "RSN", 28}, {18, "RSN", 4}, {19, "RSN", 4}, {20, "RSN", 4}, {33, "RSN", 4}, {34, "RSN", 38}, {35, "RSN", 4}, {40, "RSN", 4}, {41, "RSN", 4}, {47, "RSN", 4}, {48, "RSN", 4}}; RawReduceTriple *rd88 = new RawReduceTriple [4] {{0, "RSN", 64}, {40, "RSN", 42}, {47, "RSN", 49}, {48, "RSN", 50}}; RawReduceTriple *rd89 = new RawReduceTriple [5] {{0, "RSN", 1}, {1, "RSN", 1}, {40, "RSN", 1}, {47, "RSN", 1}, {48, "RSN", 1}}; RawReduceTriple *rd90 = new RawReduceTriple [1] {{0, "RSN", 108}}; RawReduceTriple *rd91 = new RawReduceTriple [20] {{0, "RSN", 2}, {1, "RSN", 2}, {5, "RSN", 2}, {12, "RSN", 2}, {13, "RSN", 2}, {14, "RSN", 2}, {15, "RSN", 2}, {16, "RSN", 2}, {18, "RSN", 2}, {19, "RSN", 2}, {20, "RSN", 2}, {21, "RSN", 31}, {22, "RSN", 32}, {33, "RSN", 2}, {34, "RSN", 2}, {35, "RSN", 2}, {40, "RSN", 2}, {41, "RSN", 2}, {47, "RSN", 2}, {48, "RSN", 2}}; RawReduceTriple *rd92 = new RawReduceTriple [22] {{0, "RSN", 68}, {1, "RSN", 68}, {5, "RSN", 68}, {10, "RSN", 72}, {11, "RSN", 73}, {12, "RSN", 68}, {13, "RSN", 68}, {14, "RSN", 68}, {15, "RSN", 68}, {16, "RSN", 68}, {18, "RSN", 68}, {19, "RSN", 68}, {20, "RSN", 68}, {21, "RSN", 68}, {22, "RSN", 68}, {33, "RSN", 68}, {34, "RSN", 68}, {35, "RSN", 68}, {40, "RSN", 68}, {41, "RSN", 68}, {47, "RSN", 68}, {48, "RSN", 68}}; RawReduceTriple *rd93 = new RawReduceTriple [18] {{0, "RSN", 8}, {1, "RSN", 8}, {5, "RSN", 8}, {12, "RSN", 8}, {13, "RSN", 25}, {14, "RSN", 26}, {15, "RSN", 27}, {16, "RSN", 8}, {18, "RSN", 8}, {19, "RSN", 8}, {20, "RSN", 8}, {33, "RSN", 8}, {34, "RSN", 8}, {35, "RSN", 8}, {40, "RSN", 8}, {41, "RSN", 8}, {47, "RSN", 8}, {48, "RSN", 8}}; RawReduceTriple *rd94 = new RawReduceTriple [13] {{0, "RSN", 9}, {1, "RSN", 9}, {5, "RSN", 17}, {12, "RSN", 24}, {18, "RSN", 77}, {19, "RSN", 29}, {20, "RSN", 30}, {33, "RSN", 37}, {35, "RSN", 39}, {40, "RSN", 9}, {41, "RSN", 43}, {47, "RSN", 9}, {48, "RSN", 9}}; //Define an array of reduce tables. //FORMAT: RawReduceTable {const char *name; long stateNumber; const char *nonterminal, long size; RawReduceTriple *triples;} RawReduceTable *reduceTables = new RawReduceTable [8] { {"ReduceTable", 87, "Expression0", 15, rd87}, {"ReduceTable", 88, "Statements", 4, rd88}, {"ReduceTable", 89, "Statement", 5, rd89}, {"ReduceTable", 90, "Grammar", 1, rd90}, {"ReduceTable", 91, "Expression2", 20, rd91}, {"ReduceTable", 92, "Expression3", 22, rd92}, {"ReduceTable", 93, "Expression1", 18, rd93}, {"ReduceTable", 94, "Expression", 13, rd94}}; //Define VARIABLES to refer to semantic table PARAMETERs. //FORMAT {string0, string1, ...} const char **p95 = new const char * [1] {"walkList:"}; const char **p96 = new const char * [1] {"walkMultiply:"}; const char **p97 = new const char * [1] {"walkDivide:"}; const char **p98 = new const char * [1] {"walkLess:"}; const char **p99 = new const char * [1] {"walkGreater:"}; const char **p100 = new const char * [1] {"walkEqual:"}; const char **p101 = new const char * [1] {"walkAssign:"}; const char **p102 = new const char * [1] {"walkSend:"}; const char **p103 = new const char * [1] {"walkPlus:"}; const char **p104 = new const char * [1] {"walkMinus:"}; const char **p105 = new const char * [1] {"walkIf:"}; const char **p106 = new const char * [1] {"walkIf:"}; const char **p107 = new const char * [1] {"walkFor:"}; //Define an array of semantic tables. //FORMAT SemanticTable {const char *name; long stateNumber; const char *action; long size; const char **parameters; long gotoTableNumber;} RawSemanticTable *semanticTables = new RawSemanticTable [13] { {"SemanticTable", 95, "buildTree", 1, p95, 88}, {"SemanticTable", 96, "buildTree", 1, p96, 91}, {"SemanticTable", 97, "buildTree", 1, p97, 91}, {"SemanticTable", 98, "buildTree", 1, p98, 87}, {"SemanticTable", 99, "buildTree", 1, p99, 87}, {"SemanticTable", 100, "buildTree", 1, p100, 87}, {"SemanticTable", 101, "buildTree", 1, p101, 94}, {"SemanticTable", 102, "buildTree", 1, p102, 92}, {"SemanticTable", 103, "buildTree", 1, p103, 93}, {"SemanticTable", 104, "buildTree", 1, p104, 93}, {"SemanticTable", 105, "buildTree", 1, p105, 94}, {"SemanticTable", 106, "buildTree", 1, p106, 89}, {"SemanticTable", 107, "buildTree", 1, p107, 89} }; RawAcceptTable *acceptTable = new RawAcceptTable {"AcceptTable", 108}; ParserTables *parserTables = new ParserTables; ParserTables rawParserTables = { 1, keywords, 51, readaheadTables, 13, readbackTables, 23, shiftbackTables, 8, reduceTables, 13, semanticTables, acceptTable}; copy (parserTables, &rawParserTables); return parserTables; } void deleteParserTables (ParserTables *parserTable) { for (long index = 0; index < parserTable->readaheadTablesSize; index++) { delete [] parserTable->readaheadTables [index].triples; } delete [] parserTable->readaheadTables; for (long index = 0; index < parserTable->readbackTablesSize; index++) { delete [] parserTable->readbackTables [index].triples; } delete [] parserTable->readbackTables; delete [] parserTable->shiftbackTables; for (long index = 0; index < parserTable->reduceTablesSize; index++) { delete [] parserTable->reduceTables [index].triples; } delete [] parserTable->reduceTables; for (long index = 0; index < parserTable->semanticTablesSize; index++) { delete [] parserTable->semanticTables [index].parameters; } delete [] parserTable->semanticTables; } //JAVA: LIST VERSION --------------> static List rawParserTables () {return asList ( asList (keywords, "if for else"), asList ("ReadaheadTable", 0, asList ("for", "RS", 3), asList ("(", "RS", 5), asList ("walkInteger:", "RSN", 67), asList ("walkIdentifier:", "RSN", 6), asList ("if", "RS", 7), asList ("}", "L", 51), asList ("-|", "L", 51)), asList ("ReadaheadTable", 1, asList ("if", "RS", 7), asList ("walkIdentifier:", "RSN", 6), asList ("for", "RS", 3), asList ("walkInteger:", "RSN", 67), asList ("(", "RS", 5), asList ("}", "L", 51), asList ("-|", "L", 51)), asList ("ReadaheadTable", 2, asList ("*", "RS", 10), asList ("/", "RS", 11), asList ("+", "L", 65), asList ("-", "L", 65), asList ("<", "L", 65), asList (">", "L", 65), asList ("==", "L", 65), asList ("?", "L", 65), asList (")", "L", 65), asList (",", "L", 65), asList (";", "L", 65), asList (":", "L", 65)), asList ("ReadaheadTable", 3, asList ("(", "RS", 12)), asList ("ReadaheadTable", 4, asList ("<", "RS", 13), asList (">", "RS", 14), asList ("==", "RS", 15), asList ("?", "RS", 16), asList (")", "L", 66), asList (",", "L", 66), asList (";", "L", 66)), asList ("ReadaheadTable", 5, asList ("walkIdentifier:", "RSN", 6), asList ("walkInteger:", "RSN", 67), asList ("(", "RS", 5)), asList ("ReadaheadTable", 6, asList ("=", "RS", 18), asList ("(", "RS", 19), asList ("*", "L", 67), asList ("/", "L", 67), asList ("+", "L", 67), asList ("-", "L", 67), asList ("<", "L", 67), asList (">", "L", 67), asList ("==", "L", 67), asList ("?", "L", 67), asList (")", "L", 67), asList (",", "L", 67), asList (";", "L", 67), asList (":", "L", 67)), asList ("ReadaheadTable", 7, asList ("(", "RS", 20)), asList ("ReadaheadTable", 8, asList ("+", "RS", 21), asList ("-", "RS", 22), asList ("<", "L", 69), asList (">", "L", 69), asList ("==", "L", 69), asList ("?", "L", 69), asList (")", "L", 69), asList (",", "L", 69), asList (";", "L", 69), asList (":", "L", 69)), asList ("ReadaheadTable", 9, asList (";", "RS", 70)), asList ("ReadaheadTable", 10, asList ("(", "RS", 5), asList ("walkInteger:", "RSN", 67), asList ("walkIdentifier:", "RSN", 23)), asList ("ReadaheadTable", 11, asList ("(", "RS", 5), asList ("walkInteger:", "RSN", 67), asList ("walkIdentifier:", "RSN", 23)), asList ("ReadaheadTable", 12, asList ("(", "RS", 5), asList ("walkIdentifier:", "RSN", 6), asList ("walkInteger:", "RSN", 67)), asList ("ReadaheadTable", 13, asList ("walkIdentifier:", "RSN", 23), asList ("walkInteger:", "RSN", 67), asList ("(", "RS", 5)), asList ("ReadaheadTable", 14, asList ("walkIdentifier:", "RSN", 23), asList ("walkInteger:", "RSN", 67), asList ("(", "RS", 5)), asList ("ReadaheadTable", 15, asList ("walkIdentifier:", "RSN", 23), asList ("walkInteger:", "RSN", 67), asList ("(", "RS", 5)), asList ("ReadaheadTable", 16, asList ("walkIdentifier:", "RSN", 23), asList ("walkInteger:", "RSN", 67), asList ("(", "RS", 5)), asList ("ReadaheadTable", 17, asList (")", "RS", 71)), asList ("ReadaheadTable", 18, asList ("walkIdentifier:", "RSN", 6), asList ("walkInteger:", "RSN", 67), asList ("(", "RS", 5)), asList ("ReadaheadTable", 19, asList (")", "RS", 78), asList ("(", "RS", 5), asList ("walkIdentifier:", "RSN", 6), asList ("walkInteger:", "RSN", 67)), asList ("ReadaheadTable", 20, asList ("(", "RS", 5), asList ("walkIdentifier:", "RSN", 6), asList ("walkInteger:", "RSN", 67)), asList ("ReadaheadTable", 21, asList ("walkIdentifier:", "RSN", 23), asList ("(", "RS", 5), asList ("walkInteger:", "RSN", 67)), asList ("ReadaheadTable", 22, asList ("walkIdentifier:", "RSN", 23), asList ("(", "RS", 5), asList ("walkInteger:", "RSN", 67)), asList ("ReadaheadTable", 23, asList ("(", "RS", 19), asList ("*", "L", 67), asList ("/", "L", 67), asList ("+", "L", 67), asList ("-", "L", 67), asList ("<", "L", 67), asList (">", "L", 67), asList ("==", "L", 67), asList ("?", "L", 67), asList (")", "L", 67), asList (",", "L", 67), asList (";", "L", 67), asList (":", "L", 67)), asList ("ReadaheadTable", 24, asList (";", "RS", 33)), asList ("ReadaheadTable", 25, asList ("+", "RS", 21), asList ("-", "RS", 22), asList ("<", "L", 74), asList (">", "L", 74), asList ("==", "L", 74), asList ("?", "L", 74), asList (")", "L", 74), asList (",", "L", 74), asList (";", "L", 74), asList (":", "L", 74)), asList ("ReadaheadTable", 26, asList ("+", "RS", 21), asList ("-", "RS", 22), asList ("<", "L", 75), asList (">", "L", 75), asList ("==", "L", 75), asList ("?", "L", 75), asList (")", "L", 75), asList (",", "L", 75), asList (";", "L", 75), asList (":", "L", 75)), asList ("ReadaheadTable", 27, asList ("+", "RS", 21), asList ("-", "RS", 22), asList ("<", "L", 76), asList (">", "L", 76), asList ("==", "L", 76), asList ("?", "L", 76), asList (")", "L", 76), asList (",", "L", 76), asList (";", "L", 76), asList (":", "L", 76)), asList ("ReadaheadTable", 28, asList ("<", "RS", 13), asList (">", "RS", 14), asList ("==", "RS", 15), asList (":", "RS", 34)), asList ("ReadaheadTable", 29, asList (",", "RS", 35), asList (")", "RS", 78)), asList ("ReadaheadTable", 30, asList (")", "RS", 36)), asList ("ReadaheadTable", 31, asList ("*", "RS", 10), asList ("/", "RS", 11), asList ("+", "L", 79), asList ("-", "L", 79), asList ("<", "L", 79), asList (">", "L", 79), asList ("==", "L", 79), asList ("?", "L", 79), asList (")", "L", 79), asList (",", "L", 79), asList (";", "L", 79), asList (":", "L", 79)), asList ("ReadaheadTable", 32, asList ("*", "RS", 10), asList ("/", "RS", 11), asList ("+", "L", 80), asList ("-", "L", 80), asList ("<", "L", 80), asList (">", "L", 80), asList ("==", "L", 80), asList ("?", "L", 80), asList (")", "L", 80), asList (",", "L", 80), asList (";", "L", 80), asList (":", "L", 80)), asList ("ReadaheadTable", 33, asList ("(", "RS", 5), asList ("walkIdentifier:", "RSN", 6), asList ("walkInteger:", "RSN", 67)), asList ("ReadaheadTable", 34, asList ("(", "RS", 5), asList ("walkIdentifier:", "RSN", 23), asList ("walkInteger:", "RSN", 67)), asList ("ReadaheadTable", 35, asList ("walkIdentifier:", "RSN", 6), asList ("walkInteger:", "RSN", 67), asList ("(", "RS", 5)), asList ("ReadaheadTable", 36, asList ("{", "RS", 40)), asList ("ReadaheadTable", 37, asList (";", "RS", 41)), asList ("ReadaheadTable", 38, asList ("<", "RS", 13), asList (">", "RS", 14), asList ("==", "RS", 15), asList (")", "L", 81), asList (",", "L", 81), asList (";", "L", 81)), asList ("ReadaheadTable", 39, asList (",", "RS", 35), asList (")", "RS", 78)), asList ("ReadaheadTable", 40, asList ("for", "RS", 3), asList ("walkInteger:", "RSN", 67), asList ("(", "RS", 5), asList ("walkIdentifier:", "RSN", 6), asList ("if", "RS", 7), asList ("}", "L", 51), asList ("-|", "L", 51)), asList ("ReadaheadTable", 41, asList ("walkIdentifier:", "RSN", 6), asList ("walkInteger:", "RSN", 67), asList ("(", "RS", 5)), asList ("ReadaheadTable", 42, asList ("}", "RS", 44)), asList ("ReadaheadTable", 43, asList (")", "RS", 45)), asList ("ReadaheadTable", 44, asList ("else", "RS", 46), asList ("if", "L", 52), asList ("for", "L", 52), asList ("walkInteger:", "L", 52), asList ("walkIdentifier:", "L", 52), asList ("(", "L", 52), asList ("}", "L", 52), asList ("-|", "L", 52)), asList ("ReadaheadTable", 45, asList ("{", "RS", 47)), asList ("ReadaheadTable", 46, asList ("{", "RS", 48)), asList ("ReadaheadTable", 47, asList ("for", "RS", 3), asList ("(", "RS", 5), asList ("walkInteger:", "RSN", 67), asList ("walkIdentifier:", "RSN", 6), asList ("if", "RS", 7), asList ("}", "L", 51), asList ("-|", "L", 51)), asList ("ReadaheadTable", 48, asList ("for", "RS", 3), asList ("(", "RS", 5), asList ("walkInteger:", "RSN", 67), asList ("walkIdentifier:", "RSN", 6), asList ("if", "RS", 7), asList ("}", "L", 51), asList ("-|", "L", 51)), asList ("ReadaheadTable", 49, asList ("}", "RS", 82)), asList ("ReadaheadTable", 50, asList ("}", "RS", 52)), asList ("ReadbackTable", 51, asList (asList ("Statement", 1), "RSN", 53), asList (asList ("|-", 0), "L", 95), asList (asList ("{", 40), "L", 95), asList (asList ("{", 47), "L", 95), asList (asList ("{", 48), "L", 95)), asList ("ReadbackTable", 52, asList (asList ("}", 52), "RS", 83), asList (asList ("}", 44), "RS", 84)), asList ("ReadbackTable", 53, asList (asList ("Statement", 1), "RSN", 53), asList (asList ("|-", 0), "L", 95), asList (asList ("{", 40), "L", 95), asList (asList ("{", 47), "L", 95), asList (asList ("{", 48), "L", 95)), asList ("ReadbackTable", 54, asList (asList ("(", 19), "RS", 60), asList (asList ("Expression", 39), "RSN", 85), asList (asList ("Expression", 29), "RSN", 86)), asList ("ReadbackTable", 55, asList (asList ("Expression2", 31), "RSN", 96), asList (asList ("Expression2", 32), "RSN", 96), asList (asList ("Expression2", 2), "RSN", 96)), asList ("ReadbackTable", 56, asList (asList ("Expression2", 31), "RSN", 97), asList (asList ("Expression2", 32), "RSN", 97), asList (asList ("Expression2", 2), "RSN", 97)), asList ("ReadbackTable", 57, asList (asList ("Expression0", 38), "RSN", 98), asList (asList ("Expression0", 4), "RSN", 98), asList (asList ("Expression0", 28), "RSN", 98)), asList ("ReadbackTable", 58, asList (asList ("Expression0", 38), "RSN", 99), asList (asList ("Expression0", 4), "RSN", 99), asList (asList ("Expression0", 28), "RSN", 99)), asList ("ReadbackTable", 59, asList (asList ("Expression0", 38), "RSN", 100), asList (asList ("Expression0", 4), "RSN", 100), asList (asList ("Expression0", 28), "RSN", 100)), asList ("ReadbackTable", 60, asList (asList ("walkIdentifier:", 23), "RSN", 102), asList (asList ("walkIdentifier:", 6), "RSN", 102)), asList ("ReadbackTable", 61, asList (asList ("Expression1", 26), "RSN", 103), asList (asList ("Expression1", 27), "RSN", 103), asList (asList ("Expression1", 8), "RSN", 103), asList (asList ("Expression1", 25), "RSN", 103)), asList ("ReadbackTable", 62, asList (asList ("Expression1", 26), "RSN", 104), asList (asList ("Expression1", 27), "RSN", 104), asList (asList ("Expression1", 8), "RSN", 104), asList (asList ("Expression1", 25), "RSN", 104)), asList ("ReadbackTable", 63, asList (asList ("Expression", 39), "RSN", 85), asList (asList ("Expression", 29), "RSN", 86)), asList ("ShiftbackTable", 64, 1, 90), asList ("ShiftbackTable", 65, 1, 93), asList ("ShiftbackTable", 66, 1, 94), asList ("ShiftbackTable", 67, 1, 92), asList ("ShiftbackTable", 68, 1, 91), asList ("ShiftbackTable", 69, 1, 87), asList ("ShiftbackTable", 70, 2, 89), asList ("ShiftbackTable", 71, 3, 92), asList ("ShiftbackTable", 72, 2, 55), asList ("ShiftbackTable", 73, 2, 56), asList ("ShiftbackTable", 74, 2, 57), asList ("ShiftbackTable", 75, 2, 58), asList ("ShiftbackTable", 76, 2, 59), asList ("ShiftbackTable", 77, 3, 101), asList ("ShiftbackTable", 78, 1, 54), asList ("ShiftbackTable", 79, 2, 61), asList ("ShiftbackTable", 80, 2, 62), asList ("ShiftbackTable", 81, 5, 105), asList ("ShiftbackTable", 82, 11, 107), asList ("ShiftbackTable", 83, 10, 106), asList ("ShiftbackTable", 84, 6, 106), asList ("ShiftbackTable", 85, 1, 63), asList ("ShiftbackTable", 86, 1, 60), asList ("ReduceTable", 87, "Expression0", asList (0, "RSN", 4), asList (1, "RSN", 4), asList (5, "RSN", 4), asList (12, "RSN", 4), asList (16, "RSN", 28), asList (18, "RSN", 4), asList (19, "RSN", 4), asList (20, "RSN", 4), asList (33, "RSN", 4), asList (34, "RSN", 38), asList (35, "RSN", 4), asList (40, "RSN", 4), asList (41, "RSN", 4), asList (47, "RSN", 4), asList (48, "RSN", 4)), asList ("ReduceTable", 88, "Statements", asList (0, "RSN", 64), asList (40, "RSN", 42), asList (47, "RSN", 49), asList (48, "RSN", 50)), asList ("ReduceTable", 89, "Statement", asList (0, "RSN", 1), asList (1, "RSN", 1), asList (40, "RSN", 1), asList (47, "RSN", 1), asList (48, "RSN", 1)), asList ("ReduceTable", 90, "Grammar", asList (0, "RSN", 108)), asList ("ReduceTable", 91, "Expression2", asList (0, "RSN", 2), asList (1, "RSN", 2), asList (5, "RSN", 2), asList (12, "RSN", 2), asList (13, "RSN", 2), asList (14, "RSN", 2), asList (15, "RSN", 2), asList (16, "RSN", 2), asList (18, "RSN", 2), asList (19, "RSN", 2), asList (20, "RSN", 2), asList (21, "RSN", 31), asList (22, "RSN", 32), asList (33, "RSN", 2), asList (34, "RSN", 2), asList (35, "RSN", 2), asList (40, "RSN", 2), asList (41, "RSN", 2), asList (47, "RSN", 2), asList (48, "RSN", 2)), asList ("ReduceTable", 92, "Expression3", asList (0, "RSN", 68), asList (1, "RSN", 68), asList (5, "RSN", 68), asList (10, "RSN", 72), asList (11, "RSN", 73), asList (12, "RSN", 68), asList (13, "RSN", 68), asList (14, "RSN", 68), asList (15, "RSN", 68), asList (16, "RSN", 68), asList (18, "RSN", 68), asList (19, "RSN", 68), asList (20, "RSN", 68), asList (21, "RSN", 68), asList (22, "RSN", 68), asList (33, "RSN", 68), asList (34, "RSN", 68), asList (35, "RSN", 68), asList (40, "RSN", 68), asList (41, "RSN", 68), asList (47, "RSN", 68), asList (48, "RSN", 68)), asList ("ReduceTable", 93, "Expression1", asList (0, "RSN", 8), asList (1, "RSN", 8), asList (5, "RSN", 8), asList (12, "RSN", 8), asList (13, "RSN", 25), asList (14, "RSN", 26), asList (15, "RSN", 27), asList (16, "RSN", 8), asList (18, "RSN", 8), asList (19, "RSN", 8), asList (20, "RSN", 8), asList (33, "RSN", 8), asList (34, "RSN", 8), asList (35, "RSN", 8), asList (40, "RSN", 8), asList (41, "RSN", 8), asList (47, "RSN", 8), asList (48, "RSN", 8)), asList ("ReduceTable", 94, "Expression", asList (0, "RSN", 9), asList (1, "RSN", 9), asList (5, "RSN", 17), asList (12, "RSN", 24), asList (18, "RSN", 77), asList (19, "RSN", 29), asList (20, "RSN", 30), asList (33, "RSN", 37), asList (35, "RSN", 39), asList (40, "RSN", 9), asList (41, "RSN", 43), asList (47, "RSN", 9), asList (48, "RSN", 9)), asList ("SemanticTable", 95, buildTree, asList ("walkList:"), 88), asList ("SemanticTable", 96, buildTree, asList ("walkMultiply:"), 91), asList ("SemanticTable", 97, buildTree, asList ("walkDivide:"), 91), asList ("SemanticTable", 98, buildTree, asList ("walkLess:"), 87), asList ("SemanticTable", 99, buildTree, asList ("walkGreater:"), 87), asList ("SemanticTable", 100, buildTree, asList ("walkEqual:"), 87), asList ("SemanticTable", 101, buildTree, asList ("walkAssign:"), 94), asList ("SemanticTable", 102, buildTree, asList ("walkSend:"), 92), asList ("SemanticTable", 103, buildTree, asList ("walkPlus:"), 93), asList ("SemanticTable", 104, buildTree, asList ("walkMinus:"), 93), asList ("SemanticTable", 105, buildTree, asList ("walkIf:"), 94), asList ("SemanticTable", 106, buildTree, asList ("walkIf:"), 89), asList ("SemanticTable", 107, buildTree, asList ("walkFor:"), 89), asList ("AcceptTable", 108));}