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
metadata ADDED
@@ -0,0 +1,527 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rush-shell
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.2
5
+ platform: ruby
6
+ authors:
7
+ - Alexey Nikitin
8
+ bindir: exe
9
+ cert_chain: []
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: fiddle
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - "~>"
17
+ - !ruby/object:Gem::Version
18
+ version: '1.1'
19
+ type: :runtime
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - "~>"
24
+ - !ruby/object:Gem::Version
25
+ version: '1.1'
26
+ - !ruby/object:Gem::Dependency
27
+ name: racc
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - "~>"
31
+ - !ruby/object:Gem::Version
32
+ version: '1.7'
33
+ - - ">="
34
+ - !ruby/object:Gem::Version
35
+ version: 1.7.3
36
+ type: :runtime
37
+ prerelease: false
38
+ version_requirements: !ruby/object:Gem::Requirement
39
+ requirements:
40
+ - - "~>"
41
+ - !ruby/object:Gem::Version
42
+ version: '1.7'
43
+ - - ">="
44
+ - !ruby/object:Gem::Version
45
+ version: 1.7.3
46
+ - !ruby/object:Gem::Dependency
47
+ name: reline
48
+ requirement: !ruby/object:Gem::Requirement
49
+ requirements:
50
+ - - "~>"
51
+ - !ruby/object:Gem::Version
52
+ version: '0.6'
53
+ type: :runtime
54
+ prerelease: false
55
+ version_requirements: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - "~>"
58
+ - !ruby/object:Gem::Version
59
+ version: '0.6'
60
+ - !ruby/object:Gem::Dependency
61
+ name: sorbet-runtime
62
+ requirement: !ruby/object:Gem::Requirement
63
+ requirements:
64
+ - - "~>"
65
+ - !ruby/object:Gem::Version
66
+ version: '0.5'
67
+ type: :runtime
68
+ prerelease: false
69
+ version_requirements: !ruby/object:Gem::Requirement
70
+ requirements:
71
+ - - "~>"
72
+ - !ruby/object:Gem::Version
73
+ version: '0.5'
74
+ - !ruby/object:Gem::Dependency
75
+ name: flay
76
+ requirement: !ruby/object:Gem::Requirement
77
+ requirements:
78
+ - - "~>"
79
+ - !ruby/object:Gem::Version
80
+ version: '2.13'
81
+ type: :development
82
+ prerelease: false
83
+ version_requirements: !ruby/object:Gem::Requirement
84
+ requirements:
85
+ - - "~>"
86
+ - !ruby/object:Gem::Version
87
+ version: '2.13'
88
+ - !ruby/object:Gem::Dependency
89
+ name: flog
90
+ requirement: !ruby/object:Gem::Requirement
91
+ requirements:
92
+ - - "~>"
93
+ - !ruby/object:Gem::Version
94
+ version: '4.8'
95
+ type: :development
96
+ prerelease: false
97
+ version_requirements: !ruby/object:Gem::Requirement
98
+ requirements:
99
+ - - "~>"
100
+ - !ruby/object:Gem::Version
101
+ version: '4.8'
102
+ - !ruby/object:Gem::Dependency
103
+ name: mutant-rspec
104
+ requirement: !ruby/object:Gem::Requirement
105
+ requirements:
106
+ - - "~>"
107
+ - !ruby/object:Gem::Version
108
+ version: 0.16.3
109
+ type: :development
110
+ prerelease: false
111
+ version_requirements: !ruby/object:Gem::Requirement
112
+ requirements:
113
+ - - "~>"
114
+ - !ruby/object:Gem::Version
115
+ version: 0.16.3
116
+ - !ruby/object:Gem::Dependency
117
+ name: parallel_tests
118
+ requirement: !ruby/object:Gem::Requirement
119
+ requirements:
120
+ - - "~>"
121
+ - !ruby/object:Gem::Version
122
+ version: '5.7'
123
+ type: :development
124
+ prerelease: false
125
+ version_requirements: !ruby/object:Gem::Requirement
126
+ requirements:
127
+ - - "~>"
128
+ - !ruby/object:Gem::Version
129
+ version: '5.7'
130
+ - !ruby/object:Gem::Dependency
131
+ name: rake
132
+ requirement: !ruby/object:Gem::Requirement
133
+ requirements:
134
+ - - "~>"
135
+ - !ruby/object:Gem::Version
136
+ version: '13.0'
137
+ type: :development
138
+ prerelease: false
139
+ version_requirements: !ruby/object:Gem::Requirement
140
+ requirements:
141
+ - - "~>"
142
+ - !ruby/object:Gem::Version
143
+ version: '13.0'
144
+ - !ruby/object:Gem::Dependency
145
+ name: rbs
146
+ requirement: !ruby/object:Gem::Requirement
147
+ requirements:
148
+ - - "~>"
149
+ - !ruby/object:Gem::Version
150
+ version: '4.0'
151
+ type: :development
152
+ prerelease: false
153
+ version_requirements: !ruby/object:Gem::Requirement
154
+ requirements:
155
+ - - "~>"
156
+ - !ruby/object:Gem::Version
157
+ version: '4.0'
158
+ - !ruby/object:Gem::Dependency
159
+ name: reek
160
+ requirement: !ruby/object:Gem::Requirement
161
+ requirements:
162
+ - - "~>"
163
+ - !ruby/object:Gem::Version
164
+ version: '6.5'
165
+ type: :development
166
+ prerelease: false
167
+ version_requirements: !ruby/object:Gem::Requirement
168
+ requirements:
169
+ - - "~>"
170
+ - !ruby/object:Gem::Version
171
+ version: '6.5'
172
+ - !ruby/object:Gem::Dependency
173
+ name: rspec
174
+ requirement: !ruby/object:Gem::Requirement
175
+ requirements:
176
+ - - "~>"
177
+ - !ruby/object:Gem::Version
178
+ version: '3.13'
179
+ type: :development
180
+ prerelease: false
181
+ version_requirements: !ruby/object:Gem::Requirement
182
+ requirements:
183
+ - - "~>"
184
+ - !ruby/object:Gem::Version
185
+ version: '3.13'
186
+ - !ruby/object:Gem::Dependency
187
+ name: rubocop
188
+ requirement: !ruby/object:Gem::Requirement
189
+ requirements:
190
+ - - "~>"
191
+ - !ruby/object:Gem::Version
192
+ version: '1.72'
193
+ type: :development
194
+ prerelease: false
195
+ version_requirements: !ruby/object:Gem::Requirement
196
+ requirements:
197
+ - - "~>"
198
+ - !ruby/object:Gem::Version
199
+ version: '1.72'
200
+ - !ruby/object:Gem::Dependency
201
+ name: rubocop-performance
202
+ requirement: !ruby/object:Gem::Requirement
203
+ requirements:
204
+ - - "~>"
205
+ - !ruby/object:Gem::Version
206
+ version: '1.23'
207
+ type: :development
208
+ prerelease: false
209
+ version_requirements: !ruby/object:Gem::Requirement
210
+ requirements:
211
+ - - "~>"
212
+ - !ruby/object:Gem::Version
213
+ version: '1.23'
214
+ - !ruby/object:Gem::Dependency
215
+ name: rubocop-rspec
216
+ requirement: !ruby/object:Gem::Requirement
217
+ requirements:
218
+ - - "~>"
219
+ - !ruby/object:Gem::Version
220
+ version: '3.5'
221
+ type: :development
222
+ prerelease: false
223
+ version_requirements: !ruby/object:Gem::Requirement
224
+ requirements:
225
+ - - "~>"
226
+ - !ruby/object:Gem::Version
227
+ version: '3.5'
228
+ - !ruby/object:Gem::Dependency
229
+ name: simplecov
230
+ requirement: !ruby/object:Gem::Requirement
231
+ requirements:
232
+ - - "~>"
233
+ - !ruby/object:Gem::Version
234
+ version: '0.22'
235
+ type: :development
236
+ prerelease: false
237
+ version_requirements: !ruby/object:Gem::Requirement
238
+ requirements:
239
+ - - "~>"
240
+ - !ruby/object:Gem::Version
241
+ version: '0.22'
242
+ - !ruby/object:Gem::Dependency
243
+ name: sorbet
244
+ requirement: !ruby/object:Gem::Requirement
245
+ requirements:
246
+ - - "~>"
247
+ - !ruby/object:Gem::Version
248
+ version: '0.5'
249
+ type: :development
250
+ prerelease: false
251
+ version_requirements: !ruby/object:Gem::Requirement
252
+ requirements:
253
+ - - "~>"
254
+ - !ruby/object:Gem::Version
255
+ version: '0.5'
256
+ - !ruby/object:Gem::Dependency
257
+ name: stackprof
258
+ requirement: !ruby/object:Gem::Requirement
259
+ requirements:
260
+ - - "~>"
261
+ - !ruby/object:Gem::Version
262
+ version: '0.2'
263
+ type: :development
264
+ prerelease: false
265
+ version_requirements: !ruby/object:Gem::Requirement
266
+ requirements:
267
+ - - "~>"
268
+ - !ruby/object:Gem::Version
269
+ version: '0.2'
270
+ - !ruby/object:Gem::Dependency
271
+ name: steep
272
+ requirement: !ruby/object:Gem::Requirement
273
+ requirements:
274
+ - - "~>"
275
+ - !ruby/object:Gem::Version
276
+ version: '2.0'
277
+ type: :development
278
+ prerelease: false
279
+ version_requirements: !ruby/object:Gem::Requirement
280
+ requirements:
281
+ - - "~>"
282
+ - !ruby/object:Gem::Version
283
+ version: '2.0'
284
+ description: rush implements the POSIX.1-2017 Shell Command Language (IEEE Std 1003.1
285
+ §2) in pure Ruby, verified differentially against dash.
286
+ email:
287
+ - tank@bohr.su
288
+ executables:
289
+ - rush
290
+ extensions: []
291
+ extra_rdoc_files: []
292
+ files:
293
+ - LICENSE
294
+ - README.md
295
+ - exe/rush
296
+ - grammar/shell.y
297
+ - grammar/shell.y.output
298
+ - lib/rush.rb
299
+ - lib/rush/alias_table.rb
300
+ - lib/rush/assignments.rb
301
+ - lib/rush/ast/and_or.rb
302
+ - lib/rush/ast/assignment.rb
303
+ - lib/rush/ast/brace_group.rb
304
+ - lib/rush/ast/case_node.rb
305
+ - lib/rush/ast/condition_loop.rb
306
+ - lib/rush/ast/for_node.rb
307
+ - lib/rush/ast/function_def.rb
308
+ - lib/rush/ast/if_node.rb
309
+ - lib/rush/ast/list.rb
310
+ - lib/rush/ast/node.rb
311
+ - lib/rush/ast/param_ref.rb
312
+ - lib/rush/ast/pipeline.rb
313
+ - lib/rush/ast/redirect.rb
314
+ - lib/rush/ast/redirected.rb
315
+ - lib/rush/ast/simple_command.rb
316
+ - lib/rush/ast/subshell.rb
317
+ - lib/rush/ast/until_node.rb
318
+ - lib/rush/ast/while_node.rb
319
+ - lib/rush/ast/word.rb
320
+ - lib/rush/ast/word_segment.rb
321
+ - lib/rush/background_runner.rb
322
+ - lib/rush/bracket_expression.rb
323
+ - lib/rush/bracket_scanner.rb
324
+ - lib/rush/builtins/alias_.rb
325
+ - lib/rush/builtins/base.rb
326
+ - lib/rush/builtins/break_.rb
327
+ - lib/rush/builtins/cd.rb
328
+ - lib/rush/builtins/colon.rb
329
+ - lib/rush/builtins/command.rb
330
+ - lib/rush/builtins/command_options.rb
331
+ - lib/rush/builtins/continue_.rb
332
+ - lib/rush/builtins/declare.rb
333
+ - lib/rush/builtins/defaults.rb
334
+ - lib/rush/builtins/dot.rb
335
+ - lib/rush/builtins/echo.rb
336
+ - lib/rush/builtins/eval.rb
337
+ - lib/rush/builtins/exec.rb
338
+ - lib/rush/builtins/exit.rb
339
+ - lib/rush/builtins/export.rb
340
+ - lib/rush/builtins/false_.rb
341
+ - lib/rush/builtins/fd_operand.rb
342
+ - lib/rush/builtins/getopts.rb
343
+ - lib/rush/builtins/hash.rb
344
+ - lib/rush/builtins/job_resume.rb
345
+ - lib/rush/builtins/jobs.rb
346
+ - lib/rush/builtins/kill.rb
347
+ - lib/rush/builtins/local.rb
348
+ - lib/rush/builtins/loop_jump.rb
349
+ - lib/rush/builtins/printf.rb
350
+ - lib/rush/builtins/printf_formatter.rb
351
+ - lib/rush/builtins/pwd.rb
352
+ - lib/rush/builtins/read.rb
353
+ - lib/rush/builtins/read_input.rb
354
+ - lib/rush/builtins/readonly.rb
355
+ - lib/rush/builtins/registry.rb
356
+ - lib/rush/builtins/return_.rb
357
+ - lib/rush/builtins/set.rb
358
+ - lib/rush/builtins/shift.rb
359
+ - lib/rush/builtins/test_.rb
360
+ - lib/rush/builtins/test_context.rb
361
+ - lib/rush/builtins/test_expr.rb
362
+ - lib/rush/builtins/test_grammar.rb
363
+ - lib/rush/builtins/test_operators.rb
364
+ - lib/rush/builtins/test_tokens.rb
365
+ - lib/rush/builtins/times.rb
366
+ - lib/rush/builtins/trap.rb
367
+ - lib/rush/builtins/true_.rb
368
+ - lib/rush/builtins/type_.rb
369
+ - lib/rush/builtins/ulimit.rb
370
+ - lib/rush/builtins/umask.rb
371
+ - lib/rush/builtins/unalias.rb
372
+ - lib/rush/builtins/unset.rb
373
+ - lib/rush/builtins/wait.rb
374
+ - lib/rush/cli.rb
375
+ - lib/rush/command_assignments.rb
376
+ - lib/rush/command_lookup.rb
377
+ - lib/rush/command_resolution.rb
378
+ - lib/rush/command_runner.rb
379
+ - lib/rush/command_text.rb
380
+ - lib/rush/environment.rb
381
+ - lib/rush/errexit_context.rb
382
+ - lib/rush/error_policy.rb
383
+ - lib/rush/errors.rb
384
+ - lib/rush/escape_table.rb
385
+ - lib/rush/escaped_bracket.rb
386
+ - lib/rush/executor.rb
387
+ - lib/rush/exit_trap.rb
388
+ - lib/rush/expansion/arithmetic/evaluator.rb
389
+ - lib/rush/expansion/arithmetic/nodes.rb
390
+ - lib/rush/expansion/arithmetic/number.rb
391
+ - lib/rush/expansion/arithmetic/parser.rb
392
+ - lib/rush/expansion/arithmetic/tokenizer.rb
393
+ - lib/rush/expansion/arithmetic_expander.rb
394
+ - lib/rush/expansion/command_substitution.rb
395
+ - lib/rush/expansion/field_part.rb
396
+ - lib/rush/expansion/field_splitter.rb
397
+ - lib/rush/expansion/glob_expander.rb
398
+ - lib/rush/expansion/ifs.rb
399
+ - lib/rush/expansion/ifs_scanner.rb
400
+ - lib/rush/expansion/parameter_expander.rb
401
+ - lib/rush/expansion/parameter_forms.rb
402
+ - lib/rush/expansion/pattern_removal.rb
403
+ - lib/rush/expansion/pipeline.rb
404
+ - lib/rush/expansion/read_char.rb
405
+ - lib/rush/expansion/read_field_scanner.rb
406
+ - lib/rush/expansion/read_splitter.rb
407
+ - lib/rush/expansion/resolver.rb
408
+ - lib/rush/expansion/tilde_expander.rb
409
+ - lib/rush/external.rb
410
+ - lib/rush/fd_entry.rb
411
+ - lib/rush/for_runner.rb
412
+ - lib/rush/function_frame.rb
413
+ - lib/rush/function_runner.rb
414
+ - lib/rush/function_table.rb
415
+ - lib/rush/getopts_parser.rb
416
+ - lib/rush/getopts_state.rb
417
+ - lib/rush/here_doc.rb
418
+ - lib/rush/interactive_signals.rb
419
+ - lib/rush/invocation.rb
420
+ - lib/rush/io_table.rb
421
+ - lib/rush/job_control.rb
422
+ - lib/rush/job_report.rb
423
+ - lib/rush/job_spec.rb
424
+ - lib/rush/job_table.rb
425
+ - lib/rush/job_table/control.rb
426
+ - lib/rush/job_table/interruptible_wait.rb
427
+ - lib/rush/job_table/job.rb
428
+ - lib/rush/lexer.rb
429
+ - lib/rush/lexer/alias_expander.rb
430
+ - lib/rush/lexer/braced_reader.rb
431
+ - lib/rush/lexer/case_frame.rb
432
+ - lib/rush/lexer/case_tracker.rb
433
+ - lib/rush/lexer/dollar_scanner.rb
434
+ - lib/rush/lexer/double_quote_scanner.rb
435
+ - lib/rush/lexer/heredoc_body.rb
436
+ - lib/rush/lexer/heredoc_reader.rb
437
+ - lib/rush/lexer/lex_state.rb
438
+ - lib/rush/lexer/operator_table.rb
439
+ - lib/rush/lexer/param_scanner.rb
440
+ - lib/rush/lexer/paren_reader.rb
441
+ - lib/rush/lexer/paren_regions.rb
442
+ - lib/rush/lexer/quote_skips.rb
443
+ - lib/rush/lexer/quoted_word.rb
444
+ - lib/rush/lexer/scanner_predicates.rb
445
+ - lib/rush/lexer/source_lines.rb
446
+ - lib/rush/lexer/substitution_reader.rb
447
+ - lib/rush/lexer/token_classifier.rb
448
+ - lib/rush/lexer/token_predicates.rb
449
+ - lib/rush/lexer/word_scanner.rb
450
+ - lib/rush/loop_control_handling.rb
451
+ - lib/rush/loop_nesting.rb
452
+ - lib/rush/loop_runner.rb
453
+ - lib/rush/option_cluster.rb
454
+ - lib/rush/options.rb
455
+ - lib/rush/param_text.rb
456
+ - lib/rush/parser.rb
457
+ - lib/rush/parser_support.rb
458
+ - lib/rush/pattern_scanner.rb
459
+ - lib/rush/pending_signals.rb
460
+ - lib/rush/pipeline_runner.rb
461
+ - lib/rush/pipeline_statuses.rb
462
+ - lib/rush/positional.rb
463
+ - lib/rush/posix_pattern.rb
464
+ - lib/rush/program_input.rb
465
+ - lib/rush/program_reader.rb
466
+ - lib/rush/program_session.rb
467
+ - lib/rush/prompt.rb
468
+ - lib/rush/redirect_scope.rb
469
+ - lib/rush/redirection/dup_redirect.rb
470
+ - lib/rush/redirection/file_redirect.rb
471
+ - lib/rush/redirection/here_doc_redirect.rb
472
+ - lib/rush/redirection/registry.rb
473
+ - lib/rush/repl.rb
474
+ - lib/rush/runtime_type_checks.rb
475
+ - lib/rush/scope.rb
476
+ - lib/rush/segment_buffer.rb
477
+ - lib/rush/shell_parameters.rb
478
+ - lib/rush/shell_pattern.rb
479
+ - lib/rush/shell_state.rb
480
+ - lib/rush/shell_variables.rb
481
+ - lib/rush/signal_report.rb
482
+ - lib/rush/signals.rb
483
+ - lib/rush/source.rb
484
+ - lib/rush/source_line_counter.rb
485
+ - lib/rush/source_runner.rb
486
+ - lib/rush/startup.rb
487
+ - lib/rush/status.rb
488
+ - lib/rush/stop_relay.rb
489
+ - lib/rush/subshell_runner.rb
490
+ - lib/rush/system_calls.rb
491
+ - lib/rush/system_calls/collation.rb
492
+ - lib/rush/system_calls/file_tests.rb
493
+ - lib/rush/system_calls/process_control.rb
494
+ - lib/rush/system_calls/process_identity.rb
495
+ - lib/rush/system_calls/resource_limits.rb
496
+ - lib/rush/terminal.rb
497
+ - lib/rush/trap_runner.rb
498
+ - lib/rush/trap_table.rb
499
+ - lib/rush/umask_mode.rb
500
+ - lib/rush/version.rb
501
+ homepage: https://github.com/tank-bohr/rush
502
+ licenses:
503
+ - MIT
504
+ metadata:
505
+ rubygems_mfa_required: 'true'
506
+ homepage_uri: https://github.com/tank-bohr/rush
507
+ source_code_uri: https://github.com/tank-bohr/rush
508
+ changelog_uri: https://github.com/tank-bohr/rush/blob/main/CHANGELOG.md
509
+ bug_tracker_uri: https://github.com/tank-bohr/rush/issues
510
+ rdoc_options: []
511
+ require_paths:
512
+ - lib
513
+ required_ruby_version: !ruby/object:Gem::Requirement
514
+ requirements:
515
+ - - ">="
516
+ - !ruby/object:Gem::Version
517
+ version: '4.0'
518
+ required_rubygems_version: !ruby/object:Gem::Requirement
519
+ requirements:
520
+ - - ">="
521
+ - !ruby/object:Gem::Version
522
+ version: '0'
523
+ requirements: []
524
+ rubygems_version: 4.0.10
525
+ specification_version: 4
526
+ summary: A pure-Ruby POSIX shell (sh) with a Racc-generated parser.
527
+ test_files: []