rush-shell 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (210) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +21 -0
  3. data/README.md +94 -0
  4. data/exe/rush +10 -0
  5. data/grammar/shell.y +272 -0
  6. data/grammar/shell.y.output +2354 -0
  7. data/lib/rush/alias_table.rb +48 -0
  8. data/lib/rush/assignments.rb +48 -0
  9. data/lib/rush/ast/and_or.rb +37 -0
  10. data/lib/rush/ast/assignment.rb +20 -0
  11. data/lib/rush/ast/brace_group.rb +25 -0
  12. data/lib/rush/ast/case_node.rb +41 -0
  13. data/lib/rush/ast/condition_loop.rb +34 -0
  14. data/lib/rush/ast/for_node.rb +34 -0
  15. data/lib/rush/ast/function_def.rb +26 -0
  16. data/lib/rush/ast/if_node.rb +29 -0
  17. data/lib/rush/ast/list.rb +47 -0
  18. data/lib/rush/ast/node.rb +17 -0
  19. data/lib/rush/ast/param_ref.rb +59 -0
  20. data/lib/rush/ast/pipeline.rb +45 -0
  21. data/lib/rush/ast/redirect.rb +21 -0
  22. data/lib/rush/ast/redirected.rb +26 -0
  23. data/lib/rush/ast/simple_command.rb +62 -0
  24. data/lib/rush/ast/subshell.rb +24 -0
  25. data/lib/rush/ast/until_node.rb +18 -0
  26. data/lib/rush/ast/while_node.rb +18 -0
  27. data/lib/rush/ast/word.rb +44 -0
  28. data/lib/rush/ast/word_segment.rb +203 -0
  29. data/lib/rush/background_runner.rb +68 -0
  30. data/lib/rush/bracket_expression.rb +107 -0
  31. data/lib/rush/bracket_scanner.rb +64 -0
  32. data/lib/rush/builtins/alias_.rb +74 -0
  33. data/lib/rush/builtins/base.rb +96 -0
  34. data/lib/rush/builtins/break_.rb +19 -0
  35. data/lib/rush/builtins/cd.rb +127 -0
  36. data/lib/rush/builtins/colon.rb +16 -0
  37. data/lib/rush/builtins/command.rb +137 -0
  38. data/lib/rush/builtins/command_options.rb +103 -0
  39. data/lib/rush/builtins/continue_.rb +19 -0
  40. data/lib/rush/builtins/declare.rb +27 -0
  41. data/lib/rush/builtins/defaults.rb +28 -0
  42. data/lib/rush/builtins/dot.rb +52 -0
  43. data/lib/rush/builtins/echo.rb +37 -0
  44. data/lib/rush/builtins/eval.rb +25 -0
  45. data/lib/rush/builtins/exec.rb +54 -0
  46. data/lib/rush/builtins/exit.rb +45 -0
  47. data/lib/rush/builtins/export.rb +20 -0
  48. data/lib/rush/builtins/false_.rb +16 -0
  49. data/lib/rush/builtins/fd_operand.rb +87 -0
  50. data/lib/rush/builtins/getopts.rb +96 -0
  51. data/lib/rush/builtins/hash.rb +64 -0
  52. data/lib/rush/builtins/job_resume.rb +107 -0
  53. data/lib/rush/builtins/jobs.rb +86 -0
  54. data/lib/rush/builtins/kill.rb +152 -0
  55. data/lib/rush/builtins/local.rb +40 -0
  56. data/lib/rush/builtins/loop_jump.rb +45 -0
  57. data/lib/rush/builtins/printf.rb +39 -0
  58. data/lib/rush/builtins/printf_formatter.rb +111 -0
  59. data/lib/rush/builtins/pwd.rb +17 -0
  60. data/lib/rush/builtins/read.rb +93 -0
  61. data/lib/rush/builtins/read_input.rb +146 -0
  62. data/lib/rush/builtins/readonly.rb +20 -0
  63. data/lib/rush/builtins/registry.rb +36 -0
  64. data/lib/rush/builtins/return_.rb +24 -0
  65. data/lib/rush/builtins/set.rb +101 -0
  66. data/lib/rush/builtins/shift.rb +35 -0
  67. data/lib/rush/builtins/test_.rb +48 -0
  68. data/lib/rush/builtins/test_context.rb +24 -0
  69. data/lib/rush/builtins/test_expr.rb +74 -0
  70. data/lib/rush/builtins/test_grammar.rb +117 -0
  71. data/lib/rush/builtins/test_operators.rb +94 -0
  72. data/lib/rush/builtins/test_tokens.rb +69 -0
  73. data/lib/rush/builtins/times.rb +35 -0
  74. data/lib/rush/builtins/trap.rb +85 -0
  75. data/lib/rush/builtins/true_.rb +16 -0
  76. data/lib/rush/builtins/type_.rb +28 -0
  77. data/lib/rush/builtins/ulimit.rb +258 -0
  78. data/lib/rush/builtins/umask.rb +81 -0
  79. data/lib/rush/builtins/unalias.rb +46 -0
  80. data/lib/rush/builtins/unset.rb +40 -0
  81. data/lib/rush/builtins/wait.rb +127 -0
  82. data/lib/rush/cli.rb +31 -0
  83. data/lib/rush/command_assignments.rb +56 -0
  84. data/lib/rush/command_lookup.rb +228 -0
  85. data/lib/rush/command_resolution.rb +115 -0
  86. data/lib/rush/command_runner.rb +152 -0
  87. data/lib/rush/command_text.rb +140 -0
  88. data/lib/rush/environment.rb +134 -0
  89. data/lib/rush/errexit_context.rb +68 -0
  90. data/lib/rush/error_policy.rb +64 -0
  91. data/lib/rush/errors.rb +100 -0
  92. data/lib/rush/escape_table.rb +22 -0
  93. data/lib/rush/escaped_bracket.rb +49 -0
  94. data/lib/rush/executor.rb +164 -0
  95. data/lib/rush/exit_trap.rb +109 -0
  96. data/lib/rush/expansion/arithmetic/evaluator.rb +43 -0
  97. data/lib/rush/expansion/arithmetic/nodes.rb +180 -0
  98. data/lib/rush/expansion/arithmetic/number.rb +104 -0
  99. data/lib/rush/expansion/arithmetic/parser.rb +155 -0
  100. data/lib/rush/expansion/arithmetic/tokenizer.rb +56 -0
  101. data/lib/rush/expansion/arithmetic_expander.rb +38 -0
  102. data/lib/rush/expansion/command_substitution.rb +87 -0
  103. data/lib/rush/expansion/field_part.rb +12 -0
  104. data/lib/rush/expansion/field_splitter.rb +23 -0
  105. data/lib/rush/expansion/glob_expander.rb +48 -0
  106. data/lib/rush/expansion/ifs.rb +62 -0
  107. data/lib/rush/expansion/ifs_scanner.rb +168 -0
  108. data/lib/rush/expansion/parameter_expander.rb +204 -0
  109. data/lib/rush/expansion/parameter_forms.rb +22 -0
  110. data/lib/rush/expansion/pattern_removal.rb +63 -0
  111. data/lib/rush/expansion/pipeline.rb +124 -0
  112. data/lib/rush/expansion/read_char.rb +13 -0
  113. data/lib/rush/expansion/read_field_scanner.rb +159 -0
  114. data/lib/rush/expansion/read_splitter.rb +40 -0
  115. data/lib/rush/expansion/resolver.rb +23 -0
  116. data/lib/rush/expansion/tilde_expander.rb +102 -0
  117. data/lib/rush/external.rb +75 -0
  118. data/lib/rush/fd_entry.rb +60 -0
  119. data/lib/rush/for_runner.rb +50 -0
  120. data/lib/rush/function_frame.rb +30 -0
  121. data/lib/rush/function_runner.rb +37 -0
  122. data/lib/rush/function_table.rb +35 -0
  123. data/lib/rush/getopts_parser.rb +195 -0
  124. data/lib/rush/getopts_state.rb +104 -0
  125. data/lib/rush/here_doc.rb +57 -0
  126. data/lib/rush/interactive_signals.rb +26 -0
  127. data/lib/rush/invocation.rb +190 -0
  128. data/lib/rush/io_table.rb +94 -0
  129. data/lib/rush/job_control.rb +197 -0
  130. data/lib/rush/job_report.rb +45 -0
  131. data/lib/rush/job_spec.rb +51 -0
  132. data/lib/rush/job_table/control.rb +103 -0
  133. data/lib/rush/job_table/interruptible_wait.rb +70 -0
  134. data/lib/rush/job_table/job.rb +181 -0
  135. data/lib/rush/job_table.rb +194 -0
  136. data/lib/rush/lexer/alias_expander.rb +129 -0
  137. data/lib/rush/lexer/braced_reader.rb +86 -0
  138. data/lib/rush/lexer/case_frame.rb +114 -0
  139. data/lib/rush/lexer/case_tracker.rb +146 -0
  140. data/lib/rush/lexer/dollar_scanner.rb +53 -0
  141. data/lib/rush/lexer/double_quote_scanner.rb +71 -0
  142. data/lib/rush/lexer/heredoc_body.rb +91 -0
  143. data/lib/rush/lexer/heredoc_reader.rb +93 -0
  144. data/lib/rush/lexer/lex_state.rb +128 -0
  145. data/lib/rush/lexer/operator_table.rb +32 -0
  146. data/lib/rush/lexer/param_scanner.rb +43 -0
  147. data/lib/rush/lexer/paren_reader.rb +113 -0
  148. data/lib/rush/lexer/paren_regions.rb +74 -0
  149. data/lib/rush/lexer/quote_skips.rb +77 -0
  150. data/lib/rush/lexer/quoted_word.rb +67 -0
  151. data/lib/rush/lexer/scanner_predicates.rb +20 -0
  152. data/lib/rush/lexer/source_lines.rb +43 -0
  153. data/lib/rush/lexer/substitution_reader.rb +77 -0
  154. data/lib/rush/lexer/token_classifier.rb +144 -0
  155. data/lib/rush/lexer/token_predicates.rb +23 -0
  156. data/lib/rush/lexer/word_scanner.rb +134 -0
  157. data/lib/rush/lexer.rb +174 -0
  158. data/lib/rush/loop_control_handling.rb +29 -0
  159. data/lib/rush/loop_nesting.rb +50 -0
  160. data/lib/rush/loop_runner.rb +55 -0
  161. data/lib/rush/option_cluster.rb +39 -0
  162. data/lib/rush/options.rb +76 -0
  163. data/lib/rush/param_text.rb +39 -0
  164. data/lib/rush/parser.rb +1213 -0
  165. data/lib/rush/parser_support.rb +112 -0
  166. data/lib/rush/pattern_scanner.rb +35 -0
  167. data/lib/rush/pending_signals.rb +57 -0
  168. data/lib/rush/pipeline_runner.rb +173 -0
  169. data/lib/rush/pipeline_statuses.rb +45 -0
  170. data/lib/rush/positional.rb +45 -0
  171. data/lib/rush/posix_pattern.rb +78 -0
  172. data/lib/rush/program_input.rb +89 -0
  173. data/lib/rush/program_reader.rb +69 -0
  174. data/lib/rush/program_session.rb +83 -0
  175. data/lib/rush/prompt.rb +52 -0
  176. data/lib/rush/redirect_scope.rb +64 -0
  177. data/lib/rush/redirection/dup_redirect.rb +58 -0
  178. data/lib/rush/redirection/file_redirect.rb +50 -0
  179. data/lib/rush/redirection/here_doc_redirect.rb +17 -0
  180. data/lib/rush/redirection/registry.rb +53 -0
  181. data/lib/rush/repl.rb +133 -0
  182. data/lib/rush/runtime_type_checks.rb +16 -0
  183. data/lib/rush/scope.rb +79 -0
  184. data/lib/rush/segment_buffer.rb +47 -0
  185. data/lib/rush/shell_parameters.rb +77 -0
  186. data/lib/rush/shell_pattern.rb +80 -0
  187. data/lib/rush/shell_state.rb +163 -0
  188. data/lib/rush/shell_variables.rb +67 -0
  189. data/lib/rush/signal_report.rb +41 -0
  190. data/lib/rush/signals.rb +68 -0
  191. data/lib/rush/source.rb +82 -0
  192. data/lib/rush/source_line_counter.rb +41 -0
  193. data/lib/rush/source_runner.rb +47 -0
  194. data/lib/rush/startup.rb +75 -0
  195. data/lib/rush/status.rb +93 -0
  196. data/lib/rush/stop_relay.rb +32 -0
  197. data/lib/rush/subshell_runner.rb +70 -0
  198. data/lib/rush/system_calls/collation.rb +155 -0
  199. data/lib/rush/system_calls/file_tests.rb +95 -0
  200. data/lib/rush/system_calls/process_control.rb +165 -0
  201. data/lib/rush/system_calls/process_identity.rb +43 -0
  202. data/lib/rush/system_calls/resource_limits.rb +51 -0
  203. data/lib/rush/system_calls.rb +206 -0
  204. data/lib/rush/terminal.rb +126 -0
  205. data/lib/rush/trap_runner.rb +169 -0
  206. data/lib/rush/trap_table.rb +49 -0
  207. data/lib/rush/umask_mode.rb +133 -0
  208. data/lib/rush/version.rb +6 -0
  209. data/lib/rush.rb +190 -0
  210. metadata +527 -0
@@ -0,0 +1,1213 @@
1
+ #
2
+ # DO NOT MODIFY!!!!
3
+ # This file is automatically generated by Racc 1.8.1
4
+ # from Racc grammar file "shell.y".
5
+ #
6
+
7
+ require 'racc/parser.rb'
8
+
9
+
10
+ require_relative 'parser_support'
11
+
12
+ module Rush
13
+ class Parser < Racc::Parser
14
+
15
+ module_eval(<<'...end shell.y/module_eval...', 'shell.y', 271)
16
+
17
+ include Rush::ParserSupport
18
+ ...end shell.y/module_eval...
19
+ ##### State transition tables begin ###
20
+
21
+ racc_action_table = [
22
+ 17, 35, 37, 139, 138, 137, 43, 44, 45, 39,
23
+ 40, 46, 47, 31, 55, 56, 54, 48, 25, 53,
24
+ 12, 27, 28, 3, 150, 29, 133, 142, 30, 3,
25
+ 3, 160, 26, 159, 150, 41, 42, 17, 35, 37,
26
+ -105, 55, 56, 43, 44, 45, 39, 40, 46, 47,
27
+ 31, 55, 56, 145, 54, 25, 149, 53, 27, 28,
28
+ 107, 107, 29, 155, 3, 30, 149, 55, 56, 26,
29
+ 3, 5, 41, 42, 72, 74, 37, 160, 48, 166,
30
+ 43, 44, 45, 39, 40, 46, 47, 77, 49, 37,
31
+ 102, 139, 138, 43, 44, 45, 39, 40, 46, 47,
32
+ 3, 107, 57, 61, 3, 3, 3, 3, 68, 41,
33
+ 42, 69, 3, 80, 81, 83, 83, 83, 17, 35,
34
+ 37, 48, 41, 42, 43, 44, 45, 39, 40, 46,
35
+ 47, 31, 83, 83, 83, 83, 25, 3, 12, 27,
36
+ 28, 3, 3, 29, 57, 96, 30, 97, 100, 102,
37
+ 26, 102, 3, 41, 42, 17, 35, 37, 110, 3,
38
+ 3, 43, 44, 45, 39, 40, 46, 47, 31, 102,
39
+ 123, 3, 125, 25, 3, 12, 27, 28, 3, 48,
40
+ 29, 130, 3, 30, 102, 48, 151, 26, 3, 3,
41
+ 41, 42, 17, 35, 37, 102, 158, 150, 43, 44,
42
+ 45, 39, 40, 46, 47, 31, 162, 3, 165, 3,
43
+ 25, 168, 12, 27, 28, 3, 3, 29, 3, 175,
44
+ 30, 3, 3, 77, 26, 37, nil, 41, 42, 43,
45
+ 44, 45, 39, 40, 46, 47, 113, nil, 37, nil,
46
+ nil, nil, 43, 44, 45, 39, 40, 46, 47, nil,
47
+ nil, nil, nil, nil, nil, 17, 35, 37, 41, 42,
48
+ nil, 43, 44, 45, 39, 40, 46, 47, 31, nil,
49
+ nil, 41, 42, 25, nil, 12, 27, 28, nil, nil,
50
+ 29, nil, nil, 30, nil, nil, nil, 26, nil, nil,
51
+ 41, 42, 17, 35, 37, nil, nil, nil, 43, 44,
52
+ 45, 39, 40, 46, 47, 31, nil, nil, nil, nil,
53
+ 25, nil, 12, 27, 28, nil, nil, 29, nil, nil,
54
+ 30, nil, nil, nil, 26, nil, nil, 41, 42, 17,
55
+ 35, 37, nil, nil, nil, 43, 44, 45, 39, 40,
56
+ 46, 47, 31, nil, 31, nil, nil, 25, nil, 25,
57
+ 27, 28, 27, 28, 29, nil, 29, 30, nil, 30,
58
+ 113, 26, 37, 26, 41, 42, 43, 44, 45, 39,
59
+ 40, 46, 47, nil, nil, nil, nil, nil, nil, 17,
60
+ 35, 37, nil, nil, nil, 43, 44, 45, 39, 40,
61
+ 46, 47, 31, nil, nil, 41, 42, 25, nil, 12,
62
+ 27, 28, nil, nil, 29, nil, nil, 30, nil, nil,
63
+ nil, 26, nil, nil, 41, 42, 17, 35, 37, nil,
64
+ nil, nil, 43, 44, 45, 39, 40, 46, 47, 31,
65
+ nil, nil, nil, nil, 25, nil, 12, 27, 28, nil,
66
+ nil, 29, nil, nil, 30, nil, 169, nil, 26, nil,
67
+ nil, 41, 42, 17, 35, 37, nil, nil, nil, 43,
68
+ 44, 45, 39, 40, 46, 47, 31, nil, nil, nil,
69
+ nil, 25, nil, 12, 27, 28, nil, nil, 29, nil,
70
+ nil, 30, nil, 176, nil, 26, 37, nil, 41, 42,
71
+ 43, 44, 45, 39, 40, 46, 47, 37, nil, nil,
72
+ nil, 43, 44, 45, 39, 40, 46, 47, 43, 44,
73
+ 45, 39, 40, 46, 47, nil, nil, nil, nil, 41,
74
+ 42, nil, nil, nil, nil, nil, nil, nil, nil, nil,
75
+ 41, 42, nil, nil, nil, nil, nil, 41, 42 ]
76
+
77
+ racc_action_check = [
78
+ 2, 2, 2, 126, 126, 126, 2, 2, 2, 2,
79
+ 2, 2, 2, 2, 9, 9, 8, 108, 2, 8,
80
+ 2, 2, 2, 99, 135, 2, 123, 132, 2, 123,
81
+ 132, 148, 2, 148, 143, 2, 2, 12, 12, 12,
82
+ 108, 91, 91, 12, 12, 12, 12, 12, 12, 12,
83
+ 12, 98, 98, 135, 99, 12, 135, 99, 12, 12,
84
+ 123, 132, 12, 143, 0, 12, 143, 128, 128, 12,
85
+ 67, 1, 12, 12, 32, 32, 32, 161, 4, 161,
86
+ 32, 32, 32, 32, 32, 32, 32, 33, 5, 33,
87
+ 67, 167, 167, 33, 33, 33, 33, 33, 33, 33,
88
+ 6, 67, 11, 17, 25, 26, 27, 28, 29, 32,
89
+ 32, 30, 31, 39, 40, 41, 42, 43, 51, 51,
90
+ 51, 51, 33, 33, 51, 51, 51, 51, 51, 51,
91
+ 51, 51, 44, 45, 46, 47, 51, 55, 51, 51,
92
+ 51, 56, 57, 51, 58, 61, 51, 62, 64, 65,
93
+ 51, 66, 69, 51, 51, 52, 52, 52, 70, 96,
94
+ 102, 52, 52, 52, 52, 52, 52, 52, 52, 105,
95
+ 106, 107, 109, 52, 110, 52, 52, 52, 119, 120,
96
+ 52, 121, 125, 52, 131, 134, 136, 52, 138, 139,
97
+ 52, 52, 63, 63, 63, 141, 144, 149, 63, 63,
98
+ 63, 63, 63, 63, 63, 63, 152, 159, 160, 162,
99
+ 63, 163, 63, 63, 63, 166, 168, 63, 169, 170,
100
+ 63, 175, 176, 71, 63, 71, nil, 63, 63, 71,
101
+ 71, 71, 71, 71, 71, 71, 75, nil, 75, nil,
102
+ nil, nil, 75, 75, 75, 75, 75, 75, 75, nil,
103
+ nil, nil, nil, nil, nil, 92, 92, 92, 71, 71,
104
+ nil, 92, 92, 92, 92, 92, 92, 92, 92, nil,
105
+ nil, 75, 75, 92, nil, 92, 92, 92, nil, nil,
106
+ 92, nil, nil, 92, nil, nil, nil, 92, nil, nil,
107
+ 92, 92, 93, 93, 93, nil, nil, nil, 93, 93,
108
+ 93, 93, 93, 93, 93, 93, nil, nil, nil, nil,
109
+ 93, nil, 93, 93, 93, nil, nil, 93, nil, nil,
110
+ 93, nil, nil, nil, 93, nil, nil, 93, 93, 94,
111
+ 94, 94, nil, nil, nil, 94, 94, 94, 94, 94,
112
+ 94, 94, 94, nil, 117, nil, nil, 94, nil, 117,
113
+ 94, 94, 117, 117, 94, nil, 117, 94, nil, 117,
114
+ 111, 94, 111, 117, 94, 94, 111, 111, 111, 111,
115
+ 111, 111, 111, nil, nil, nil, nil, nil, nil, 118,
116
+ 118, 118, nil, nil, nil, 118, 118, 118, 118, 118,
117
+ 118, 118, 118, nil, nil, 111, 111, 118, nil, 118,
118
+ 118, 118, nil, nil, 118, nil, nil, 118, nil, nil,
119
+ nil, 118, nil, nil, 118, 118, 164, 164, 164, nil,
120
+ nil, nil, 164, 164, 164, 164, 164, 164, 164, 164,
121
+ nil, nil, nil, nil, 164, nil, 164, 164, 164, nil,
122
+ nil, 164, nil, nil, 164, nil, 164, nil, 164, nil,
123
+ nil, 164, 164, 171, 171, 171, nil, nil, nil, 171,
124
+ 171, 171, 171, 171, 171, 171, 171, nil, nil, nil,
125
+ nil, 171, nil, 171, 171, 171, nil, nil, 171, nil,
126
+ nil, 171, nil, 171, nil, 171, 15, nil, 171, 171,
127
+ 15, 15, 15, 15, 15, 15, 15, 59, nil, nil,
128
+ nil, 59, 59, 59, 59, 59, 59, 59, 37, 37,
129
+ 37, 37, 37, 37, 37, nil, nil, nil, nil, 15,
130
+ 15, nil, nil, nil, nil, nil, nil, nil, nil, nil,
131
+ 59, 59, nil, nil, nil, nil, nil, 37, 37 ]
132
+
133
+ racc_action_pointer = [
134
+ 59, 71, -2, nil, 73, 88, 95, nil, -20, 8,
135
+ nil, 69, 35, nil, nil, 482, nil, 69, nil, nil,
136
+ nil, nil, nil, nil, nil, 99, 100, 101, 102, 79,
137
+ 109, 107, 72, 85, nil, nil, nil, 500, nil, 111,
138
+ 112, 113, 114, 115, 130, 131, 132, 133, nil, nil,
139
+ nil, 116, 153, nil, nil, 132, 136, 137, 111, 493,
140
+ nil, 110, 126, 190, 113, 124, 126, 65, nil, 147,
141
+ 142, 221, nil, nil, nil, 234, nil, nil, nil, nil,
142
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
143
+ nil, 35, 253, 290, 327, nil, 154, nil, 45, 18,
144
+ nil, nil, 155, nil, nil, 144, 142, 166, 12, 144,
145
+ 169, 358, nil, nil, nil, nil, nil, 329, 377, 173,
146
+ 174, 155, nil, 24, nil, 177, -14, nil, 61, nil,
147
+ nil, 159, 25, nil, 180, 22, 167, nil, 183, 184,
148
+ nil, 170, nil, 32, 165, nil, nil, nil, -2, 195,
149
+ nil, nil, 190, nil, nil, nil, nil, nil, nil, 202,
150
+ 206, 44, 204, 179, 414, nil, 210, 74, 211, 213,
151
+ 187, 451, nil, nil, nil, 216, 217, nil, nil ]
152
+
153
+ racc_action_default = [
154
+ -106, -107, -1, -103, -105, -107, -106, -3, -6, -8,
155
+ -9, -12, -107, -14, -16, -17, -19, -77, -23, -24,
156
+ -25, -26, -27, -28, -29, -106, -106, -106, -106, -107,
157
+ -107, -106, -74, -76, -79, -81, -87, -107, -89, -107,
158
+ -107, -107, -107, -107, -107, -107, -107, -107, -104, 179,
159
+ -2, -105, -5, -101, -102, -106, -106, -106, -13, -18,
160
+ -20, -107, -107, -107, -107, -107, -107, -106, -39, -106,
161
+ -107, -73, -78, -80, -82, -75, -83, -85, -88, -90,
162
+ -91, -92, -93, -100, -94, -95, -96, -97, -98, -99,
163
+ -4, -7, -107, -107, -107, -21, -106, -30, -69, -66,
164
+ -31, -32, -106, -33, -35, -107, -107, -106, -43, -107,
165
+ -106, -72, -84, -86, -10, -11, -15, -107, -67, -106,
166
+ -71, -107, -36, -107, -42, -106, -107, -22, -68, -70,
167
+ -34, -107, -107, -40, -43, -107, -107, -62, -106, -106,
168
+ -37, -107, -41, -107, -107, -46, -47, -49, -107, -107,
169
+ -59, -61, -107, -65, -38, -44, -48, -50, -45, -106,
170
+ -107, -107, -106, -55, -56, -60, -106, -63, -106, -106,
171
+ -57, -58, -64, -51, -52, -106, -106, -53, -54 ]
172
+
173
+ racc_goto_table = [
174
+ 2, 62, 64, 65, 66, 51, 50, 70, 60, 52,
175
+ 9, 101, 103, 104, 105, 75, 7, 136, 1, 146,
176
+ 147, 114, 115, 6, 58, 73, 76, 156, 157, 82,
177
+ 84, 85, 86, 87, 88, 89, 116, 127, 59, 67,
178
+ 132, 143, 144, 161, 118, 71, 78, 79, nil, nil,
179
+ nil, 122, 95, 111, nil, 92, 93, 94, 172, 9,
180
+ 91, nil, nil, nil, 76, 90, 108, 106, 112, 109,
181
+ 131, nil, nil, nil, nil, nil, nil, 140, 121, 141,
182
+ nil, nil, nil, nil, nil, nil, 126, 154, nil, nil,
183
+ nil, nil, nil, nil, nil, nil, 117, nil, 120, nil,
184
+ 119, nil, nil, nil, 112, nil, nil, 124, nil, nil,
185
+ nil, nil, nil, nil, 152, 153, nil, nil, nil, 129,
186
+ nil, nil, 134, nil, nil, 135, 128, nil, nil, nil,
187
+ nil, 134, nil, nil, nil, 163, nil, nil, 167, nil,
188
+ nil, nil, 170, nil, nil, nil, nil, nil, nil, nil,
189
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, 164,
190
+ nil, nil, nil, nil, nil, nil, 171, nil, 173, 174,
191
+ nil, nil, nil, nil, nil, 177, 178 ]
192
+
193
+ racc_goto_check = [
194
+ 2, 24, 24, 24, 24, 5, 2, 24, 16, 7,
195
+ 8, 25, 25, 25, 27, 39, 4, 34, 1, 31,
196
+ 32, 9, 9, 3, 10, 16, 16, 31, 32, 43,
197
+ 43, 43, 43, 43, 43, 43, 11, 13, 14, 26,
198
+ 28, 29, 30, 33, 36, 38, 41, 42, nil, nil,
199
+ nil, 25, 16, 39, nil, 2, 2, 2, 34, 8,
200
+ 8, nil, nil, nil, 16, 4, 5, 2, 16, 2,
201
+ 27, nil, nil, nil, nil, nil, nil, 25, 24, 27,
202
+ nil, nil, nil, nil, nil, nil, 24, 25, nil, nil,
203
+ nil, nil, nil, nil, nil, nil, 2, nil, 5, nil,
204
+ 7, nil, nil, nil, 16, nil, nil, 2, nil, nil,
205
+ nil, nil, nil, nil, 24, 24, nil, nil, nil, 2,
206
+ nil, nil, 5, nil, nil, 2, 8, nil, nil, nil,
207
+ nil, 5, nil, nil, nil, 24, nil, nil, 24, nil,
208
+ nil, nil, 24, nil, nil, nil, nil, nil, nil, nil,
209
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, 2,
210
+ nil, nil, nil, nil, nil, nil, 2, nil, 2, 2,
211
+ nil, nil, nil, nil, nil, 2, 2 ]
212
+
213
+ racc_goto_pointer = [
214
+ nil, 18, 0, 21, 14, -1, nil, 1, 8, -71,
215
+ 12, -58, nil, -80, 23, nil, -7, nil, nil, nil,
216
+ nil, nil, nil, nil, -24, -54, 10, -53, -83, -94,
217
+ -93, -116, -115, -106, -109, nil, -55, nil, 13, -18,
218
+ nil, 9, 10, -12 ]
219
+
220
+ racc_goto_default = [
221
+ nil, nil, 63, nil, nil, 4, 8, nil, 98, 10,
222
+ 11, 13, 14, 15, nil, 16, 34, 18, 19, 20,
223
+ 21, 22, 23, 24, nil, nil, nil, nil, nil, nil,
224
+ nil, nil, nil, 148, nil, 99, nil, 32, nil, nil,
225
+ 33, 36, 38, nil ]
226
+
227
+ racc_reduce_table = [
228
+ 0, 0, :racc_error,
229
+ 1, 41, :_reduce_1,
230
+ 3, 41, :_reduce_2,
231
+ 1, 43, :_reduce_3,
232
+ 3, 43, :_reduce_4,
233
+ 2, 44, :_reduce_5,
234
+ 1, 44, :_reduce_6,
235
+ 3, 46, :_reduce_7,
236
+ 1, 46, :_reduce_8,
237
+ 1, 48, :_reduce_9,
238
+ 4, 48, :_reduce_10,
239
+ 4, 48, :_reduce_11,
240
+ 1, 49, :_reduce_12,
241
+ 2, 49, :_reduce_13,
242
+ 1, 50, :_reduce_14,
243
+ 4, 50, :_reduce_15,
244
+ 1, 51, :_reduce_16,
245
+ 1, 51, :_reduce_17,
246
+ 2, 51, :_reduce_18,
247
+ 1, 51, :_reduce_19,
248
+ 1, 54, :_reduce_20,
249
+ 2, 54, :_reduce_21,
250
+ 5, 55, :_reduce_22,
251
+ 1, 53, :_reduce_23,
252
+ 1, 53, :_reduce_24,
253
+ 1, 53, :_reduce_25,
254
+ 1, 53, :_reduce_26,
255
+ 1, 53, :_reduce_27,
256
+ 1, 53, :_reduce_28,
257
+ 1, 53, :_reduce_29,
258
+ 3, 57, :_reduce_30,
259
+ 3, 58, :_reduce_31,
260
+ 3, 60, :_reduce_32,
261
+ 3, 61, :_reduce_33,
262
+ 3, 65, :_reduce_34,
263
+ 3, 62, :_reduce_35,
264
+ 4, 62, :_reduce_36,
265
+ 6, 62, :_reduce_37,
266
+ 7, 62, :_reduce_38,
267
+ 1, 66, :_reduce_39,
268
+ 1, 68, :_reduce_40,
269
+ 2, 68, :_reduce_41,
270
+ 2, 67, :_reduce_none,
271
+ 1, 67, :_reduce_none,
272
+ 7, 63, :_reduce_44,
273
+ 7, 63, :_reduce_45,
274
+ 6, 63, :_reduce_46,
275
+ 1, 69, :_reduce_47,
276
+ 2, 69, :_reduce_48,
277
+ 1, 70, :_reduce_49,
278
+ 2, 70, :_reduce_50,
279
+ 5, 71, :_reduce_51,
280
+ 5, 71, :_reduce_52,
281
+ 6, 71, :_reduce_53,
282
+ 6, 71, :_reduce_54,
283
+ 3, 72, :_reduce_55,
284
+ 3, 72, :_reduce_56,
285
+ 4, 72, :_reduce_57,
286
+ 4, 72, :_reduce_58,
287
+ 1, 73, :_reduce_59,
288
+ 3, 73, :_reduce_60,
289
+ 6, 59, :_reduce_61,
290
+ 5, 59, :_reduce_62,
291
+ 4, 74, :_reduce_63,
292
+ 5, 74, :_reduce_64,
293
+ 2, 74, :_reduce_65,
294
+ 2, 64, :_reduce_66,
295
+ 3, 64, :_reduce_67,
296
+ 3, 75, :_reduce_68,
297
+ 1, 75, :_reduce_69,
298
+ 2, 76, :_reduce_70,
299
+ 1, 76, :_reduce_71,
300
+ 3, 52, :_reduce_72,
301
+ 2, 52, :_reduce_73,
302
+ 1, 52, :_reduce_74,
303
+ 2, 52, :_reduce_75,
304
+ 1, 52, :_reduce_76,
305
+ 1, 80, :_reduce_77,
306
+ 1, 78, :_reduce_78,
307
+ 1, 77, :_reduce_79,
308
+ 2, 77, :_reduce_80,
309
+ 1, 77, :_reduce_81,
310
+ 2, 77, :_reduce_82,
311
+ 1, 79, :_reduce_83,
312
+ 2, 79, :_reduce_84,
313
+ 1, 79, :_reduce_85,
314
+ 2, 79, :_reduce_86,
315
+ 1, 56, :_reduce_87,
316
+ 2, 56, :_reduce_88,
317
+ 1, 56, :_reduce_89,
318
+ 2, 56, :_reduce_90,
319
+ 2, 82, :_reduce_91,
320
+ 2, 82, :_reduce_92,
321
+ 2, 81, :_reduce_93,
322
+ 2, 81, :_reduce_94,
323
+ 2, 81, :_reduce_95,
324
+ 2, 81, :_reduce_96,
325
+ 2, 81, :_reduce_97,
326
+ 2, 81, :_reduce_98,
327
+ 2, 81, :_reduce_99,
328
+ 1, 83, :_reduce_100,
329
+ 1, 47, :_reduce_101,
330
+ 1, 47, :_reduce_102,
331
+ 1, 45, :_reduce_none,
332
+ 2, 45, :_reduce_none,
333
+ 1, 42, :_reduce_none,
334
+ 0, 42, :_reduce_none ]
335
+
336
+ racc_reduce_n = 107
337
+
338
+ racc_shift_n = 179
339
+
340
+ racc_token_table = {
341
+ false => 0,
342
+ :error => 1,
343
+ :WORD => 2,
344
+ :ASSIGNMENT_WORD => 3,
345
+ :IO_NUMBER => 4,
346
+ :NEWLINE => 5,
347
+ :AND_IF => 6,
348
+ :OR_IF => 7,
349
+ :DGREAT => 8,
350
+ :LESSGREAT => 9,
351
+ :CLOBBER => 10,
352
+ :DLESS => 11,
353
+ :DLESSDASH => 12,
354
+ :GREATAND => 13,
355
+ :LESSAND => 14,
356
+ :If => 15,
357
+ :Then => 16,
358
+ :Else => 17,
359
+ :Elif => 18,
360
+ :Fi => 19,
361
+ :Lbrace => 20,
362
+ :Rbrace => 21,
363
+ :Bang => 22,
364
+ :While => 23,
365
+ :Until => 24,
366
+ :Do => 25,
367
+ :Done => 26,
368
+ :For => 27,
369
+ :In => 28,
370
+ :NAME => 29,
371
+ :Case => 30,
372
+ :Esac => 31,
373
+ :DSEMI => 32,
374
+ "|" => 33,
375
+ "(" => 34,
376
+ ")" => 35,
377
+ ";" => 36,
378
+ "<" => 37,
379
+ ">" => 38,
380
+ "&" => 39 }
381
+
382
+ racc_nt_base = 40
383
+
384
+ racc_use_result_var = true
385
+
386
+ Racc_arg = [
387
+ racc_action_table,
388
+ racc_action_check,
389
+ racc_action_default,
390
+ racc_action_pointer,
391
+ racc_goto_table,
392
+ racc_goto_check,
393
+ racc_goto_default,
394
+ racc_goto_pointer,
395
+ racc_nt_base,
396
+ racc_reduce_table,
397
+ racc_token_table,
398
+ racc_shift_n,
399
+ racc_reduce_n,
400
+ racc_use_result_var ]
401
+ Ractor.make_shareable(Racc_arg) if defined?(Ractor)
402
+
403
+ Racc_token_to_s_table = [
404
+ "$end",
405
+ "error",
406
+ "WORD",
407
+ "ASSIGNMENT_WORD",
408
+ "IO_NUMBER",
409
+ "NEWLINE",
410
+ "AND_IF",
411
+ "OR_IF",
412
+ "DGREAT",
413
+ "LESSGREAT",
414
+ "CLOBBER",
415
+ "DLESS",
416
+ "DLESSDASH",
417
+ "GREATAND",
418
+ "LESSAND",
419
+ "If",
420
+ "Then",
421
+ "Else",
422
+ "Elif",
423
+ "Fi",
424
+ "Lbrace",
425
+ "Rbrace",
426
+ "Bang",
427
+ "While",
428
+ "Until",
429
+ "Do",
430
+ "Done",
431
+ "For",
432
+ "In",
433
+ "NAME",
434
+ "Case",
435
+ "Esac",
436
+ "DSEMI",
437
+ "\"|\"",
438
+ "\"(\"",
439
+ "\")\"",
440
+ "\";\"",
441
+ "\"<\"",
442
+ "\">\"",
443
+ "\"&\"",
444
+ "$start",
445
+ "program",
446
+ "linebreak",
447
+ "complete_commands",
448
+ "complete_command",
449
+ "newline_list",
450
+ "list",
451
+ "separator_op",
452
+ "and_or",
453
+ "pipeline",
454
+ "pipe_sequence",
455
+ "command",
456
+ "simple_command",
457
+ "compound_command",
458
+ "redirect_list",
459
+ "function_definition",
460
+ "io_redirect",
461
+ "brace_group",
462
+ "subshell",
463
+ "if_clause",
464
+ "while_clause",
465
+ "until_clause",
466
+ "for_clause",
467
+ "case_clause",
468
+ "compound_list",
469
+ "do_group",
470
+ "name",
471
+ "sequential_sep",
472
+ "wordlist",
473
+ "case_list",
474
+ "case_list_ns",
475
+ "case_item",
476
+ "case_item_ns",
477
+ "patterns",
478
+ "else_part",
479
+ "term",
480
+ "separator",
481
+ "cmd_prefix",
482
+ "cmd_word",
483
+ "cmd_suffix",
484
+ "cmd_name",
485
+ "io_file",
486
+ "io_here",
487
+ "filename" ]
488
+ Ractor.make_shareable(Racc_token_to_s_table) if defined?(Ractor)
489
+
490
+ Racc_debug_parser = false
491
+
492
+ ##### State transition tables end #####
493
+
494
+ # reduce 0 omitted
495
+
496
+ module_eval(<<'.,.,', 'shell.y', 23)
497
+ def _reduce_1(val, _values, result)
498
+ result = make_list([])
499
+ result
500
+ end
501
+ .,.,
502
+
503
+ module_eval(<<'.,.,', 'shell.y', 24)
504
+ def _reduce_2(val, _values, result)
505
+ result = make_list(val[1])
506
+ result
507
+ end
508
+ .,.,
509
+
510
+ module_eval(<<'.,.,', 'shell.y', 28)
511
+ def _reduce_3(val, _values, result)
512
+ result = val[0]
513
+ result
514
+ end
515
+ .,.,
516
+
517
+ module_eval(<<'.,.,', 'shell.y', 29)
518
+ def _reduce_4(val, _values, result)
519
+ result = val[0] + val[2]
520
+ result
521
+ end
522
+ .,.,
523
+
524
+ module_eval(<<'.,.,', 'shell.y', 33)
525
+ def _reduce_5(val, _values, result)
526
+ result = terminate_list(val[0], val[1])
527
+ result
528
+ end
529
+ .,.,
530
+
531
+ module_eval(<<'.,.,', 'shell.y', 34)
532
+ def _reduce_6(val, _values, result)
533
+ result = terminate_list(val[0], ';')
534
+ result
535
+ end
536
+ .,.,
537
+
538
+ module_eval(<<'.,.,', 'shell.y', 38)
539
+ def _reduce_7(val, _values, result)
540
+ result = append_and_or(val[0], val[1], val[2])
541
+ result
542
+ end
543
+ .,.,
544
+
545
+ module_eval(<<'.,.,', 'shell.y', 39)
546
+ def _reduce_8(val, _values, result)
547
+ result = [pending_entry(val[0])]
548
+ result
549
+ end
550
+ .,.,
551
+
552
+ module_eval(<<'.,.,', 'shell.y', 43)
553
+ def _reduce_9(val, _values, result)
554
+ result = val[0]
555
+ result
556
+ end
557
+ .,.,
558
+
559
+ module_eval(<<'.,.,', 'shell.y', 44)
560
+ def _reduce_10(val, _values, result)
561
+ result = make_and_or(val[0], :and, val[3])
562
+ result
563
+ end
564
+ .,.,
565
+
566
+ module_eval(<<'.,.,', 'shell.y', 45)
567
+ def _reduce_11(val, _values, result)
568
+ result = make_and_or(val[0], :or, val[3])
569
+ result
570
+ end
571
+ .,.,
572
+
573
+ module_eval(<<'.,.,', 'shell.y', 49)
574
+ def _reduce_12(val, _values, result)
575
+ result = make_pipeline(val[0], false)
576
+ result
577
+ end
578
+ .,.,
579
+
580
+ module_eval(<<'.,.,', 'shell.y', 50)
581
+ def _reduce_13(val, _values, result)
582
+ result = make_pipeline(val[1], true)
583
+ result
584
+ end
585
+ .,.,
586
+
587
+ module_eval(<<'.,.,', 'shell.y', 54)
588
+ def _reduce_14(val, _values, result)
589
+ result = [val[0]]
590
+ result
591
+ end
592
+ .,.,
593
+
594
+ module_eval(<<'.,.,', 'shell.y', 55)
595
+ def _reduce_15(val, _values, result)
596
+ result = val[0] << val[3]
597
+ result
598
+ end
599
+ .,.,
600
+
601
+ module_eval(<<'.,.,', 'shell.y', 59)
602
+ def _reduce_16(val, _values, result)
603
+ result = val[0]
604
+ result
605
+ end
606
+ .,.,
607
+
608
+ module_eval(<<'.,.,', 'shell.y', 60)
609
+ def _reduce_17(val, _values, result)
610
+ result = val[0]
611
+ result
612
+ end
613
+ .,.,
614
+
615
+ module_eval(<<'.,.,', 'shell.y', 61)
616
+ def _reduce_18(val, _values, result)
617
+ result = make_redirected(val[0], val[1])
618
+ result
619
+ end
620
+ .,.,
621
+
622
+ module_eval(<<'.,.,', 'shell.y', 62)
623
+ def _reduce_19(val, _values, result)
624
+ result = val[0]
625
+ result
626
+ end
627
+ .,.,
628
+
629
+ module_eval(<<'.,.,', 'shell.y', 66)
630
+ def _reduce_20(val, _values, result)
631
+ result = [val[0]]
632
+ result
633
+ end
634
+ .,.,
635
+
636
+ module_eval(<<'.,.,', 'shell.y', 67)
637
+ def _reduce_21(val, _values, result)
638
+ result = val[0] << val[1]
639
+ result
640
+ end
641
+ .,.,
642
+
643
+ module_eval(<<'.,.,', 'shell.y', 74)
644
+ def _reduce_22(val, _values, result)
645
+ result = make_function(val[0], val[4])
646
+ result
647
+ end
648
+ .,.,
649
+
650
+ module_eval(<<'.,.,', 'shell.y', 78)
651
+ def _reduce_23(val, _values, result)
652
+ result = val[0]
653
+ result
654
+ end
655
+ .,.,
656
+
657
+ module_eval(<<'.,.,', 'shell.y', 79)
658
+ def _reduce_24(val, _values, result)
659
+ result = val[0]
660
+ result
661
+ end
662
+ .,.,
663
+
664
+ module_eval(<<'.,.,', 'shell.y', 80)
665
+ def _reduce_25(val, _values, result)
666
+ result = val[0]
667
+ result
668
+ end
669
+ .,.,
670
+
671
+ module_eval(<<'.,.,', 'shell.y', 81)
672
+ def _reduce_26(val, _values, result)
673
+ result = val[0]
674
+ result
675
+ end
676
+ .,.,
677
+
678
+ module_eval(<<'.,.,', 'shell.y', 82)
679
+ def _reduce_27(val, _values, result)
680
+ result = val[0]
681
+ result
682
+ end
683
+ .,.,
684
+
685
+ module_eval(<<'.,.,', 'shell.y', 83)
686
+ def _reduce_28(val, _values, result)
687
+ result = val[0]
688
+ result
689
+ end
690
+ .,.,
691
+
692
+ module_eval(<<'.,.,', 'shell.y', 84)
693
+ def _reduce_29(val, _values, result)
694
+ result = val[0]
695
+ result
696
+ end
697
+ .,.,
698
+
699
+ module_eval(<<'.,.,', 'shell.y', 88)
700
+ def _reduce_30(val, _values, result)
701
+ result = make_brace_group(val[1])
702
+ result
703
+ end
704
+ .,.,
705
+
706
+ module_eval(<<'.,.,', 'shell.y', 92)
707
+ def _reduce_31(val, _values, result)
708
+ result = make_subshell(val[1])
709
+ result
710
+ end
711
+ .,.,
712
+
713
+ module_eval(<<'.,.,', 'shell.y', 96)
714
+ def _reduce_32(val, _values, result)
715
+ result = make_while(val[1], val[2])
716
+ result
717
+ end
718
+ .,.,
719
+
720
+ module_eval(<<'.,.,', 'shell.y', 100)
721
+ def _reduce_33(val, _values, result)
722
+ result = make_until(val[1], val[2])
723
+ result
724
+ end
725
+ .,.,
726
+
727
+ module_eval(<<'.,.,', 'shell.y', 104)
728
+ def _reduce_34(val, _values, result)
729
+ result = val[1]
730
+ result
731
+ end
732
+ .,.,
733
+
734
+ module_eval(<<'.,.,', 'shell.y', 108)
735
+ def _reduce_35(val, _values, result)
736
+ result = make_for(val[1], nil, val[2])
737
+ result
738
+ end
739
+ .,.,
740
+
741
+ module_eval(<<'.,.,', 'shell.y', 109)
742
+ def _reduce_36(val, _values, result)
743
+ result = make_for(val[1], nil, val[3])
744
+ result
745
+ end
746
+ .,.,
747
+
748
+ module_eval(<<'.,.,', 'shell.y', 110)
749
+ def _reduce_37(val, _values, result)
750
+ result = make_for(val[1], [], val[5])
751
+ result
752
+ end
753
+ .,.,
754
+
755
+ module_eval(<<'.,.,', 'shell.y', 111)
756
+ def _reduce_38(val, _values, result)
757
+ result = make_for(val[1], val[4], val[6])
758
+ result
759
+ end
760
+ .,.,
761
+
762
+ module_eval(<<'.,.,', 'shell.y', 115)
763
+ def _reduce_39(val, _values, result)
764
+ result = val[0].literal_text
765
+ result
766
+ end
767
+ .,.,
768
+
769
+ module_eval(<<'.,.,', 'shell.y', 119)
770
+ def _reduce_40(val, _values, result)
771
+ result = [val[0]]
772
+ result
773
+ end
774
+ .,.,
775
+
776
+ module_eval(<<'.,.,', 'shell.y', 120)
777
+ def _reduce_41(val, _values, result)
778
+ result = val[0] << val[1]
779
+ result
780
+ end
781
+ .,.,
782
+
783
+ # reduce 42 omitted
784
+
785
+ # reduce 43 omitted
786
+
787
+ module_eval(<<'.,.,', 'shell.y', 129)
788
+ def _reduce_44(val, _values, result)
789
+ result = make_case(val[1], val[5])
790
+ result
791
+ end
792
+ .,.,
793
+
794
+ module_eval(<<'.,.,', 'shell.y', 130)
795
+ def _reduce_45(val, _values, result)
796
+ result = make_case(val[1], val[5])
797
+ result
798
+ end
799
+ .,.,
800
+
801
+ module_eval(<<'.,.,', 'shell.y', 131)
802
+ def _reduce_46(val, _values, result)
803
+ result = make_case(val[1], [])
804
+ result
805
+ end
806
+ .,.,
807
+
808
+ module_eval(<<'.,.,', 'shell.y', 135)
809
+ def _reduce_47(val, _values, result)
810
+ result = [val[0]]
811
+ result
812
+ end
813
+ .,.,
814
+
815
+ module_eval(<<'.,.,', 'shell.y', 136)
816
+ def _reduce_48(val, _values, result)
817
+ result = val[0] << val[1]
818
+ result
819
+ end
820
+ .,.,
821
+
822
+ module_eval(<<'.,.,', 'shell.y', 141)
823
+ def _reduce_49(val, _values, result)
824
+ result = [val[0]]
825
+ result
826
+ end
827
+ .,.,
828
+
829
+ module_eval(<<'.,.,', 'shell.y', 142)
830
+ def _reduce_50(val, _values, result)
831
+ result = val[0] << val[1]
832
+ result
833
+ end
834
+ .,.,
835
+
836
+ module_eval(<<'.,.,', 'shell.y', 146)
837
+ def _reduce_51(val, _values, result)
838
+ result = make_case_item(val[0], val[2])
839
+ result
840
+ end
841
+ .,.,
842
+
843
+ module_eval(<<'.,.,', 'shell.y', 147)
844
+ def _reduce_52(val, _values, result)
845
+ result = make_case_item(val[0], make_list([]))
846
+ result
847
+ end
848
+ .,.,
849
+
850
+ module_eval(<<'.,.,', 'shell.y', 148)
851
+ def _reduce_53(val, _values, result)
852
+ result = make_case_item(val[1], val[3])
853
+ result
854
+ end
855
+ .,.,
856
+
857
+ module_eval(<<'.,.,', 'shell.y', 149)
858
+ def _reduce_54(val, _values, result)
859
+ result = make_case_item(val[1], make_list([]))
860
+ result
861
+ end
862
+ .,.,
863
+
864
+ module_eval(<<'.,.,', 'shell.y', 153)
865
+ def _reduce_55(val, _values, result)
866
+ result = make_case_item(val[0], val[2])
867
+ result
868
+ end
869
+ .,.,
870
+
871
+ module_eval(<<'.,.,', 'shell.y', 154)
872
+ def _reduce_56(val, _values, result)
873
+ result = make_case_item(val[0], make_list([]))
874
+ result
875
+ end
876
+ .,.,
877
+
878
+ module_eval(<<'.,.,', 'shell.y', 155)
879
+ def _reduce_57(val, _values, result)
880
+ result = make_case_item(val[1], val[3])
881
+ result
882
+ end
883
+ .,.,
884
+
885
+ module_eval(<<'.,.,', 'shell.y', 156)
886
+ def _reduce_58(val, _values, result)
887
+ result = make_case_item(val[1], make_list([]))
888
+ result
889
+ end
890
+ .,.,
891
+
892
+ module_eval(<<'.,.,', 'shell.y', 160)
893
+ def _reduce_59(val, _values, result)
894
+ result = [val[0]]
895
+ result
896
+ end
897
+ .,.,
898
+
899
+ module_eval(<<'.,.,', 'shell.y', 161)
900
+ def _reduce_60(val, _values, result)
901
+ result = val[0] << val[2]
902
+ result
903
+ end
904
+ .,.,
905
+
906
+ module_eval(<<'.,.,', 'shell.y', 165)
907
+ def _reduce_61(val, _values, result)
908
+ result = make_if(val[1], val[3], val[4])
909
+ result
910
+ end
911
+ .,.,
912
+
913
+ module_eval(<<'.,.,', 'shell.y', 166)
914
+ def _reduce_62(val, _values, result)
915
+ result = make_if(val[1], val[3], nil)
916
+ result
917
+ end
918
+ .,.,
919
+
920
+ module_eval(<<'.,.,', 'shell.y', 170)
921
+ def _reduce_63(val, _values, result)
922
+ result = make_if(val[1], val[3], nil)
923
+ result
924
+ end
925
+ .,.,
926
+
927
+ module_eval(<<'.,.,', 'shell.y', 171)
928
+ def _reduce_64(val, _values, result)
929
+ result = make_if(val[1], val[3], val[4])
930
+ result
931
+ end
932
+ .,.,
933
+
934
+ module_eval(<<'.,.,', 'shell.y', 172)
935
+ def _reduce_65(val, _values, result)
936
+ result = val[1]
937
+ result
938
+ end
939
+ .,.,
940
+
941
+ module_eval(<<'.,.,', 'shell.y', 176)
942
+ def _reduce_66(val, _values, result)
943
+ result = make_list(val[1])
944
+ result
945
+ end
946
+ .,.,
947
+
948
+ module_eval(<<'.,.,', 'shell.y', 177)
949
+ def _reduce_67(val, _values, result)
950
+ result = make_list(terminate_list(val[1], val[2]))
951
+ result
952
+ end
953
+ .,.,
954
+
955
+ module_eval(<<'.,.,', 'shell.y', 181)
956
+ def _reduce_68(val, _values, result)
957
+ result = append_and_or(val[0], val[1], val[2])
958
+ result
959
+ end
960
+ .,.,
961
+
962
+ module_eval(<<'.,.,', 'shell.y', 182)
963
+ def _reduce_69(val, _values, result)
964
+ result = [pending_entry(val[0])]
965
+ result
966
+ end
967
+ .,.,
968
+
969
+ module_eval(<<'.,.,', 'shell.y', 186)
970
+ def _reduce_70(val, _values, result)
971
+ result = val[0]
972
+ result
973
+ end
974
+ .,.,
975
+
976
+ module_eval(<<'.,.,', 'shell.y', 187)
977
+ def _reduce_71(val, _values, result)
978
+ result = ';'
979
+ result
980
+ end
981
+ .,.,
982
+
983
+ module_eval(<<'.,.,', 'shell.y', 191)
984
+ def _reduce_72(val, _values, result)
985
+ result = make_simple_command(val[0], val[1], val[2])
986
+ result
987
+ end
988
+ .,.,
989
+
990
+ module_eval(<<'.,.,', 'shell.y', 192)
991
+ def _reduce_73(val, _values, result)
992
+ result = make_simple_command(val[0], val[1], [])
993
+ result
994
+ end
995
+ .,.,
996
+
997
+ module_eval(<<'.,.,', 'shell.y', 193)
998
+ def _reduce_74(val, _values, result)
999
+ result = make_simple_command(val[0], nil, [])
1000
+ result
1001
+ end
1002
+ .,.,
1003
+
1004
+ module_eval(<<'.,.,', 'shell.y', 194)
1005
+ def _reduce_75(val, _values, result)
1006
+ result = make_simple_command([], val[0], val[1])
1007
+ result
1008
+ end
1009
+ .,.,
1010
+
1011
+ module_eval(<<'.,.,', 'shell.y', 195)
1012
+ def _reduce_76(val, _values, result)
1013
+ result = make_simple_command([], val[0], [])
1014
+ result
1015
+ end
1016
+ .,.,
1017
+
1018
+ module_eval(<<'.,.,', 'shell.y', 199)
1019
+ def _reduce_77(val, _values, result)
1020
+ result = val[0]
1021
+ result
1022
+ end
1023
+ .,.,
1024
+
1025
+ module_eval(<<'.,.,', 'shell.y', 203)
1026
+ def _reduce_78(val, _values, result)
1027
+ result = val[0]
1028
+ result
1029
+ end
1030
+ .,.,
1031
+
1032
+ module_eval(<<'.,.,', 'shell.y', 207)
1033
+ def _reduce_79(val, _values, result)
1034
+ result = [val[0]]
1035
+ result
1036
+ end
1037
+ .,.,
1038
+
1039
+ module_eval(<<'.,.,', 'shell.y', 208)
1040
+ def _reduce_80(val, _values, result)
1041
+ result = val[0] << val[1]
1042
+ result
1043
+ end
1044
+ .,.,
1045
+
1046
+ module_eval(<<'.,.,', 'shell.y', 209)
1047
+ def _reduce_81(val, _values, result)
1048
+ result = [val[0]]
1049
+ result
1050
+ end
1051
+ .,.,
1052
+
1053
+ module_eval(<<'.,.,', 'shell.y', 210)
1054
+ def _reduce_82(val, _values, result)
1055
+ result = val[0] << val[1]
1056
+ result
1057
+ end
1058
+ .,.,
1059
+
1060
+ module_eval(<<'.,.,', 'shell.y', 214)
1061
+ def _reduce_83(val, _values, result)
1062
+ result = [val[0]]
1063
+ result
1064
+ end
1065
+ .,.,
1066
+
1067
+ module_eval(<<'.,.,', 'shell.y', 215)
1068
+ def _reduce_84(val, _values, result)
1069
+ result = val[0] << val[1]
1070
+ result
1071
+ end
1072
+ .,.,
1073
+
1074
+ module_eval(<<'.,.,', 'shell.y', 216)
1075
+ def _reduce_85(val, _values, result)
1076
+ result = [val[0]]
1077
+ result
1078
+ end
1079
+ .,.,
1080
+
1081
+ module_eval(<<'.,.,', 'shell.y', 217)
1082
+ def _reduce_86(val, _values, result)
1083
+ result = val[0] << val[1]
1084
+ result
1085
+ end
1086
+ .,.,
1087
+
1088
+ module_eval(<<'.,.,', 'shell.y', 221)
1089
+ def _reduce_87(val, _values, result)
1090
+ result = val[0]
1091
+ result
1092
+ end
1093
+ .,.,
1094
+
1095
+ module_eval(<<'.,.,', 'shell.y', 222)
1096
+ def _reduce_88(val, _values, result)
1097
+ result = with_io_number(val[1], val[0])
1098
+ result
1099
+ end
1100
+ .,.,
1101
+
1102
+ module_eval(<<'.,.,', 'shell.y', 223)
1103
+ def _reduce_89(val, _values, result)
1104
+ result = val[0]
1105
+ result
1106
+ end
1107
+ .,.,
1108
+
1109
+ module_eval(<<'.,.,', 'shell.y', 224)
1110
+ def _reduce_90(val, _values, result)
1111
+ result = with_io_number(val[1], val[0])
1112
+ result
1113
+ end
1114
+ .,.,
1115
+
1116
+ module_eval(<<'.,.,', 'shell.y', 230)
1117
+ def _reduce_91(val, _values, result)
1118
+ result = make_heredoc(val[1])
1119
+ result
1120
+ end
1121
+ .,.,
1122
+
1123
+ module_eval(<<'.,.,', 'shell.y', 231)
1124
+ def _reduce_92(val, _values, result)
1125
+ result = make_heredoc(val[1])
1126
+ result
1127
+ end
1128
+ .,.,
1129
+
1130
+ module_eval(<<'.,.,', 'shell.y', 235)
1131
+ def _reduce_93(val, _values, result)
1132
+ result = make_redirect(:in, val[1])
1133
+ result
1134
+ end
1135
+ .,.,
1136
+
1137
+ module_eval(<<'.,.,', 'shell.y', 236)
1138
+ def _reduce_94(val, _values, result)
1139
+ result = make_redirect(:out, val[1])
1140
+ result
1141
+ end
1142
+ .,.,
1143
+
1144
+ module_eval(<<'.,.,', 'shell.y', 237)
1145
+ def _reduce_95(val, _values, result)
1146
+ result = make_redirect(:append, val[1])
1147
+ result
1148
+ end
1149
+ .,.,
1150
+
1151
+ module_eval(<<'.,.,', 'shell.y', 238)
1152
+ def _reduce_96(val, _values, result)
1153
+ result = make_redirect(:readwrite, val[1])
1154
+ result
1155
+ end
1156
+ .,.,
1157
+
1158
+ module_eval(<<'.,.,', 'shell.y', 239)
1159
+ def _reduce_97(val, _values, result)
1160
+ result = make_redirect(:clobber, val[1])
1161
+ result
1162
+ end
1163
+ .,.,
1164
+
1165
+ module_eval(<<'.,.,', 'shell.y', 240)
1166
+ def _reduce_98(val, _values, result)
1167
+ result = make_redirect(:dup_out, val[1])
1168
+ result
1169
+ end
1170
+ .,.,
1171
+
1172
+ module_eval(<<'.,.,', 'shell.y', 241)
1173
+ def _reduce_99(val, _values, result)
1174
+ result = make_redirect(:dup_in, val[1])
1175
+ result
1176
+ end
1177
+ .,.,
1178
+
1179
+ module_eval(<<'.,.,', 'shell.y', 245)
1180
+ def _reduce_100(val, _values, result)
1181
+ result = val[0]
1182
+ result
1183
+ end
1184
+ .,.,
1185
+
1186
+ module_eval(<<'.,.,', 'shell.y', 249)
1187
+ def _reduce_101(val, _values, result)
1188
+ result = '&'
1189
+ result
1190
+ end
1191
+ .,.,
1192
+
1193
+ module_eval(<<'.,.,', 'shell.y', 250)
1194
+ def _reduce_102(val, _values, result)
1195
+ result = ';'
1196
+ result
1197
+ end
1198
+ .,.,
1199
+
1200
+ # reduce 103 omitted
1201
+
1202
+ # reduce 104 omitted
1203
+
1204
+ # reduce 105 omitted
1205
+
1206
+ # reduce 106 omitted
1207
+
1208
+ def _reduce_none(val, _values, result)
1209
+ val[0]
1210
+ end
1211
+
1212
+ end # class Parser
1213
+ end # module Rush