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.
- checksums.yaml +7 -0
- data/LICENSE +21 -0
- data/README.md +94 -0
- data/exe/rush +10 -0
- data/grammar/shell.y +272 -0
- data/grammar/shell.y.output +2354 -0
- data/lib/rush/alias_table.rb +48 -0
- data/lib/rush/assignments.rb +48 -0
- data/lib/rush/ast/and_or.rb +37 -0
- data/lib/rush/ast/assignment.rb +20 -0
- data/lib/rush/ast/brace_group.rb +25 -0
- data/lib/rush/ast/case_node.rb +41 -0
- data/lib/rush/ast/condition_loop.rb +34 -0
- data/lib/rush/ast/for_node.rb +34 -0
- data/lib/rush/ast/function_def.rb +26 -0
- data/lib/rush/ast/if_node.rb +29 -0
- data/lib/rush/ast/list.rb +47 -0
- data/lib/rush/ast/node.rb +17 -0
- data/lib/rush/ast/param_ref.rb +59 -0
- data/lib/rush/ast/pipeline.rb +45 -0
- data/lib/rush/ast/redirect.rb +21 -0
- data/lib/rush/ast/redirected.rb +26 -0
- data/lib/rush/ast/simple_command.rb +62 -0
- data/lib/rush/ast/subshell.rb +24 -0
- data/lib/rush/ast/until_node.rb +18 -0
- data/lib/rush/ast/while_node.rb +18 -0
- data/lib/rush/ast/word.rb +44 -0
- data/lib/rush/ast/word_segment.rb +203 -0
- data/lib/rush/background_runner.rb +68 -0
- data/lib/rush/bracket_expression.rb +107 -0
- data/lib/rush/bracket_scanner.rb +64 -0
- data/lib/rush/builtins/alias_.rb +74 -0
- data/lib/rush/builtins/base.rb +96 -0
- data/lib/rush/builtins/break_.rb +19 -0
- data/lib/rush/builtins/cd.rb +127 -0
- data/lib/rush/builtins/colon.rb +16 -0
- data/lib/rush/builtins/command.rb +137 -0
- data/lib/rush/builtins/command_options.rb +103 -0
- data/lib/rush/builtins/continue_.rb +19 -0
- data/lib/rush/builtins/declare.rb +27 -0
- data/lib/rush/builtins/defaults.rb +28 -0
- data/lib/rush/builtins/dot.rb +52 -0
- data/lib/rush/builtins/echo.rb +37 -0
- data/lib/rush/builtins/eval.rb +25 -0
- data/lib/rush/builtins/exec.rb +54 -0
- data/lib/rush/builtins/exit.rb +45 -0
- data/lib/rush/builtins/export.rb +20 -0
- data/lib/rush/builtins/false_.rb +16 -0
- data/lib/rush/builtins/fd_operand.rb +87 -0
- data/lib/rush/builtins/getopts.rb +96 -0
- data/lib/rush/builtins/hash.rb +64 -0
- data/lib/rush/builtins/job_resume.rb +107 -0
- data/lib/rush/builtins/jobs.rb +86 -0
- data/lib/rush/builtins/kill.rb +152 -0
- data/lib/rush/builtins/local.rb +40 -0
- data/lib/rush/builtins/loop_jump.rb +45 -0
- data/lib/rush/builtins/printf.rb +39 -0
- data/lib/rush/builtins/printf_formatter.rb +111 -0
- data/lib/rush/builtins/pwd.rb +17 -0
- data/lib/rush/builtins/read.rb +93 -0
- data/lib/rush/builtins/read_input.rb +146 -0
- data/lib/rush/builtins/readonly.rb +20 -0
- data/lib/rush/builtins/registry.rb +36 -0
- data/lib/rush/builtins/return_.rb +24 -0
- data/lib/rush/builtins/set.rb +101 -0
- data/lib/rush/builtins/shift.rb +35 -0
- data/lib/rush/builtins/test_.rb +48 -0
- data/lib/rush/builtins/test_context.rb +24 -0
- data/lib/rush/builtins/test_expr.rb +74 -0
- data/lib/rush/builtins/test_grammar.rb +117 -0
- data/lib/rush/builtins/test_operators.rb +94 -0
- data/lib/rush/builtins/test_tokens.rb +69 -0
- data/lib/rush/builtins/times.rb +35 -0
- data/lib/rush/builtins/trap.rb +85 -0
- data/lib/rush/builtins/true_.rb +16 -0
- data/lib/rush/builtins/type_.rb +28 -0
- data/lib/rush/builtins/ulimit.rb +258 -0
- data/lib/rush/builtins/umask.rb +81 -0
- data/lib/rush/builtins/unalias.rb +46 -0
- data/lib/rush/builtins/unset.rb +40 -0
- data/lib/rush/builtins/wait.rb +127 -0
- data/lib/rush/cli.rb +31 -0
- data/lib/rush/command_assignments.rb +56 -0
- data/lib/rush/command_lookup.rb +228 -0
- data/lib/rush/command_resolution.rb +115 -0
- data/lib/rush/command_runner.rb +152 -0
- data/lib/rush/command_text.rb +140 -0
- data/lib/rush/environment.rb +134 -0
- data/lib/rush/errexit_context.rb +68 -0
- data/lib/rush/error_policy.rb +64 -0
- data/lib/rush/errors.rb +100 -0
- data/lib/rush/escape_table.rb +22 -0
- data/lib/rush/escaped_bracket.rb +49 -0
- data/lib/rush/executor.rb +164 -0
- data/lib/rush/exit_trap.rb +109 -0
- data/lib/rush/expansion/arithmetic/evaluator.rb +43 -0
- data/lib/rush/expansion/arithmetic/nodes.rb +180 -0
- data/lib/rush/expansion/arithmetic/number.rb +104 -0
- data/lib/rush/expansion/arithmetic/parser.rb +155 -0
- data/lib/rush/expansion/arithmetic/tokenizer.rb +56 -0
- data/lib/rush/expansion/arithmetic_expander.rb +38 -0
- data/lib/rush/expansion/command_substitution.rb +87 -0
- data/lib/rush/expansion/field_part.rb +12 -0
- data/lib/rush/expansion/field_splitter.rb +23 -0
- data/lib/rush/expansion/glob_expander.rb +48 -0
- data/lib/rush/expansion/ifs.rb +62 -0
- data/lib/rush/expansion/ifs_scanner.rb +168 -0
- data/lib/rush/expansion/parameter_expander.rb +204 -0
- data/lib/rush/expansion/parameter_forms.rb +22 -0
- data/lib/rush/expansion/pattern_removal.rb +63 -0
- data/lib/rush/expansion/pipeline.rb +124 -0
- data/lib/rush/expansion/read_char.rb +13 -0
- data/lib/rush/expansion/read_field_scanner.rb +159 -0
- data/lib/rush/expansion/read_splitter.rb +40 -0
- data/lib/rush/expansion/resolver.rb +23 -0
- data/lib/rush/expansion/tilde_expander.rb +102 -0
- data/lib/rush/external.rb +75 -0
- data/lib/rush/fd_entry.rb +60 -0
- data/lib/rush/for_runner.rb +50 -0
- data/lib/rush/function_frame.rb +30 -0
- data/lib/rush/function_runner.rb +37 -0
- data/lib/rush/function_table.rb +35 -0
- data/lib/rush/getopts_parser.rb +195 -0
- data/lib/rush/getopts_state.rb +104 -0
- data/lib/rush/here_doc.rb +57 -0
- data/lib/rush/interactive_signals.rb +26 -0
- data/lib/rush/invocation.rb +190 -0
- data/lib/rush/io_table.rb +94 -0
- data/lib/rush/job_control.rb +197 -0
- data/lib/rush/job_report.rb +45 -0
- data/lib/rush/job_spec.rb +51 -0
- data/lib/rush/job_table/control.rb +103 -0
- data/lib/rush/job_table/interruptible_wait.rb +70 -0
- data/lib/rush/job_table/job.rb +181 -0
- data/lib/rush/job_table.rb +194 -0
- data/lib/rush/lexer/alias_expander.rb +129 -0
- data/lib/rush/lexer/braced_reader.rb +86 -0
- data/lib/rush/lexer/case_frame.rb +114 -0
- data/lib/rush/lexer/case_tracker.rb +146 -0
- data/lib/rush/lexer/dollar_scanner.rb +53 -0
- data/lib/rush/lexer/double_quote_scanner.rb +71 -0
- data/lib/rush/lexer/heredoc_body.rb +91 -0
- data/lib/rush/lexer/heredoc_reader.rb +93 -0
- data/lib/rush/lexer/lex_state.rb +128 -0
- data/lib/rush/lexer/operator_table.rb +32 -0
- data/lib/rush/lexer/param_scanner.rb +43 -0
- data/lib/rush/lexer/paren_reader.rb +113 -0
- data/lib/rush/lexer/paren_regions.rb +74 -0
- data/lib/rush/lexer/quote_skips.rb +77 -0
- data/lib/rush/lexer/quoted_word.rb +67 -0
- data/lib/rush/lexer/scanner_predicates.rb +20 -0
- data/lib/rush/lexer/source_lines.rb +43 -0
- data/lib/rush/lexer/substitution_reader.rb +77 -0
- data/lib/rush/lexer/token_classifier.rb +144 -0
- data/lib/rush/lexer/token_predicates.rb +23 -0
- data/lib/rush/lexer/word_scanner.rb +134 -0
- data/lib/rush/lexer.rb +174 -0
- data/lib/rush/loop_control_handling.rb +29 -0
- data/lib/rush/loop_nesting.rb +50 -0
- data/lib/rush/loop_runner.rb +55 -0
- data/lib/rush/option_cluster.rb +39 -0
- data/lib/rush/options.rb +76 -0
- data/lib/rush/param_text.rb +39 -0
- data/lib/rush/parser.rb +1213 -0
- data/lib/rush/parser_support.rb +112 -0
- data/lib/rush/pattern_scanner.rb +35 -0
- data/lib/rush/pending_signals.rb +57 -0
- data/lib/rush/pipeline_runner.rb +173 -0
- data/lib/rush/pipeline_statuses.rb +45 -0
- data/lib/rush/positional.rb +45 -0
- data/lib/rush/posix_pattern.rb +78 -0
- data/lib/rush/program_input.rb +89 -0
- data/lib/rush/program_reader.rb +69 -0
- data/lib/rush/program_session.rb +83 -0
- data/lib/rush/prompt.rb +52 -0
- data/lib/rush/redirect_scope.rb +64 -0
- data/lib/rush/redirection/dup_redirect.rb +58 -0
- data/lib/rush/redirection/file_redirect.rb +50 -0
- data/lib/rush/redirection/here_doc_redirect.rb +17 -0
- data/lib/rush/redirection/registry.rb +53 -0
- data/lib/rush/repl.rb +133 -0
- data/lib/rush/runtime_type_checks.rb +16 -0
- data/lib/rush/scope.rb +79 -0
- data/lib/rush/segment_buffer.rb +47 -0
- data/lib/rush/shell_parameters.rb +77 -0
- data/lib/rush/shell_pattern.rb +80 -0
- data/lib/rush/shell_state.rb +163 -0
- data/lib/rush/shell_variables.rb +67 -0
- data/lib/rush/signal_report.rb +41 -0
- data/lib/rush/signals.rb +68 -0
- data/lib/rush/source.rb +82 -0
- data/lib/rush/source_line_counter.rb +41 -0
- data/lib/rush/source_runner.rb +47 -0
- data/lib/rush/startup.rb +75 -0
- data/lib/rush/status.rb +93 -0
- data/lib/rush/stop_relay.rb +32 -0
- data/lib/rush/subshell_runner.rb +70 -0
- data/lib/rush/system_calls/collation.rb +155 -0
- data/lib/rush/system_calls/file_tests.rb +95 -0
- data/lib/rush/system_calls/process_control.rb +165 -0
- data/lib/rush/system_calls/process_identity.rb +43 -0
- data/lib/rush/system_calls/resource_limits.rb +51 -0
- data/lib/rush/system_calls.rb +206 -0
- data/lib/rush/terminal.rb +126 -0
- data/lib/rush/trap_runner.rb +169 -0
- data/lib/rush/trap_table.rb +49 -0
- data/lib/rush/umask_mode.rb +133 -0
- data/lib/rush/version.rb +6 -0
- data/lib/rush.rb +190 -0
- metadata +527 -0
|
@@ -0,0 +1,2354 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
-------- Grammar --------
|
|
4
|
+
|
|
5
|
+
rule 1 program: linebreak
|
|
6
|
+
rule 2 program: linebreak complete_commands linebreak
|
|
7
|
+
rule 3 complete_commands: complete_command
|
|
8
|
+
rule 4 complete_commands: complete_commands newline_list complete_command
|
|
9
|
+
rule 5 complete_command: list separator_op
|
|
10
|
+
rule 6 complete_command: list
|
|
11
|
+
rule 7 list: list separator_op and_or
|
|
12
|
+
rule 8 list: and_or
|
|
13
|
+
rule 9 and_or: pipeline
|
|
14
|
+
rule 10 and_or: and_or AND_IF linebreak pipeline
|
|
15
|
+
rule 11 and_or: and_or OR_IF linebreak pipeline
|
|
16
|
+
rule 12 pipeline: pipe_sequence
|
|
17
|
+
rule 13 pipeline: Bang pipe_sequence
|
|
18
|
+
rule 14 pipe_sequence: command
|
|
19
|
+
rule 15 pipe_sequence: pipe_sequence "|" linebreak command
|
|
20
|
+
rule 16 command: simple_command
|
|
21
|
+
rule 17 command: compound_command
|
|
22
|
+
rule 18 command: compound_command redirect_list
|
|
23
|
+
rule 19 command: function_definition
|
|
24
|
+
rule 20 redirect_list: io_redirect
|
|
25
|
+
rule 21 redirect_list: redirect_list io_redirect
|
|
26
|
+
rule 22 function_definition: WORD "(" ")" linebreak compound_command
|
|
27
|
+
rule 23 compound_command: brace_group
|
|
28
|
+
rule 24 compound_command: subshell
|
|
29
|
+
rule 25 compound_command: if_clause
|
|
30
|
+
rule 26 compound_command: while_clause
|
|
31
|
+
rule 27 compound_command: until_clause
|
|
32
|
+
rule 28 compound_command: for_clause
|
|
33
|
+
rule 29 compound_command: case_clause
|
|
34
|
+
rule 30 brace_group: Lbrace compound_list Rbrace
|
|
35
|
+
rule 31 subshell: "(" compound_list ")"
|
|
36
|
+
rule 32 while_clause: While compound_list do_group
|
|
37
|
+
rule 33 until_clause: Until compound_list do_group
|
|
38
|
+
rule 34 do_group: Do compound_list Done
|
|
39
|
+
rule 35 for_clause: For name do_group
|
|
40
|
+
rule 36 for_clause: For name sequential_sep do_group
|
|
41
|
+
rule 37 for_clause: For name linebreak In sequential_sep do_group
|
|
42
|
+
rule 38 for_clause: For name linebreak In wordlist sequential_sep do_group
|
|
43
|
+
rule 39 name: NAME
|
|
44
|
+
rule 40 wordlist: WORD
|
|
45
|
+
rule 41 wordlist: wordlist WORD
|
|
46
|
+
rule 42 sequential_sep: ";" linebreak
|
|
47
|
+
rule 43 sequential_sep: newline_list
|
|
48
|
+
rule 44 case_clause: Case WORD linebreak In linebreak case_list Esac
|
|
49
|
+
rule 45 case_clause: Case WORD linebreak In linebreak case_list_ns Esac
|
|
50
|
+
rule 46 case_clause: Case WORD linebreak In linebreak Esac
|
|
51
|
+
rule 47 case_list: case_item
|
|
52
|
+
rule 48 case_list: case_list case_item
|
|
53
|
+
rule 49 case_list_ns: case_item_ns
|
|
54
|
+
rule 50 case_list_ns: case_list case_item_ns
|
|
55
|
+
rule 51 case_item: patterns ")" compound_list DSEMI linebreak
|
|
56
|
+
rule 52 case_item: patterns ")" linebreak DSEMI linebreak
|
|
57
|
+
rule 53 case_item: "(" patterns ")" compound_list DSEMI linebreak
|
|
58
|
+
rule 54 case_item: "(" patterns ")" linebreak DSEMI linebreak
|
|
59
|
+
rule 55 case_item_ns: patterns ")" compound_list
|
|
60
|
+
rule 56 case_item_ns: patterns ")" linebreak
|
|
61
|
+
rule 57 case_item_ns: "(" patterns ")" compound_list
|
|
62
|
+
rule 58 case_item_ns: "(" patterns ")" linebreak
|
|
63
|
+
rule 59 patterns: WORD
|
|
64
|
+
rule 60 patterns: patterns "|" WORD
|
|
65
|
+
rule 61 if_clause: If compound_list Then compound_list else_part Fi
|
|
66
|
+
rule 62 if_clause: If compound_list Then compound_list Fi
|
|
67
|
+
rule 63 else_part: Elif compound_list Then compound_list
|
|
68
|
+
rule 64 else_part: Elif compound_list Then compound_list else_part
|
|
69
|
+
rule 65 else_part: Else compound_list
|
|
70
|
+
rule 66 compound_list: linebreak term
|
|
71
|
+
rule 67 compound_list: linebreak term separator
|
|
72
|
+
rule 68 term: term separator and_or
|
|
73
|
+
rule 69 term: and_or
|
|
74
|
+
rule 70 separator: separator_op linebreak
|
|
75
|
+
rule 71 separator: newline_list
|
|
76
|
+
rule 72 simple_command: cmd_prefix cmd_word cmd_suffix
|
|
77
|
+
rule 73 simple_command: cmd_prefix cmd_word
|
|
78
|
+
rule 74 simple_command: cmd_prefix
|
|
79
|
+
rule 75 simple_command: cmd_name cmd_suffix
|
|
80
|
+
rule 76 simple_command: cmd_name
|
|
81
|
+
rule 77 cmd_name: WORD
|
|
82
|
+
rule 78 cmd_word: WORD
|
|
83
|
+
rule 79 cmd_prefix: io_redirect
|
|
84
|
+
rule 80 cmd_prefix: cmd_prefix io_redirect
|
|
85
|
+
rule 81 cmd_prefix: ASSIGNMENT_WORD
|
|
86
|
+
rule 82 cmd_prefix: cmd_prefix ASSIGNMENT_WORD
|
|
87
|
+
rule 83 cmd_suffix: io_redirect
|
|
88
|
+
rule 84 cmd_suffix: cmd_suffix io_redirect
|
|
89
|
+
rule 85 cmd_suffix: WORD
|
|
90
|
+
rule 86 cmd_suffix: cmd_suffix WORD
|
|
91
|
+
rule 87 io_redirect: io_file
|
|
92
|
+
rule 88 io_redirect: IO_NUMBER io_file
|
|
93
|
+
rule 89 io_redirect: io_here
|
|
94
|
+
rule 90 io_redirect: IO_NUMBER io_here
|
|
95
|
+
rule 91 io_here: DLESS WORD
|
|
96
|
+
rule 92 io_here: DLESSDASH WORD
|
|
97
|
+
rule 93 io_file: "<" filename
|
|
98
|
+
rule 94 io_file: ">" filename
|
|
99
|
+
rule 95 io_file: DGREAT filename
|
|
100
|
+
rule 96 io_file: LESSGREAT filename
|
|
101
|
+
rule 97 io_file: CLOBBER filename
|
|
102
|
+
rule 98 io_file: GREATAND filename
|
|
103
|
+
rule 99 io_file: LESSAND filename
|
|
104
|
+
rule 100 filename: WORD
|
|
105
|
+
rule 101 separator_op: "&"
|
|
106
|
+
rule 102 separator_op: ";"
|
|
107
|
+
rule 103 newline_list: NEWLINE
|
|
108
|
+
rule 104 newline_list: newline_list NEWLINE
|
|
109
|
+
rule 105 linebreak: newline_list
|
|
110
|
+
rule 106 linebreak:
|
|
111
|
+
|
|
112
|
+
------- Symbols -------
|
|
113
|
+
|
|
114
|
+
**Nonterminals, with rules where they appear
|
|
115
|
+
|
|
116
|
+
$start (40)
|
|
117
|
+
on right:
|
|
118
|
+
on left :
|
|
119
|
+
program (41)
|
|
120
|
+
on right:
|
|
121
|
+
on left : 1 2
|
|
122
|
+
linebreak (42)
|
|
123
|
+
on right: 1 2 10 11 15 22 37 38 42 44 45 46 51 52 53 54 56 58 66 67 70
|
|
124
|
+
on left : 105 106
|
|
125
|
+
complete_commands (43)
|
|
126
|
+
on right: 2 4
|
|
127
|
+
on left : 3 4
|
|
128
|
+
complete_command (44)
|
|
129
|
+
on right: 3 4
|
|
130
|
+
on left : 5 6
|
|
131
|
+
newline_list (45)
|
|
132
|
+
on right: 4 43 71 104 105
|
|
133
|
+
on left : 103 104
|
|
134
|
+
list (46)
|
|
135
|
+
on right: 5 6 7
|
|
136
|
+
on left : 7 8
|
|
137
|
+
separator_op (47)
|
|
138
|
+
on right: 5 7 70
|
|
139
|
+
on left : 101 102
|
|
140
|
+
and_or (48)
|
|
141
|
+
on right: 7 8 10 11 68 69
|
|
142
|
+
on left : 9 10 11
|
|
143
|
+
pipeline (49)
|
|
144
|
+
on right: 9 10 11
|
|
145
|
+
on left : 12 13
|
|
146
|
+
pipe_sequence (50)
|
|
147
|
+
on right: 12 13 15
|
|
148
|
+
on left : 14 15
|
|
149
|
+
command (51)
|
|
150
|
+
on right: 14 15
|
|
151
|
+
on left : 16 17 18 19
|
|
152
|
+
simple_command (52)
|
|
153
|
+
on right: 16
|
|
154
|
+
on left : 72 73 74 75 76
|
|
155
|
+
compound_command (53)
|
|
156
|
+
on right: 17 18 22
|
|
157
|
+
on left : 23 24 25 26 27 28 29
|
|
158
|
+
redirect_list (54)
|
|
159
|
+
on right: 18 21
|
|
160
|
+
on left : 20 21
|
|
161
|
+
function_definition (55)
|
|
162
|
+
on right: 19
|
|
163
|
+
on left : 22
|
|
164
|
+
io_redirect (56)
|
|
165
|
+
on right: 20 21 79 80 83 84
|
|
166
|
+
on left : 87 88 89 90
|
|
167
|
+
brace_group (57)
|
|
168
|
+
on right: 23
|
|
169
|
+
on left : 30
|
|
170
|
+
subshell (58)
|
|
171
|
+
on right: 24
|
|
172
|
+
on left : 31
|
|
173
|
+
if_clause (59)
|
|
174
|
+
on right: 25
|
|
175
|
+
on left : 61 62
|
|
176
|
+
while_clause (60)
|
|
177
|
+
on right: 26
|
|
178
|
+
on left : 32
|
|
179
|
+
until_clause (61)
|
|
180
|
+
on right: 27
|
|
181
|
+
on left : 33
|
|
182
|
+
for_clause (62)
|
|
183
|
+
on right: 28
|
|
184
|
+
on left : 35 36 37 38
|
|
185
|
+
case_clause (63)
|
|
186
|
+
on right: 29
|
|
187
|
+
on left : 44 45 46
|
|
188
|
+
compound_list (64)
|
|
189
|
+
on right: 30 31 32 33 34 51 53 55 57 61 62 63 64 65
|
|
190
|
+
on left : 66 67
|
|
191
|
+
do_group (65)
|
|
192
|
+
on right: 32 33 35 36 37 38
|
|
193
|
+
on left : 34
|
|
194
|
+
name (66)
|
|
195
|
+
on right: 35 36 37 38
|
|
196
|
+
on left : 39
|
|
197
|
+
sequential_sep (67)
|
|
198
|
+
on right: 36 37 38
|
|
199
|
+
on left : 42 43
|
|
200
|
+
wordlist (68)
|
|
201
|
+
on right: 38 41
|
|
202
|
+
on left : 40 41
|
|
203
|
+
case_list (69)
|
|
204
|
+
on right: 44 48 50
|
|
205
|
+
on left : 47 48
|
|
206
|
+
case_list_ns (70)
|
|
207
|
+
on right: 45
|
|
208
|
+
on left : 49 50
|
|
209
|
+
case_item (71)
|
|
210
|
+
on right: 47 48
|
|
211
|
+
on left : 51 52 53 54
|
|
212
|
+
case_item_ns (72)
|
|
213
|
+
on right: 49 50
|
|
214
|
+
on left : 55 56 57 58
|
|
215
|
+
patterns (73)
|
|
216
|
+
on right: 51 52 53 54 55 56 57 58 60
|
|
217
|
+
on left : 59 60
|
|
218
|
+
else_part (74)
|
|
219
|
+
on right: 61 64
|
|
220
|
+
on left : 63 64 65
|
|
221
|
+
term (75)
|
|
222
|
+
on right: 66 67 68
|
|
223
|
+
on left : 68 69
|
|
224
|
+
separator (76)
|
|
225
|
+
on right: 67 68
|
|
226
|
+
on left : 70 71
|
|
227
|
+
cmd_prefix (77)
|
|
228
|
+
on right: 72 73 74 80 82
|
|
229
|
+
on left : 79 80 81 82
|
|
230
|
+
cmd_word (78)
|
|
231
|
+
on right: 72 73
|
|
232
|
+
on left : 78
|
|
233
|
+
cmd_suffix (79)
|
|
234
|
+
on right: 72 75 84 86
|
|
235
|
+
on left : 83 84 85 86
|
|
236
|
+
cmd_name (80)
|
|
237
|
+
on right: 75 76
|
|
238
|
+
on left : 77
|
|
239
|
+
io_file (81)
|
|
240
|
+
on right: 87 88
|
|
241
|
+
on left : 93 94 95 96 97 98 99
|
|
242
|
+
io_here (82)
|
|
243
|
+
on right: 89 90
|
|
244
|
+
on left : 91 92
|
|
245
|
+
filename (83)
|
|
246
|
+
on right: 93 94 95 96 97 98 99
|
|
247
|
+
on left : 100
|
|
248
|
+
|
|
249
|
+
**Terminals, with rules where they appear
|
|
250
|
+
|
|
251
|
+
$end (0)
|
|
252
|
+
error (1)
|
|
253
|
+
WORD (2) 22 40 41 44 45 46 59 60 77 78 85 86 91 92 100
|
|
254
|
+
ASSIGNMENT_WORD (3) 81 82
|
|
255
|
+
IO_NUMBER (4) 88 90
|
|
256
|
+
NEWLINE (5) 103 104
|
|
257
|
+
AND_IF (6) 10
|
|
258
|
+
OR_IF (7) 11
|
|
259
|
+
DGREAT (8) 95
|
|
260
|
+
LESSGREAT (9) 96
|
|
261
|
+
CLOBBER (10) 97
|
|
262
|
+
DLESS (11) 91
|
|
263
|
+
DLESSDASH (12) 92
|
|
264
|
+
GREATAND (13) 98
|
|
265
|
+
LESSAND (14) 99
|
|
266
|
+
If (15) 61 62
|
|
267
|
+
Then (16) 61 62 63 64
|
|
268
|
+
Else (17) 65
|
|
269
|
+
Elif (18) 63 64
|
|
270
|
+
Fi (19) 61 62
|
|
271
|
+
Lbrace (20) 30
|
|
272
|
+
Rbrace (21) 30
|
|
273
|
+
Bang (22) 13
|
|
274
|
+
While (23) 32
|
|
275
|
+
Until (24) 33
|
|
276
|
+
Do (25) 34
|
|
277
|
+
Done (26) 34
|
|
278
|
+
For (27) 35 36 37 38
|
|
279
|
+
In (28) 37 38 44 45 46
|
|
280
|
+
NAME (29) 39
|
|
281
|
+
Case (30) 44 45 46
|
|
282
|
+
Esac (31) 44 45 46
|
|
283
|
+
DSEMI (32) 51 52 53 54
|
|
284
|
+
"|" (33) 15 60
|
|
285
|
+
"(" (34) 22 31 53 54 57 58
|
|
286
|
+
")" (35) 22 31 51 52 53 54 55 56 57 58
|
|
287
|
+
";" (36) 42 102
|
|
288
|
+
"<" (37) 93
|
|
289
|
+
">" (38) 94
|
|
290
|
+
"&" (39) 101
|
|
291
|
+
|
|
292
|
+
--------- State ---------
|
|
293
|
+
|
|
294
|
+
state 0
|
|
295
|
+
|
|
296
|
+
|
|
297
|
+
NEWLINE shift, and go to state 3
|
|
298
|
+
$default reduce using rule 106 (linebreak)
|
|
299
|
+
|
|
300
|
+
program go to state 1
|
|
301
|
+
linebreak go to state 2
|
|
302
|
+
newline_list go to state 4
|
|
303
|
+
|
|
304
|
+
state 1
|
|
305
|
+
|
|
306
|
+
|
|
307
|
+
$end shift, and go to state 5
|
|
308
|
+
|
|
309
|
+
|
|
310
|
+
state 2
|
|
311
|
+
|
|
312
|
+
1) program : linebreak _
|
|
313
|
+
2) program : linebreak _ complete_commands linebreak
|
|
314
|
+
|
|
315
|
+
WORD shift, and go to state 17
|
|
316
|
+
ASSIGNMENT_WORD shift, and go to state 35
|
|
317
|
+
IO_NUMBER shift, and go to state 37
|
|
318
|
+
DGREAT shift, and go to state 43
|
|
319
|
+
LESSGREAT shift, and go to state 44
|
|
320
|
+
CLOBBER shift, and go to state 45
|
|
321
|
+
DLESS shift, and go to state 39
|
|
322
|
+
DLESSDASH shift, and go to state 40
|
|
323
|
+
GREATAND shift, and go to state 46
|
|
324
|
+
LESSAND shift, and go to state 47
|
|
325
|
+
If shift, and go to state 31
|
|
326
|
+
Lbrace shift, and go to state 25
|
|
327
|
+
Bang shift, and go to state 12
|
|
328
|
+
While shift, and go to state 27
|
|
329
|
+
Until shift, and go to state 28
|
|
330
|
+
For shift, and go to state 29
|
|
331
|
+
Case shift, and go to state 30
|
|
332
|
+
"(" shift, and go to state 26
|
|
333
|
+
"<" shift, and go to state 41
|
|
334
|
+
">" shift, and go to state 42
|
|
335
|
+
$default reduce using rule 1 (program)
|
|
336
|
+
|
|
337
|
+
complete_commands go to state 6
|
|
338
|
+
complete_command go to state 7
|
|
339
|
+
list go to state 8
|
|
340
|
+
and_or go to state 9
|
|
341
|
+
pipeline go to state 10
|
|
342
|
+
pipe_sequence go to state 11
|
|
343
|
+
command go to state 13
|
|
344
|
+
simple_command go to state 14
|
|
345
|
+
compound_command go to state 15
|
|
346
|
+
function_definition go to state 16
|
|
347
|
+
brace_group go to state 18
|
|
348
|
+
subshell go to state 19
|
|
349
|
+
if_clause go to state 20
|
|
350
|
+
while_clause go to state 21
|
|
351
|
+
until_clause go to state 22
|
|
352
|
+
for_clause go to state 23
|
|
353
|
+
case_clause go to state 24
|
|
354
|
+
cmd_prefix go to state 32
|
|
355
|
+
cmd_name go to state 33
|
|
356
|
+
io_redirect go to state 34
|
|
357
|
+
io_file go to state 36
|
|
358
|
+
io_here go to state 38
|
|
359
|
+
|
|
360
|
+
state 3
|
|
361
|
+
|
|
362
|
+
103) newline_list : NEWLINE _
|
|
363
|
+
|
|
364
|
+
$default reduce using rule 103 (newline_list)
|
|
365
|
+
|
|
366
|
+
|
|
367
|
+
state 4
|
|
368
|
+
|
|
369
|
+
104) newline_list : newline_list _ NEWLINE
|
|
370
|
+
105) linebreak : newline_list _
|
|
371
|
+
|
|
372
|
+
NEWLINE shift, and go to state 48
|
|
373
|
+
$default reduce using rule 105 (linebreak)
|
|
374
|
+
|
|
375
|
+
|
|
376
|
+
state 5
|
|
377
|
+
|
|
378
|
+
|
|
379
|
+
$end shift, and go to state 49
|
|
380
|
+
|
|
381
|
+
|
|
382
|
+
state 6
|
|
383
|
+
|
|
384
|
+
2) program : linebreak complete_commands _ linebreak
|
|
385
|
+
4) complete_commands : complete_commands _ newline_list complete_command
|
|
386
|
+
|
|
387
|
+
NEWLINE shift, and go to state 3
|
|
388
|
+
$default reduce using rule 106 (linebreak)
|
|
389
|
+
|
|
390
|
+
linebreak go to state 50
|
|
391
|
+
newline_list go to state 51
|
|
392
|
+
|
|
393
|
+
state 7
|
|
394
|
+
|
|
395
|
+
3) complete_commands : complete_command _
|
|
396
|
+
|
|
397
|
+
$default reduce using rule 3 (complete_commands)
|
|
398
|
+
|
|
399
|
+
|
|
400
|
+
state 8
|
|
401
|
+
|
|
402
|
+
5) complete_command : list _ separator_op
|
|
403
|
+
6) complete_command : list _
|
|
404
|
+
7) list : list _ separator_op and_or
|
|
405
|
+
|
|
406
|
+
";" shift, and go to state 54
|
|
407
|
+
"&" shift, and go to state 53
|
|
408
|
+
$default reduce using rule 6 (complete_command)
|
|
409
|
+
|
|
410
|
+
separator_op go to state 52
|
|
411
|
+
|
|
412
|
+
state 9
|
|
413
|
+
|
|
414
|
+
8) list : and_or _
|
|
415
|
+
10) and_or : and_or _ AND_IF linebreak pipeline
|
|
416
|
+
11) and_or : and_or _ OR_IF linebreak pipeline
|
|
417
|
+
|
|
418
|
+
AND_IF shift, and go to state 55
|
|
419
|
+
OR_IF shift, and go to state 56
|
|
420
|
+
$default reduce using rule 8 (list)
|
|
421
|
+
|
|
422
|
+
|
|
423
|
+
state 10
|
|
424
|
+
|
|
425
|
+
9) and_or : pipeline _
|
|
426
|
+
|
|
427
|
+
$default reduce using rule 9 (and_or)
|
|
428
|
+
|
|
429
|
+
|
|
430
|
+
state 11
|
|
431
|
+
|
|
432
|
+
12) pipeline : pipe_sequence _
|
|
433
|
+
15) pipe_sequence : pipe_sequence _ "|" linebreak command
|
|
434
|
+
|
|
435
|
+
"|" shift, and go to state 57
|
|
436
|
+
$default reduce using rule 12 (pipeline)
|
|
437
|
+
|
|
438
|
+
|
|
439
|
+
state 12
|
|
440
|
+
|
|
441
|
+
13) pipeline : Bang _ pipe_sequence
|
|
442
|
+
|
|
443
|
+
WORD shift, and go to state 17
|
|
444
|
+
ASSIGNMENT_WORD shift, and go to state 35
|
|
445
|
+
IO_NUMBER shift, and go to state 37
|
|
446
|
+
DGREAT shift, and go to state 43
|
|
447
|
+
LESSGREAT shift, and go to state 44
|
|
448
|
+
CLOBBER shift, and go to state 45
|
|
449
|
+
DLESS shift, and go to state 39
|
|
450
|
+
DLESSDASH shift, and go to state 40
|
|
451
|
+
GREATAND shift, and go to state 46
|
|
452
|
+
LESSAND shift, and go to state 47
|
|
453
|
+
If shift, and go to state 31
|
|
454
|
+
Lbrace shift, and go to state 25
|
|
455
|
+
While shift, and go to state 27
|
|
456
|
+
Until shift, and go to state 28
|
|
457
|
+
For shift, and go to state 29
|
|
458
|
+
Case shift, and go to state 30
|
|
459
|
+
"(" shift, and go to state 26
|
|
460
|
+
"<" shift, and go to state 41
|
|
461
|
+
">" shift, and go to state 42
|
|
462
|
+
|
|
463
|
+
pipe_sequence go to state 58
|
|
464
|
+
command go to state 13
|
|
465
|
+
simple_command go to state 14
|
|
466
|
+
compound_command go to state 15
|
|
467
|
+
function_definition go to state 16
|
|
468
|
+
brace_group go to state 18
|
|
469
|
+
subshell go to state 19
|
|
470
|
+
if_clause go to state 20
|
|
471
|
+
while_clause go to state 21
|
|
472
|
+
until_clause go to state 22
|
|
473
|
+
for_clause go to state 23
|
|
474
|
+
case_clause go to state 24
|
|
475
|
+
cmd_prefix go to state 32
|
|
476
|
+
cmd_name go to state 33
|
|
477
|
+
io_redirect go to state 34
|
|
478
|
+
io_file go to state 36
|
|
479
|
+
io_here go to state 38
|
|
480
|
+
|
|
481
|
+
state 13
|
|
482
|
+
|
|
483
|
+
14) pipe_sequence : command _
|
|
484
|
+
|
|
485
|
+
$default reduce using rule 14 (pipe_sequence)
|
|
486
|
+
|
|
487
|
+
|
|
488
|
+
state 14
|
|
489
|
+
|
|
490
|
+
16) command : simple_command _
|
|
491
|
+
|
|
492
|
+
$default reduce using rule 16 (command)
|
|
493
|
+
|
|
494
|
+
|
|
495
|
+
state 15
|
|
496
|
+
|
|
497
|
+
17) command : compound_command _
|
|
498
|
+
18) command : compound_command _ redirect_list
|
|
499
|
+
|
|
500
|
+
IO_NUMBER shift, and go to state 37
|
|
501
|
+
DGREAT shift, and go to state 43
|
|
502
|
+
LESSGREAT shift, and go to state 44
|
|
503
|
+
CLOBBER shift, and go to state 45
|
|
504
|
+
DLESS shift, and go to state 39
|
|
505
|
+
DLESSDASH shift, and go to state 40
|
|
506
|
+
GREATAND shift, and go to state 46
|
|
507
|
+
LESSAND shift, and go to state 47
|
|
508
|
+
"<" shift, and go to state 41
|
|
509
|
+
">" shift, and go to state 42
|
|
510
|
+
$default reduce using rule 17 (command)
|
|
511
|
+
|
|
512
|
+
redirect_list go to state 59
|
|
513
|
+
io_redirect go to state 60
|
|
514
|
+
io_file go to state 36
|
|
515
|
+
io_here go to state 38
|
|
516
|
+
|
|
517
|
+
state 16
|
|
518
|
+
|
|
519
|
+
19) command : function_definition _
|
|
520
|
+
|
|
521
|
+
$default reduce using rule 19 (command)
|
|
522
|
+
|
|
523
|
+
|
|
524
|
+
state 17
|
|
525
|
+
|
|
526
|
+
22) function_definition : WORD _ "(" ")" linebreak compound_command
|
|
527
|
+
77) cmd_name : WORD _
|
|
528
|
+
|
|
529
|
+
"(" shift, and go to state 61
|
|
530
|
+
$default reduce using rule 77 (cmd_name)
|
|
531
|
+
|
|
532
|
+
|
|
533
|
+
state 18
|
|
534
|
+
|
|
535
|
+
23) compound_command : brace_group _
|
|
536
|
+
|
|
537
|
+
$default reduce using rule 23 (compound_command)
|
|
538
|
+
|
|
539
|
+
|
|
540
|
+
state 19
|
|
541
|
+
|
|
542
|
+
24) compound_command : subshell _
|
|
543
|
+
|
|
544
|
+
$default reduce using rule 24 (compound_command)
|
|
545
|
+
|
|
546
|
+
|
|
547
|
+
state 20
|
|
548
|
+
|
|
549
|
+
25) compound_command : if_clause _
|
|
550
|
+
|
|
551
|
+
$default reduce using rule 25 (compound_command)
|
|
552
|
+
|
|
553
|
+
|
|
554
|
+
state 21
|
|
555
|
+
|
|
556
|
+
26) compound_command : while_clause _
|
|
557
|
+
|
|
558
|
+
$default reduce using rule 26 (compound_command)
|
|
559
|
+
|
|
560
|
+
|
|
561
|
+
state 22
|
|
562
|
+
|
|
563
|
+
27) compound_command : until_clause _
|
|
564
|
+
|
|
565
|
+
$default reduce using rule 27 (compound_command)
|
|
566
|
+
|
|
567
|
+
|
|
568
|
+
state 23
|
|
569
|
+
|
|
570
|
+
28) compound_command : for_clause _
|
|
571
|
+
|
|
572
|
+
$default reduce using rule 28 (compound_command)
|
|
573
|
+
|
|
574
|
+
|
|
575
|
+
state 24
|
|
576
|
+
|
|
577
|
+
29) compound_command : case_clause _
|
|
578
|
+
|
|
579
|
+
$default reduce using rule 29 (compound_command)
|
|
580
|
+
|
|
581
|
+
|
|
582
|
+
state 25
|
|
583
|
+
|
|
584
|
+
30) brace_group : Lbrace _ compound_list Rbrace
|
|
585
|
+
|
|
586
|
+
NEWLINE shift, and go to state 3
|
|
587
|
+
$default reduce using rule 106 (linebreak)
|
|
588
|
+
|
|
589
|
+
compound_list go to state 62
|
|
590
|
+
linebreak go to state 63
|
|
591
|
+
newline_list go to state 4
|
|
592
|
+
|
|
593
|
+
state 26
|
|
594
|
+
|
|
595
|
+
31) subshell : "(" _ compound_list ")"
|
|
596
|
+
|
|
597
|
+
NEWLINE shift, and go to state 3
|
|
598
|
+
$default reduce using rule 106 (linebreak)
|
|
599
|
+
|
|
600
|
+
compound_list go to state 64
|
|
601
|
+
linebreak go to state 63
|
|
602
|
+
newline_list go to state 4
|
|
603
|
+
|
|
604
|
+
state 27
|
|
605
|
+
|
|
606
|
+
32) while_clause : While _ compound_list do_group
|
|
607
|
+
|
|
608
|
+
NEWLINE shift, and go to state 3
|
|
609
|
+
$default reduce using rule 106 (linebreak)
|
|
610
|
+
|
|
611
|
+
compound_list go to state 65
|
|
612
|
+
linebreak go to state 63
|
|
613
|
+
newline_list go to state 4
|
|
614
|
+
|
|
615
|
+
state 28
|
|
616
|
+
|
|
617
|
+
33) until_clause : Until _ compound_list do_group
|
|
618
|
+
|
|
619
|
+
NEWLINE shift, and go to state 3
|
|
620
|
+
$default reduce using rule 106 (linebreak)
|
|
621
|
+
|
|
622
|
+
compound_list go to state 66
|
|
623
|
+
linebreak go to state 63
|
|
624
|
+
newline_list go to state 4
|
|
625
|
+
|
|
626
|
+
state 29
|
|
627
|
+
|
|
628
|
+
35) for_clause : For _ name do_group
|
|
629
|
+
36) for_clause : For _ name sequential_sep do_group
|
|
630
|
+
37) for_clause : For _ name linebreak In sequential_sep do_group
|
|
631
|
+
38) for_clause : For _ name linebreak In wordlist sequential_sep do_group
|
|
632
|
+
|
|
633
|
+
NAME shift, and go to state 68
|
|
634
|
+
|
|
635
|
+
name go to state 67
|
|
636
|
+
|
|
637
|
+
state 30
|
|
638
|
+
|
|
639
|
+
44) case_clause : Case _ WORD linebreak In linebreak case_list Esac
|
|
640
|
+
45) case_clause : Case _ WORD linebreak In linebreak case_list_ns Esac
|
|
641
|
+
46) case_clause : Case _ WORD linebreak In linebreak Esac
|
|
642
|
+
|
|
643
|
+
WORD shift, and go to state 69
|
|
644
|
+
|
|
645
|
+
|
|
646
|
+
state 31
|
|
647
|
+
|
|
648
|
+
61) if_clause : If _ compound_list Then compound_list else_part Fi
|
|
649
|
+
62) if_clause : If _ compound_list Then compound_list Fi
|
|
650
|
+
|
|
651
|
+
NEWLINE shift, and go to state 3
|
|
652
|
+
$default reduce using rule 106 (linebreak)
|
|
653
|
+
|
|
654
|
+
compound_list go to state 70
|
|
655
|
+
linebreak go to state 63
|
|
656
|
+
newline_list go to state 4
|
|
657
|
+
|
|
658
|
+
state 32
|
|
659
|
+
|
|
660
|
+
72) simple_command : cmd_prefix _ cmd_word cmd_suffix
|
|
661
|
+
73) simple_command : cmd_prefix _ cmd_word
|
|
662
|
+
74) simple_command : cmd_prefix _
|
|
663
|
+
80) cmd_prefix : cmd_prefix _ io_redirect
|
|
664
|
+
82) cmd_prefix : cmd_prefix _ ASSIGNMENT_WORD
|
|
665
|
+
|
|
666
|
+
WORD shift, and go to state 72
|
|
667
|
+
ASSIGNMENT_WORD shift, and go to state 74
|
|
668
|
+
IO_NUMBER shift, and go to state 37
|
|
669
|
+
DGREAT shift, and go to state 43
|
|
670
|
+
LESSGREAT shift, and go to state 44
|
|
671
|
+
CLOBBER shift, and go to state 45
|
|
672
|
+
DLESS shift, and go to state 39
|
|
673
|
+
DLESSDASH shift, and go to state 40
|
|
674
|
+
GREATAND shift, and go to state 46
|
|
675
|
+
LESSAND shift, and go to state 47
|
|
676
|
+
"<" shift, and go to state 41
|
|
677
|
+
">" shift, and go to state 42
|
|
678
|
+
$default reduce using rule 74 (simple_command)
|
|
679
|
+
|
|
680
|
+
cmd_word go to state 71
|
|
681
|
+
io_redirect go to state 73
|
|
682
|
+
io_file go to state 36
|
|
683
|
+
io_here go to state 38
|
|
684
|
+
|
|
685
|
+
state 33
|
|
686
|
+
|
|
687
|
+
75) simple_command : cmd_name _ cmd_suffix
|
|
688
|
+
76) simple_command : cmd_name _
|
|
689
|
+
|
|
690
|
+
WORD shift, and go to state 77
|
|
691
|
+
IO_NUMBER shift, and go to state 37
|
|
692
|
+
DGREAT shift, and go to state 43
|
|
693
|
+
LESSGREAT shift, and go to state 44
|
|
694
|
+
CLOBBER shift, and go to state 45
|
|
695
|
+
DLESS shift, and go to state 39
|
|
696
|
+
DLESSDASH shift, and go to state 40
|
|
697
|
+
GREATAND shift, and go to state 46
|
|
698
|
+
LESSAND shift, and go to state 47
|
|
699
|
+
"<" shift, and go to state 41
|
|
700
|
+
">" shift, and go to state 42
|
|
701
|
+
$default reduce using rule 76 (simple_command)
|
|
702
|
+
|
|
703
|
+
cmd_suffix go to state 75
|
|
704
|
+
io_redirect go to state 76
|
|
705
|
+
io_file go to state 36
|
|
706
|
+
io_here go to state 38
|
|
707
|
+
|
|
708
|
+
state 34
|
|
709
|
+
|
|
710
|
+
79) cmd_prefix : io_redirect _
|
|
711
|
+
|
|
712
|
+
$default reduce using rule 79 (cmd_prefix)
|
|
713
|
+
|
|
714
|
+
|
|
715
|
+
state 35
|
|
716
|
+
|
|
717
|
+
81) cmd_prefix : ASSIGNMENT_WORD _
|
|
718
|
+
|
|
719
|
+
$default reduce using rule 81 (cmd_prefix)
|
|
720
|
+
|
|
721
|
+
|
|
722
|
+
state 36
|
|
723
|
+
|
|
724
|
+
87) io_redirect : io_file _
|
|
725
|
+
|
|
726
|
+
$default reduce using rule 87 (io_redirect)
|
|
727
|
+
|
|
728
|
+
|
|
729
|
+
state 37
|
|
730
|
+
|
|
731
|
+
88) io_redirect : IO_NUMBER _ io_file
|
|
732
|
+
90) io_redirect : IO_NUMBER _ io_here
|
|
733
|
+
|
|
734
|
+
DGREAT shift, and go to state 43
|
|
735
|
+
LESSGREAT shift, and go to state 44
|
|
736
|
+
CLOBBER shift, and go to state 45
|
|
737
|
+
DLESS shift, and go to state 39
|
|
738
|
+
DLESSDASH shift, and go to state 40
|
|
739
|
+
GREATAND shift, and go to state 46
|
|
740
|
+
LESSAND shift, and go to state 47
|
|
741
|
+
"<" shift, and go to state 41
|
|
742
|
+
">" shift, and go to state 42
|
|
743
|
+
|
|
744
|
+
io_file go to state 78
|
|
745
|
+
io_here go to state 79
|
|
746
|
+
|
|
747
|
+
state 38
|
|
748
|
+
|
|
749
|
+
89) io_redirect : io_here _
|
|
750
|
+
|
|
751
|
+
$default reduce using rule 89 (io_redirect)
|
|
752
|
+
|
|
753
|
+
|
|
754
|
+
state 39
|
|
755
|
+
|
|
756
|
+
91) io_here : DLESS _ WORD
|
|
757
|
+
|
|
758
|
+
WORD shift, and go to state 80
|
|
759
|
+
|
|
760
|
+
|
|
761
|
+
state 40
|
|
762
|
+
|
|
763
|
+
92) io_here : DLESSDASH _ WORD
|
|
764
|
+
|
|
765
|
+
WORD shift, and go to state 81
|
|
766
|
+
|
|
767
|
+
|
|
768
|
+
state 41
|
|
769
|
+
|
|
770
|
+
93) io_file : "<" _ filename
|
|
771
|
+
|
|
772
|
+
WORD shift, and go to state 83
|
|
773
|
+
|
|
774
|
+
filename go to state 82
|
|
775
|
+
|
|
776
|
+
state 42
|
|
777
|
+
|
|
778
|
+
94) io_file : ">" _ filename
|
|
779
|
+
|
|
780
|
+
WORD shift, and go to state 83
|
|
781
|
+
|
|
782
|
+
filename go to state 84
|
|
783
|
+
|
|
784
|
+
state 43
|
|
785
|
+
|
|
786
|
+
95) io_file : DGREAT _ filename
|
|
787
|
+
|
|
788
|
+
WORD shift, and go to state 83
|
|
789
|
+
|
|
790
|
+
filename go to state 85
|
|
791
|
+
|
|
792
|
+
state 44
|
|
793
|
+
|
|
794
|
+
96) io_file : LESSGREAT _ filename
|
|
795
|
+
|
|
796
|
+
WORD shift, and go to state 83
|
|
797
|
+
|
|
798
|
+
filename go to state 86
|
|
799
|
+
|
|
800
|
+
state 45
|
|
801
|
+
|
|
802
|
+
97) io_file : CLOBBER _ filename
|
|
803
|
+
|
|
804
|
+
WORD shift, and go to state 83
|
|
805
|
+
|
|
806
|
+
filename go to state 87
|
|
807
|
+
|
|
808
|
+
state 46
|
|
809
|
+
|
|
810
|
+
98) io_file : GREATAND _ filename
|
|
811
|
+
|
|
812
|
+
WORD shift, and go to state 83
|
|
813
|
+
|
|
814
|
+
filename go to state 88
|
|
815
|
+
|
|
816
|
+
state 47
|
|
817
|
+
|
|
818
|
+
99) io_file : LESSAND _ filename
|
|
819
|
+
|
|
820
|
+
WORD shift, and go to state 83
|
|
821
|
+
|
|
822
|
+
filename go to state 89
|
|
823
|
+
|
|
824
|
+
state 48
|
|
825
|
+
|
|
826
|
+
104) newline_list : newline_list NEWLINE _
|
|
827
|
+
|
|
828
|
+
$default reduce using rule 104 (newline_list)
|
|
829
|
+
|
|
830
|
+
|
|
831
|
+
state 49
|
|
832
|
+
|
|
833
|
+
|
|
834
|
+
$default accept
|
|
835
|
+
|
|
836
|
+
|
|
837
|
+
state 50
|
|
838
|
+
|
|
839
|
+
2) program : linebreak complete_commands linebreak _
|
|
840
|
+
|
|
841
|
+
$default reduce using rule 2 (program)
|
|
842
|
+
|
|
843
|
+
|
|
844
|
+
state 51
|
|
845
|
+
|
|
846
|
+
4) complete_commands : complete_commands newline_list _ complete_command
|
|
847
|
+
104) newline_list : newline_list _ NEWLINE
|
|
848
|
+
105) linebreak : newline_list _
|
|
849
|
+
|
|
850
|
+
WORD shift, and go to state 17
|
|
851
|
+
ASSIGNMENT_WORD shift, and go to state 35
|
|
852
|
+
IO_NUMBER shift, and go to state 37
|
|
853
|
+
NEWLINE shift, and go to state 48
|
|
854
|
+
DGREAT shift, and go to state 43
|
|
855
|
+
LESSGREAT shift, and go to state 44
|
|
856
|
+
CLOBBER shift, and go to state 45
|
|
857
|
+
DLESS shift, and go to state 39
|
|
858
|
+
DLESSDASH shift, and go to state 40
|
|
859
|
+
GREATAND shift, and go to state 46
|
|
860
|
+
LESSAND shift, and go to state 47
|
|
861
|
+
If shift, and go to state 31
|
|
862
|
+
Lbrace shift, and go to state 25
|
|
863
|
+
Bang shift, and go to state 12
|
|
864
|
+
While shift, and go to state 27
|
|
865
|
+
Until shift, and go to state 28
|
|
866
|
+
For shift, and go to state 29
|
|
867
|
+
Case shift, and go to state 30
|
|
868
|
+
"(" shift, and go to state 26
|
|
869
|
+
"<" shift, and go to state 41
|
|
870
|
+
">" shift, and go to state 42
|
|
871
|
+
$default reduce using rule 105 (linebreak)
|
|
872
|
+
|
|
873
|
+
complete_command go to state 90
|
|
874
|
+
list go to state 8
|
|
875
|
+
and_or go to state 9
|
|
876
|
+
pipeline go to state 10
|
|
877
|
+
pipe_sequence go to state 11
|
|
878
|
+
command go to state 13
|
|
879
|
+
simple_command go to state 14
|
|
880
|
+
compound_command go to state 15
|
|
881
|
+
function_definition go to state 16
|
|
882
|
+
brace_group go to state 18
|
|
883
|
+
subshell go to state 19
|
|
884
|
+
if_clause go to state 20
|
|
885
|
+
while_clause go to state 21
|
|
886
|
+
until_clause go to state 22
|
|
887
|
+
for_clause go to state 23
|
|
888
|
+
case_clause go to state 24
|
|
889
|
+
cmd_prefix go to state 32
|
|
890
|
+
cmd_name go to state 33
|
|
891
|
+
io_redirect go to state 34
|
|
892
|
+
io_file go to state 36
|
|
893
|
+
io_here go to state 38
|
|
894
|
+
|
|
895
|
+
state 52
|
|
896
|
+
|
|
897
|
+
5) complete_command : list separator_op _
|
|
898
|
+
7) list : list separator_op _ and_or
|
|
899
|
+
|
|
900
|
+
WORD shift, and go to state 17
|
|
901
|
+
ASSIGNMENT_WORD shift, and go to state 35
|
|
902
|
+
IO_NUMBER shift, and go to state 37
|
|
903
|
+
DGREAT shift, and go to state 43
|
|
904
|
+
LESSGREAT shift, and go to state 44
|
|
905
|
+
CLOBBER shift, and go to state 45
|
|
906
|
+
DLESS shift, and go to state 39
|
|
907
|
+
DLESSDASH shift, and go to state 40
|
|
908
|
+
GREATAND shift, and go to state 46
|
|
909
|
+
LESSAND shift, and go to state 47
|
|
910
|
+
If shift, and go to state 31
|
|
911
|
+
Lbrace shift, and go to state 25
|
|
912
|
+
Bang shift, and go to state 12
|
|
913
|
+
While shift, and go to state 27
|
|
914
|
+
Until shift, and go to state 28
|
|
915
|
+
For shift, and go to state 29
|
|
916
|
+
Case shift, and go to state 30
|
|
917
|
+
"(" shift, and go to state 26
|
|
918
|
+
"<" shift, and go to state 41
|
|
919
|
+
">" shift, and go to state 42
|
|
920
|
+
$default reduce using rule 5 (complete_command)
|
|
921
|
+
|
|
922
|
+
and_or go to state 91
|
|
923
|
+
pipeline go to state 10
|
|
924
|
+
pipe_sequence go to state 11
|
|
925
|
+
command go to state 13
|
|
926
|
+
simple_command go to state 14
|
|
927
|
+
compound_command go to state 15
|
|
928
|
+
function_definition go to state 16
|
|
929
|
+
brace_group go to state 18
|
|
930
|
+
subshell go to state 19
|
|
931
|
+
if_clause go to state 20
|
|
932
|
+
while_clause go to state 21
|
|
933
|
+
until_clause go to state 22
|
|
934
|
+
for_clause go to state 23
|
|
935
|
+
case_clause go to state 24
|
|
936
|
+
cmd_prefix go to state 32
|
|
937
|
+
cmd_name go to state 33
|
|
938
|
+
io_redirect go to state 34
|
|
939
|
+
io_file go to state 36
|
|
940
|
+
io_here go to state 38
|
|
941
|
+
|
|
942
|
+
state 53
|
|
943
|
+
|
|
944
|
+
101) separator_op : "&" _
|
|
945
|
+
|
|
946
|
+
$default reduce using rule 101 (separator_op)
|
|
947
|
+
|
|
948
|
+
|
|
949
|
+
state 54
|
|
950
|
+
|
|
951
|
+
102) separator_op : ";" _
|
|
952
|
+
|
|
953
|
+
$default reduce using rule 102 (separator_op)
|
|
954
|
+
|
|
955
|
+
|
|
956
|
+
state 55
|
|
957
|
+
|
|
958
|
+
10) and_or : and_or AND_IF _ linebreak pipeline
|
|
959
|
+
|
|
960
|
+
NEWLINE shift, and go to state 3
|
|
961
|
+
$default reduce using rule 106 (linebreak)
|
|
962
|
+
|
|
963
|
+
linebreak go to state 92
|
|
964
|
+
newline_list go to state 4
|
|
965
|
+
|
|
966
|
+
state 56
|
|
967
|
+
|
|
968
|
+
11) and_or : and_or OR_IF _ linebreak pipeline
|
|
969
|
+
|
|
970
|
+
NEWLINE shift, and go to state 3
|
|
971
|
+
$default reduce using rule 106 (linebreak)
|
|
972
|
+
|
|
973
|
+
linebreak go to state 93
|
|
974
|
+
newline_list go to state 4
|
|
975
|
+
|
|
976
|
+
state 57
|
|
977
|
+
|
|
978
|
+
15) pipe_sequence : pipe_sequence "|" _ linebreak command
|
|
979
|
+
|
|
980
|
+
NEWLINE shift, and go to state 3
|
|
981
|
+
$default reduce using rule 106 (linebreak)
|
|
982
|
+
|
|
983
|
+
linebreak go to state 94
|
|
984
|
+
newline_list go to state 4
|
|
985
|
+
|
|
986
|
+
state 58
|
|
987
|
+
|
|
988
|
+
13) pipeline : Bang pipe_sequence _
|
|
989
|
+
15) pipe_sequence : pipe_sequence _ "|" linebreak command
|
|
990
|
+
|
|
991
|
+
"|" shift, and go to state 57
|
|
992
|
+
$default reduce using rule 13 (pipeline)
|
|
993
|
+
|
|
994
|
+
|
|
995
|
+
state 59
|
|
996
|
+
|
|
997
|
+
18) command : compound_command redirect_list _
|
|
998
|
+
21) redirect_list : redirect_list _ io_redirect
|
|
999
|
+
|
|
1000
|
+
IO_NUMBER shift, and go to state 37
|
|
1001
|
+
DGREAT shift, and go to state 43
|
|
1002
|
+
LESSGREAT shift, and go to state 44
|
|
1003
|
+
CLOBBER shift, and go to state 45
|
|
1004
|
+
DLESS shift, and go to state 39
|
|
1005
|
+
DLESSDASH shift, and go to state 40
|
|
1006
|
+
GREATAND shift, and go to state 46
|
|
1007
|
+
LESSAND shift, and go to state 47
|
|
1008
|
+
"<" shift, and go to state 41
|
|
1009
|
+
">" shift, and go to state 42
|
|
1010
|
+
$default reduce using rule 18 (command)
|
|
1011
|
+
|
|
1012
|
+
io_redirect go to state 95
|
|
1013
|
+
io_file go to state 36
|
|
1014
|
+
io_here go to state 38
|
|
1015
|
+
|
|
1016
|
+
state 60
|
|
1017
|
+
|
|
1018
|
+
20) redirect_list : io_redirect _
|
|
1019
|
+
|
|
1020
|
+
$default reduce using rule 20 (redirect_list)
|
|
1021
|
+
|
|
1022
|
+
|
|
1023
|
+
state 61
|
|
1024
|
+
|
|
1025
|
+
22) function_definition : WORD "(" _ ")" linebreak compound_command
|
|
1026
|
+
|
|
1027
|
+
")" shift, and go to state 96
|
|
1028
|
+
|
|
1029
|
+
|
|
1030
|
+
state 62
|
|
1031
|
+
|
|
1032
|
+
30) brace_group : Lbrace compound_list _ Rbrace
|
|
1033
|
+
|
|
1034
|
+
Rbrace shift, and go to state 97
|
|
1035
|
+
|
|
1036
|
+
|
|
1037
|
+
state 63
|
|
1038
|
+
|
|
1039
|
+
66) compound_list : linebreak _ term
|
|
1040
|
+
67) compound_list : linebreak _ term separator
|
|
1041
|
+
|
|
1042
|
+
WORD shift, and go to state 17
|
|
1043
|
+
ASSIGNMENT_WORD shift, and go to state 35
|
|
1044
|
+
IO_NUMBER shift, and go to state 37
|
|
1045
|
+
DGREAT shift, and go to state 43
|
|
1046
|
+
LESSGREAT shift, and go to state 44
|
|
1047
|
+
CLOBBER shift, and go to state 45
|
|
1048
|
+
DLESS shift, and go to state 39
|
|
1049
|
+
DLESSDASH shift, and go to state 40
|
|
1050
|
+
GREATAND shift, and go to state 46
|
|
1051
|
+
LESSAND shift, and go to state 47
|
|
1052
|
+
If shift, and go to state 31
|
|
1053
|
+
Lbrace shift, and go to state 25
|
|
1054
|
+
Bang shift, and go to state 12
|
|
1055
|
+
While shift, and go to state 27
|
|
1056
|
+
Until shift, and go to state 28
|
|
1057
|
+
For shift, and go to state 29
|
|
1058
|
+
Case shift, and go to state 30
|
|
1059
|
+
"(" shift, and go to state 26
|
|
1060
|
+
"<" shift, and go to state 41
|
|
1061
|
+
">" shift, and go to state 42
|
|
1062
|
+
|
|
1063
|
+
pipeline go to state 10
|
|
1064
|
+
and_or go to state 98
|
|
1065
|
+
pipe_sequence go to state 11
|
|
1066
|
+
command go to state 13
|
|
1067
|
+
simple_command go to state 14
|
|
1068
|
+
compound_command go to state 15
|
|
1069
|
+
function_definition go to state 16
|
|
1070
|
+
brace_group go to state 18
|
|
1071
|
+
subshell go to state 19
|
|
1072
|
+
if_clause go to state 20
|
|
1073
|
+
while_clause go to state 21
|
|
1074
|
+
until_clause go to state 22
|
|
1075
|
+
for_clause go to state 23
|
|
1076
|
+
case_clause go to state 24
|
|
1077
|
+
term go to state 99
|
|
1078
|
+
cmd_prefix go to state 32
|
|
1079
|
+
cmd_name go to state 33
|
|
1080
|
+
io_redirect go to state 34
|
|
1081
|
+
io_file go to state 36
|
|
1082
|
+
io_here go to state 38
|
|
1083
|
+
|
|
1084
|
+
state 64
|
|
1085
|
+
|
|
1086
|
+
31) subshell : "(" compound_list _ ")"
|
|
1087
|
+
|
|
1088
|
+
")" shift, and go to state 100
|
|
1089
|
+
|
|
1090
|
+
|
|
1091
|
+
state 65
|
|
1092
|
+
|
|
1093
|
+
32) while_clause : While compound_list _ do_group
|
|
1094
|
+
|
|
1095
|
+
Do shift, and go to state 102
|
|
1096
|
+
|
|
1097
|
+
do_group go to state 101
|
|
1098
|
+
|
|
1099
|
+
state 66
|
|
1100
|
+
|
|
1101
|
+
33) until_clause : Until compound_list _ do_group
|
|
1102
|
+
|
|
1103
|
+
Do shift, and go to state 102
|
|
1104
|
+
|
|
1105
|
+
do_group go to state 103
|
|
1106
|
+
|
|
1107
|
+
state 67
|
|
1108
|
+
|
|
1109
|
+
35) for_clause : For name _ do_group
|
|
1110
|
+
36) for_clause : For name _ sequential_sep do_group
|
|
1111
|
+
37) for_clause : For name _ linebreak In sequential_sep do_group
|
|
1112
|
+
38) for_clause : For name _ linebreak In wordlist sequential_sep do_group
|
|
1113
|
+
|
|
1114
|
+
NEWLINE shift, and go to state 3
|
|
1115
|
+
Do shift, and go to state 102
|
|
1116
|
+
";" shift, and go to state 107
|
|
1117
|
+
$default reduce using rule 106 (linebreak)
|
|
1118
|
+
|
|
1119
|
+
do_group go to state 104
|
|
1120
|
+
sequential_sep go to state 105
|
|
1121
|
+
linebreak go to state 106
|
|
1122
|
+
newline_list go to state 108
|
|
1123
|
+
|
|
1124
|
+
state 68
|
|
1125
|
+
|
|
1126
|
+
39) name : NAME _
|
|
1127
|
+
|
|
1128
|
+
$default reduce using rule 39 (name)
|
|
1129
|
+
|
|
1130
|
+
|
|
1131
|
+
state 69
|
|
1132
|
+
|
|
1133
|
+
44) case_clause : Case WORD _ linebreak In linebreak case_list Esac
|
|
1134
|
+
45) case_clause : Case WORD _ linebreak In linebreak case_list_ns Esac
|
|
1135
|
+
46) case_clause : Case WORD _ linebreak In linebreak Esac
|
|
1136
|
+
|
|
1137
|
+
NEWLINE shift, and go to state 3
|
|
1138
|
+
$default reduce using rule 106 (linebreak)
|
|
1139
|
+
|
|
1140
|
+
linebreak go to state 109
|
|
1141
|
+
newline_list go to state 4
|
|
1142
|
+
|
|
1143
|
+
state 70
|
|
1144
|
+
|
|
1145
|
+
61) if_clause : If compound_list _ Then compound_list else_part Fi
|
|
1146
|
+
62) if_clause : If compound_list _ Then compound_list Fi
|
|
1147
|
+
|
|
1148
|
+
Then shift, and go to state 110
|
|
1149
|
+
|
|
1150
|
+
|
|
1151
|
+
state 71
|
|
1152
|
+
|
|
1153
|
+
72) simple_command : cmd_prefix cmd_word _ cmd_suffix
|
|
1154
|
+
73) simple_command : cmd_prefix cmd_word _
|
|
1155
|
+
|
|
1156
|
+
WORD shift, and go to state 77
|
|
1157
|
+
IO_NUMBER shift, and go to state 37
|
|
1158
|
+
DGREAT shift, and go to state 43
|
|
1159
|
+
LESSGREAT shift, and go to state 44
|
|
1160
|
+
CLOBBER shift, and go to state 45
|
|
1161
|
+
DLESS shift, and go to state 39
|
|
1162
|
+
DLESSDASH shift, and go to state 40
|
|
1163
|
+
GREATAND shift, and go to state 46
|
|
1164
|
+
LESSAND shift, and go to state 47
|
|
1165
|
+
"<" shift, and go to state 41
|
|
1166
|
+
">" shift, and go to state 42
|
|
1167
|
+
$default reduce using rule 73 (simple_command)
|
|
1168
|
+
|
|
1169
|
+
cmd_suffix go to state 111
|
|
1170
|
+
io_redirect go to state 76
|
|
1171
|
+
io_file go to state 36
|
|
1172
|
+
io_here go to state 38
|
|
1173
|
+
|
|
1174
|
+
state 72
|
|
1175
|
+
|
|
1176
|
+
78) cmd_word : WORD _
|
|
1177
|
+
|
|
1178
|
+
$default reduce using rule 78 (cmd_word)
|
|
1179
|
+
|
|
1180
|
+
|
|
1181
|
+
state 73
|
|
1182
|
+
|
|
1183
|
+
80) cmd_prefix : cmd_prefix io_redirect _
|
|
1184
|
+
|
|
1185
|
+
$default reduce using rule 80 (cmd_prefix)
|
|
1186
|
+
|
|
1187
|
+
|
|
1188
|
+
state 74
|
|
1189
|
+
|
|
1190
|
+
82) cmd_prefix : cmd_prefix ASSIGNMENT_WORD _
|
|
1191
|
+
|
|
1192
|
+
$default reduce using rule 82 (cmd_prefix)
|
|
1193
|
+
|
|
1194
|
+
|
|
1195
|
+
state 75
|
|
1196
|
+
|
|
1197
|
+
75) simple_command : cmd_name cmd_suffix _
|
|
1198
|
+
84) cmd_suffix : cmd_suffix _ io_redirect
|
|
1199
|
+
86) cmd_suffix : cmd_suffix _ WORD
|
|
1200
|
+
|
|
1201
|
+
WORD shift, and go to state 113
|
|
1202
|
+
IO_NUMBER shift, and go to state 37
|
|
1203
|
+
DGREAT shift, and go to state 43
|
|
1204
|
+
LESSGREAT shift, and go to state 44
|
|
1205
|
+
CLOBBER shift, and go to state 45
|
|
1206
|
+
DLESS shift, and go to state 39
|
|
1207
|
+
DLESSDASH shift, and go to state 40
|
|
1208
|
+
GREATAND shift, and go to state 46
|
|
1209
|
+
LESSAND shift, and go to state 47
|
|
1210
|
+
"<" shift, and go to state 41
|
|
1211
|
+
">" shift, and go to state 42
|
|
1212
|
+
$default reduce using rule 75 (simple_command)
|
|
1213
|
+
|
|
1214
|
+
io_redirect go to state 112
|
|
1215
|
+
io_file go to state 36
|
|
1216
|
+
io_here go to state 38
|
|
1217
|
+
|
|
1218
|
+
state 76
|
|
1219
|
+
|
|
1220
|
+
83) cmd_suffix : io_redirect _
|
|
1221
|
+
|
|
1222
|
+
$default reduce using rule 83 (cmd_suffix)
|
|
1223
|
+
|
|
1224
|
+
|
|
1225
|
+
state 77
|
|
1226
|
+
|
|
1227
|
+
85) cmd_suffix : WORD _
|
|
1228
|
+
|
|
1229
|
+
$default reduce using rule 85 (cmd_suffix)
|
|
1230
|
+
|
|
1231
|
+
|
|
1232
|
+
state 78
|
|
1233
|
+
|
|
1234
|
+
88) io_redirect : IO_NUMBER io_file _
|
|
1235
|
+
|
|
1236
|
+
$default reduce using rule 88 (io_redirect)
|
|
1237
|
+
|
|
1238
|
+
|
|
1239
|
+
state 79
|
|
1240
|
+
|
|
1241
|
+
90) io_redirect : IO_NUMBER io_here _
|
|
1242
|
+
|
|
1243
|
+
$default reduce using rule 90 (io_redirect)
|
|
1244
|
+
|
|
1245
|
+
|
|
1246
|
+
state 80
|
|
1247
|
+
|
|
1248
|
+
91) io_here : DLESS WORD _
|
|
1249
|
+
|
|
1250
|
+
$default reduce using rule 91 (io_here)
|
|
1251
|
+
|
|
1252
|
+
|
|
1253
|
+
state 81
|
|
1254
|
+
|
|
1255
|
+
92) io_here : DLESSDASH WORD _
|
|
1256
|
+
|
|
1257
|
+
$default reduce using rule 92 (io_here)
|
|
1258
|
+
|
|
1259
|
+
|
|
1260
|
+
state 82
|
|
1261
|
+
|
|
1262
|
+
93) io_file : "<" filename _
|
|
1263
|
+
|
|
1264
|
+
$default reduce using rule 93 (io_file)
|
|
1265
|
+
|
|
1266
|
+
|
|
1267
|
+
state 83
|
|
1268
|
+
|
|
1269
|
+
100) filename : WORD _
|
|
1270
|
+
|
|
1271
|
+
$default reduce using rule 100 (filename)
|
|
1272
|
+
|
|
1273
|
+
|
|
1274
|
+
state 84
|
|
1275
|
+
|
|
1276
|
+
94) io_file : ">" filename _
|
|
1277
|
+
|
|
1278
|
+
$default reduce using rule 94 (io_file)
|
|
1279
|
+
|
|
1280
|
+
|
|
1281
|
+
state 85
|
|
1282
|
+
|
|
1283
|
+
95) io_file : DGREAT filename _
|
|
1284
|
+
|
|
1285
|
+
$default reduce using rule 95 (io_file)
|
|
1286
|
+
|
|
1287
|
+
|
|
1288
|
+
state 86
|
|
1289
|
+
|
|
1290
|
+
96) io_file : LESSGREAT filename _
|
|
1291
|
+
|
|
1292
|
+
$default reduce using rule 96 (io_file)
|
|
1293
|
+
|
|
1294
|
+
|
|
1295
|
+
state 87
|
|
1296
|
+
|
|
1297
|
+
97) io_file : CLOBBER filename _
|
|
1298
|
+
|
|
1299
|
+
$default reduce using rule 97 (io_file)
|
|
1300
|
+
|
|
1301
|
+
|
|
1302
|
+
state 88
|
|
1303
|
+
|
|
1304
|
+
98) io_file : GREATAND filename _
|
|
1305
|
+
|
|
1306
|
+
$default reduce using rule 98 (io_file)
|
|
1307
|
+
|
|
1308
|
+
|
|
1309
|
+
state 89
|
|
1310
|
+
|
|
1311
|
+
99) io_file : LESSAND filename _
|
|
1312
|
+
|
|
1313
|
+
$default reduce using rule 99 (io_file)
|
|
1314
|
+
|
|
1315
|
+
|
|
1316
|
+
state 90
|
|
1317
|
+
|
|
1318
|
+
4) complete_commands : complete_commands newline_list complete_command _
|
|
1319
|
+
|
|
1320
|
+
$default reduce using rule 4 (complete_commands)
|
|
1321
|
+
|
|
1322
|
+
|
|
1323
|
+
state 91
|
|
1324
|
+
|
|
1325
|
+
7) list : list separator_op and_or _
|
|
1326
|
+
10) and_or : and_or _ AND_IF linebreak pipeline
|
|
1327
|
+
11) and_or : and_or _ OR_IF linebreak pipeline
|
|
1328
|
+
|
|
1329
|
+
AND_IF shift, and go to state 55
|
|
1330
|
+
OR_IF shift, and go to state 56
|
|
1331
|
+
$default reduce using rule 7 (list)
|
|
1332
|
+
|
|
1333
|
+
|
|
1334
|
+
state 92
|
|
1335
|
+
|
|
1336
|
+
10) and_or : and_or AND_IF linebreak _ pipeline
|
|
1337
|
+
|
|
1338
|
+
WORD shift, and go to state 17
|
|
1339
|
+
ASSIGNMENT_WORD shift, and go to state 35
|
|
1340
|
+
IO_NUMBER shift, and go to state 37
|
|
1341
|
+
DGREAT shift, and go to state 43
|
|
1342
|
+
LESSGREAT shift, and go to state 44
|
|
1343
|
+
CLOBBER shift, and go to state 45
|
|
1344
|
+
DLESS shift, and go to state 39
|
|
1345
|
+
DLESSDASH shift, and go to state 40
|
|
1346
|
+
GREATAND shift, and go to state 46
|
|
1347
|
+
LESSAND shift, and go to state 47
|
|
1348
|
+
If shift, and go to state 31
|
|
1349
|
+
Lbrace shift, and go to state 25
|
|
1350
|
+
Bang shift, and go to state 12
|
|
1351
|
+
While shift, and go to state 27
|
|
1352
|
+
Until shift, and go to state 28
|
|
1353
|
+
For shift, and go to state 29
|
|
1354
|
+
Case shift, and go to state 30
|
|
1355
|
+
"(" shift, and go to state 26
|
|
1356
|
+
"<" shift, and go to state 41
|
|
1357
|
+
">" shift, and go to state 42
|
|
1358
|
+
|
|
1359
|
+
pipeline go to state 114
|
|
1360
|
+
pipe_sequence go to state 11
|
|
1361
|
+
command go to state 13
|
|
1362
|
+
simple_command go to state 14
|
|
1363
|
+
compound_command go to state 15
|
|
1364
|
+
function_definition go to state 16
|
|
1365
|
+
brace_group go to state 18
|
|
1366
|
+
subshell go to state 19
|
|
1367
|
+
if_clause go to state 20
|
|
1368
|
+
while_clause go to state 21
|
|
1369
|
+
until_clause go to state 22
|
|
1370
|
+
for_clause go to state 23
|
|
1371
|
+
case_clause go to state 24
|
|
1372
|
+
cmd_prefix go to state 32
|
|
1373
|
+
cmd_name go to state 33
|
|
1374
|
+
io_redirect go to state 34
|
|
1375
|
+
io_file go to state 36
|
|
1376
|
+
io_here go to state 38
|
|
1377
|
+
|
|
1378
|
+
state 93
|
|
1379
|
+
|
|
1380
|
+
11) and_or : and_or OR_IF linebreak _ pipeline
|
|
1381
|
+
|
|
1382
|
+
WORD shift, and go to state 17
|
|
1383
|
+
ASSIGNMENT_WORD shift, and go to state 35
|
|
1384
|
+
IO_NUMBER shift, and go to state 37
|
|
1385
|
+
DGREAT shift, and go to state 43
|
|
1386
|
+
LESSGREAT shift, and go to state 44
|
|
1387
|
+
CLOBBER shift, and go to state 45
|
|
1388
|
+
DLESS shift, and go to state 39
|
|
1389
|
+
DLESSDASH shift, and go to state 40
|
|
1390
|
+
GREATAND shift, and go to state 46
|
|
1391
|
+
LESSAND shift, and go to state 47
|
|
1392
|
+
If shift, and go to state 31
|
|
1393
|
+
Lbrace shift, and go to state 25
|
|
1394
|
+
Bang shift, and go to state 12
|
|
1395
|
+
While shift, and go to state 27
|
|
1396
|
+
Until shift, and go to state 28
|
|
1397
|
+
For shift, and go to state 29
|
|
1398
|
+
Case shift, and go to state 30
|
|
1399
|
+
"(" shift, and go to state 26
|
|
1400
|
+
"<" shift, and go to state 41
|
|
1401
|
+
">" shift, and go to state 42
|
|
1402
|
+
|
|
1403
|
+
pipeline go to state 115
|
|
1404
|
+
pipe_sequence go to state 11
|
|
1405
|
+
command go to state 13
|
|
1406
|
+
simple_command go to state 14
|
|
1407
|
+
compound_command go to state 15
|
|
1408
|
+
function_definition go to state 16
|
|
1409
|
+
brace_group go to state 18
|
|
1410
|
+
subshell go to state 19
|
|
1411
|
+
if_clause go to state 20
|
|
1412
|
+
while_clause go to state 21
|
|
1413
|
+
until_clause go to state 22
|
|
1414
|
+
for_clause go to state 23
|
|
1415
|
+
case_clause go to state 24
|
|
1416
|
+
cmd_prefix go to state 32
|
|
1417
|
+
cmd_name go to state 33
|
|
1418
|
+
io_redirect go to state 34
|
|
1419
|
+
io_file go to state 36
|
|
1420
|
+
io_here go to state 38
|
|
1421
|
+
|
|
1422
|
+
state 94
|
|
1423
|
+
|
|
1424
|
+
15) pipe_sequence : pipe_sequence "|" linebreak _ command
|
|
1425
|
+
|
|
1426
|
+
WORD shift, and go to state 17
|
|
1427
|
+
ASSIGNMENT_WORD shift, and go to state 35
|
|
1428
|
+
IO_NUMBER shift, and go to state 37
|
|
1429
|
+
DGREAT shift, and go to state 43
|
|
1430
|
+
LESSGREAT shift, and go to state 44
|
|
1431
|
+
CLOBBER shift, and go to state 45
|
|
1432
|
+
DLESS shift, and go to state 39
|
|
1433
|
+
DLESSDASH shift, and go to state 40
|
|
1434
|
+
GREATAND shift, and go to state 46
|
|
1435
|
+
LESSAND shift, and go to state 47
|
|
1436
|
+
If shift, and go to state 31
|
|
1437
|
+
Lbrace shift, and go to state 25
|
|
1438
|
+
While shift, and go to state 27
|
|
1439
|
+
Until shift, and go to state 28
|
|
1440
|
+
For shift, and go to state 29
|
|
1441
|
+
Case shift, and go to state 30
|
|
1442
|
+
"(" shift, and go to state 26
|
|
1443
|
+
"<" shift, and go to state 41
|
|
1444
|
+
">" shift, and go to state 42
|
|
1445
|
+
|
|
1446
|
+
command go to state 116
|
|
1447
|
+
simple_command go to state 14
|
|
1448
|
+
compound_command go to state 15
|
|
1449
|
+
function_definition go to state 16
|
|
1450
|
+
brace_group go to state 18
|
|
1451
|
+
subshell go to state 19
|
|
1452
|
+
if_clause go to state 20
|
|
1453
|
+
while_clause go to state 21
|
|
1454
|
+
until_clause go to state 22
|
|
1455
|
+
for_clause go to state 23
|
|
1456
|
+
case_clause go to state 24
|
|
1457
|
+
cmd_prefix go to state 32
|
|
1458
|
+
cmd_name go to state 33
|
|
1459
|
+
io_redirect go to state 34
|
|
1460
|
+
io_file go to state 36
|
|
1461
|
+
io_here go to state 38
|
|
1462
|
+
|
|
1463
|
+
state 95
|
|
1464
|
+
|
|
1465
|
+
21) redirect_list : redirect_list io_redirect _
|
|
1466
|
+
|
|
1467
|
+
$default reduce using rule 21 (redirect_list)
|
|
1468
|
+
|
|
1469
|
+
|
|
1470
|
+
state 96
|
|
1471
|
+
|
|
1472
|
+
22) function_definition : WORD "(" ")" _ linebreak compound_command
|
|
1473
|
+
|
|
1474
|
+
NEWLINE shift, and go to state 3
|
|
1475
|
+
$default reduce using rule 106 (linebreak)
|
|
1476
|
+
|
|
1477
|
+
linebreak go to state 117
|
|
1478
|
+
newline_list go to state 4
|
|
1479
|
+
|
|
1480
|
+
state 97
|
|
1481
|
+
|
|
1482
|
+
30) brace_group : Lbrace compound_list Rbrace _
|
|
1483
|
+
|
|
1484
|
+
$default reduce using rule 30 (brace_group)
|
|
1485
|
+
|
|
1486
|
+
|
|
1487
|
+
state 98
|
|
1488
|
+
|
|
1489
|
+
10) and_or : and_or _ AND_IF linebreak pipeline
|
|
1490
|
+
11) and_or : and_or _ OR_IF linebreak pipeline
|
|
1491
|
+
69) term : and_or _
|
|
1492
|
+
|
|
1493
|
+
AND_IF shift, and go to state 55
|
|
1494
|
+
OR_IF shift, and go to state 56
|
|
1495
|
+
$default reduce using rule 69 (term)
|
|
1496
|
+
|
|
1497
|
+
|
|
1498
|
+
state 99
|
|
1499
|
+
|
|
1500
|
+
66) compound_list : linebreak term _
|
|
1501
|
+
67) compound_list : linebreak term _ separator
|
|
1502
|
+
68) term : term _ separator and_or
|
|
1503
|
+
|
|
1504
|
+
NEWLINE shift, and go to state 3
|
|
1505
|
+
";" shift, and go to state 54
|
|
1506
|
+
"&" shift, and go to state 53
|
|
1507
|
+
$default reduce using rule 66 (compound_list)
|
|
1508
|
+
|
|
1509
|
+
separator go to state 118
|
|
1510
|
+
separator_op go to state 119
|
|
1511
|
+
newline_list go to state 120
|
|
1512
|
+
|
|
1513
|
+
state 100
|
|
1514
|
+
|
|
1515
|
+
31) subshell : "(" compound_list ")" _
|
|
1516
|
+
|
|
1517
|
+
$default reduce using rule 31 (subshell)
|
|
1518
|
+
|
|
1519
|
+
|
|
1520
|
+
state 101
|
|
1521
|
+
|
|
1522
|
+
32) while_clause : While compound_list do_group _
|
|
1523
|
+
|
|
1524
|
+
$default reduce using rule 32 (while_clause)
|
|
1525
|
+
|
|
1526
|
+
|
|
1527
|
+
state 102
|
|
1528
|
+
|
|
1529
|
+
34) do_group : Do _ compound_list Done
|
|
1530
|
+
|
|
1531
|
+
NEWLINE shift, and go to state 3
|
|
1532
|
+
$default reduce using rule 106 (linebreak)
|
|
1533
|
+
|
|
1534
|
+
compound_list go to state 121
|
|
1535
|
+
linebreak go to state 63
|
|
1536
|
+
newline_list go to state 4
|
|
1537
|
+
|
|
1538
|
+
state 103
|
|
1539
|
+
|
|
1540
|
+
33) until_clause : Until compound_list do_group _
|
|
1541
|
+
|
|
1542
|
+
$default reduce using rule 33 (until_clause)
|
|
1543
|
+
|
|
1544
|
+
|
|
1545
|
+
state 104
|
|
1546
|
+
|
|
1547
|
+
35) for_clause : For name do_group _
|
|
1548
|
+
|
|
1549
|
+
$default reduce using rule 35 (for_clause)
|
|
1550
|
+
|
|
1551
|
+
|
|
1552
|
+
state 105
|
|
1553
|
+
|
|
1554
|
+
36) for_clause : For name sequential_sep _ do_group
|
|
1555
|
+
|
|
1556
|
+
Do shift, and go to state 102
|
|
1557
|
+
|
|
1558
|
+
do_group go to state 122
|
|
1559
|
+
|
|
1560
|
+
state 106
|
|
1561
|
+
|
|
1562
|
+
37) for_clause : For name linebreak _ In sequential_sep do_group
|
|
1563
|
+
38) for_clause : For name linebreak _ In wordlist sequential_sep do_group
|
|
1564
|
+
|
|
1565
|
+
In shift, and go to state 123
|
|
1566
|
+
|
|
1567
|
+
|
|
1568
|
+
state 107
|
|
1569
|
+
|
|
1570
|
+
42) sequential_sep : ";" _ linebreak
|
|
1571
|
+
|
|
1572
|
+
NEWLINE shift, and go to state 3
|
|
1573
|
+
$default reduce using rule 106 (linebreak)
|
|
1574
|
+
|
|
1575
|
+
linebreak go to state 124
|
|
1576
|
+
newline_list go to state 4
|
|
1577
|
+
|
|
1578
|
+
state 108
|
|
1579
|
+
|
|
1580
|
+
43) sequential_sep : newline_list _
|
|
1581
|
+
104) newline_list : newline_list _ NEWLINE
|
|
1582
|
+
105) linebreak : newline_list _
|
|
1583
|
+
|
|
1584
|
+
NEWLINE shift, and go to state 48
|
|
1585
|
+
In reduce using rule 105 (linebreak)
|
|
1586
|
+
$default reduce using rule 43 (sequential_sep)
|
|
1587
|
+
|
|
1588
|
+
|
|
1589
|
+
state 109
|
|
1590
|
+
|
|
1591
|
+
44) case_clause : Case WORD linebreak _ In linebreak case_list Esac
|
|
1592
|
+
45) case_clause : Case WORD linebreak _ In linebreak case_list_ns Esac
|
|
1593
|
+
46) case_clause : Case WORD linebreak _ In linebreak Esac
|
|
1594
|
+
|
|
1595
|
+
In shift, and go to state 125
|
|
1596
|
+
|
|
1597
|
+
|
|
1598
|
+
state 110
|
|
1599
|
+
|
|
1600
|
+
61) if_clause : If compound_list Then _ compound_list else_part Fi
|
|
1601
|
+
62) if_clause : If compound_list Then _ compound_list Fi
|
|
1602
|
+
|
|
1603
|
+
NEWLINE shift, and go to state 3
|
|
1604
|
+
$default reduce using rule 106 (linebreak)
|
|
1605
|
+
|
|
1606
|
+
compound_list go to state 126
|
|
1607
|
+
linebreak go to state 63
|
|
1608
|
+
newline_list go to state 4
|
|
1609
|
+
|
|
1610
|
+
state 111
|
|
1611
|
+
|
|
1612
|
+
72) simple_command : cmd_prefix cmd_word cmd_suffix _
|
|
1613
|
+
84) cmd_suffix : cmd_suffix _ io_redirect
|
|
1614
|
+
86) cmd_suffix : cmd_suffix _ WORD
|
|
1615
|
+
|
|
1616
|
+
WORD shift, and go to state 113
|
|
1617
|
+
IO_NUMBER shift, and go to state 37
|
|
1618
|
+
DGREAT shift, and go to state 43
|
|
1619
|
+
LESSGREAT shift, and go to state 44
|
|
1620
|
+
CLOBBER shift, and go to state 45
|
|
1621
|
+
DLESS shift, and go to state 39
|
|
1622
|
+
DLESSDASH shift, and go to state 40
|
|
1623
|
+
GREATAND shift, and go to state 46
|
|
1624
|
+
LESSAND shift, and go to state 47
|
|
1625
|
+
"<" shift, and go to state 41
|
|
1626
|
+
">" shift, and go to state 42
|
|
1627
|
+
$default reduce using rule 72 (simple_command)
|
|
1628
|
+
|
|
1629
|
+
io_redirect go to state 112
|
|
1630
|
+
io_file go to state 36
|
|
1631
|
+
io_here go to state 38
|
|
1632
|
+
|
|
1633
|
+
state 112
|
|
1634
|
+
|
|
1635
|
+
84) cmd_suffix : cmd_suffix io_redirect _
|
|
1636
|
+
|
|
1637
|
+
$default reduce using rule 84 (cmd_suffix)
|
|
1638
|
+
|
|
1639
|
+
|
|
1640
|
+
state 113
|
|
1641
|
+
|
|
1642
|
+
86) cmd_suffix : cmd_suffix WORD _
|
|
1643
|
+
|
|
1644
|
+
$default reduce using rule 86 (cmd_suffix)
|
|
1645
|
+
|
|
1646
|
+
|
|
1647
|
+
state 114
|
|
1648
|
+
|
|
1649
|
+
10) and_or : and_or AND_IF linebreak pipeline _
|
|
1650
|
+
|
|
1651
|
+
$default reduce using rule 10 (and_or)
|
|
1652
|
+
|
|
1653
|
+
|
|
1654
|
+
state 115
|
|
1655
|
+
|
|
1656
|
+
11) and_or : and_or OR_IF linebreak pipeline _
|
|
1657
|
+
|
|
1658
|
+
$default reduce using rule 11 (and_or)
|
|
1659
|
+
|
|
1660
|
+
|
|
1661
|
+
state 116
|
|
1662
|
+
|
|
1663
|
+
15) pipe_sequence : pipe_sequence "|" linebreak command _
|
|
1664
|
+
|
|
1665
|
+
$default reduce using rule 15 (pipe_sequence)
|
|
1666
|
+
|
|
1667
|
+
|
|
1668
|
+
state 117
|
|
1669
|
+
|
|
1670
|
+
22) function_definition : WORD "(" ")" linebreak _ compound_command
|
|
1671
|
+
|
|
1672
|
+
If shift, and go to state 31
|
|
1673
|
+
Lbrace shift, and go to state 25
|
|
1674
|
+
While shift, and go to state 27
|
|
1675
|
+
Until shift, and go to state 28
|
|
1676
|
+
For shift, and go to state 29
|
|
1677
|
+
Case shift, and go to state 30
|
|
1678
|
+
"(" shift, and go to state 26
|
|
1679
|
+
|
|
1680
|
+
compound_command go to state 127
|
|
1681
|
+
brace_group go to state 18
|
|
1682
|
+
subshell go to state 19
|
|
1683
|
+
if_clause go to state 20
|
|
1684
|
+
while_clause go to state 21
|
|
1685
|
+
until_clause go to state 22
|
|
1686
|
+
for_clause go to state 23
|
|
1687
|
+
case_clause go to state 24
|
|
1688
|
+
|
|
1689
|
+
state 118
|
|
1690
|
+
|
|
1691
|
+
67) compound_list : linebreak term separator _
|
|
1692
|
+
68) term : term separator _ and_or
|
|
1693
|
+
|
|
1694
|
+
WORD shift, and go to state 17
|
|
1695
|
+
ASSIGNMENT_WORD shift, and go to state 35
|
|
1696
|
+
IO_NUMBER shift, and go to state 37
|
|
1697
|
+
DGREAT shift, and go to state 43
|
|
1698
|
+
LESSGREAT shift, and go to state 44
|
|
1699
|
+
CLOBBER shift, and go to state 45
|
|
1700
|
+
DLESS shift, and go to state 39
|
|
1701
|
+
DLESSDASH shift, and go to state 40
|
|
1702
|
+
GREATAND shift, and go to state 46
|
|
1703
|
+
LESSAND shift, and go to state 47
|
|
1704
|
+
If shift, and go to state 31
|
|
1705
|
+
Lbrace shift, and go to state 25
|
|
1706
|
+
Bang shift, and go to state 12
|
|
1707
|
+
While shift, and go to state 27
|
|
1708
|
+
Until shift, and go to state 28
|
|
1709
|
+
For shift, and go to state 29
|
|
1710
|
+
Case shift, and go to state 30
|
|
1711
|
+
"(" shift, and go to state 26
|
|
1712
|
+
"<" shift, and go to state 41
|
|
1713
|
+
">" shift, and go to state 42
|
|
1714
|
+
$default reduce using rule 67 (compound_list)
|
|
1715
|
+
|
|
1716
|
+
pipeline go to state 10
|
|
1717
|
+
and_or go to state 128
|
|
1718
|
+
pipe_sequence go to state 11
|
|
1719
|
+
command go to state 13
|
|
1720
|
+
simple_command go to state 14
|
|
1721
|
+
compound_command go to state 15
|
|
1722
|
+
function_definition go to state 16
|
|
1723
|
+
brace_group go to state 18
|
|
1724
|
+
subshell go to state 19
|
|
1725
|
+
if_clause go to state 20
|
|
1726
|
+
while_clause go to state 21
|
|
1727
|
+
until_clause go to state 22
|
|
1728
|
+
for_clause go to state 23
|
|
1729
|
+
case_clause go to state 24
|
|
1730
|
+
cmd_prefix go to state 32
|
|
1731
|
+
cmd_name go to state 33
|
|
1732
|
+
io_redirect go to state 34
|
|
1733
|
+
io_file go to state 36
|
|
1734
|
+
io_here go to state 38
|
|
1735
|
+
|
|
1736
|
+
state 119
|
|
1737
|
+
|
|
1738
|
+
70) separator : separator_op _ linebreak
|
|
1739
|
+
|
|
1740
|
+
NEWLINE shift, and go to state 3
|
|
1741
|
+
$default reduce using rule 106 (linebreak)
|
|
1742
|
+
|
|
1743
|
+
linebreak go to state 129
|
|
1744
|
+
newline_list go to state 4
|
|
1745
|
+
|
|
1746
|
+
state 120
|
|
1747
|
+
|
|
1748
|
+
71) separator : newline_list _
|
|
1749
|
+
104) newline_list : newline_list _ NEWLINE
|
|
1750
|
+
|
|
1751
|
+
NEWLINE shift, and go to state 48
|
|
1752
|
+
$default reduce using rule 71 (separator)
|
|
1753
|
+
|
|
1754
|
+
|
|
1755
|
+
state 121
|
|
1756
|
+
|
|
1757
|
+
34) do_group : Do compound_list _ Done
|
|
1758
|
+
|
|
1759
|
+
Done shift, and go to state 130
|
|
1760
|
+
|
|
1761
|
+
|
|
1762
|
+
state 122
|
|
1763
|
+
|
|
1764
|
+
36) for_clause : For name sequential_sep do_group _
|
|
1765
|
+
|
|
1766
|
+
$default reduce using rule 36 (for_clause)
|
|
1767
|
+
|
|
1768
|
+
|
|
1769
|
+
state 123
|
|
1770
|
+
|
|
1771
|
+
37) for_clause : For name linebreak In _ sequential_sep do_group
|
|
1772
|
+
38) for_clause : For name linebreak In _ wordlist sequential_sep do_group
|
|
1773
|
+
|
|
1774
|
+
WORD shift, and go to state 133
|
|
1775
|
+
NEWLINE shift, and go to state 3
|
|
1776
|
+
";" shift, and go to state 107
|
|
1777
|
+
|
|
1778
|
+
sequential_sep go to state 131
|
|
1779
|
+
wordlist go to state 132
|
|
1780
|
+
newline_list go to state 134
|
|
1781
|
+
|
|
1782
|
+
state 124
|
|
1783
|
+
|
|
1784
|
+
42) sequential_sep : ";" linebreak _
|
|
1785
|
+
|
|
1786
|
+
$default reduce using rule 42 (sequential_sep)
|
|
1787
|
+
|
|
1788
|
+
|
|
1789
|
+
state 125
|
|
1790
|
+
|
|
1791
|
+
44) case_clause : Case WORD linebreak In _ linebreak case_list Esac
|
|
1792
|
+
45) case_clause : Case WORD linebreak In _ linebreak case_list_ns Esac
|
|
1793
|
+
46) case_clause : Case WORD linebreak In _ linebreak Esac
|
|
1794
|
+
|
|
1795
|
+
NEWLINE shift, and go to state 3
|
|
1796
|
+
$default reduce using rule 106 (linebreak)
|
|
1797
|
+
|
|
1798
|
+
linebreak go to state 135
|
|
1799
|
+
newline_list go to state 4
|
|
1800
|
+
|
|
1801
|
+
state 126
|
|
1802
|
+
|
|
1803
|
+
61) if_clause : If compound_list Then compound_list _ else_part Fi
|
|
1804
|
+
62) if_clause : If compound_list Then compound_list _ Fi
|
|
1805
|
+
|
|
1806
|
+
Else shift, and go to state 139
|
|
1807
|
+
Elif shift, and go to state 138
|
|
1808
|
+
Fi shift, and go to state 137
|
|
1809
|
+
|
|
1810
|
+
else_part go to state 136
|
|
1811
|
+
|
|
1812
|
+
state 127
|
|
1813
|
+
|
|
1814
|
+
22) function_definition : WORD "(" ")" linebreak compound_command _
|
|
1815
|
+
|
|
1816
|
+
$default reduce using rule 22 (function_definition)
|
|
1817
|
+
|
|
1818
|
+
|
|
1819
|
+
state 128
|
|
1820
|
+
|
|
1821
|
+
10) and_or : and_or _ AND_IF linebreak pipeline
|
|
1822
|
+
11) and_or : and_or _ OR_IF linebreak pipeline
|
|
1823
|
+
68) term : term separator and_or _
|
|
1824
|
+
|
|
1825
|
+
AND_IF shift, and go to state 55
|
|
1826
|
+
OR_IF shift, and go to state 56
|
|
1827
|
+
$default reduce using rule 68 (term)
|
|
1828
|
+
|
|
1829
|
+
|
|
1830
|
+
state 129
|
|
1831
|
+
|
|
1832
|
+
70) separator : separator_op linebreak _
|
|
1833
|
+
|
|
1834
|
+
$default reduce using rule 70 (separator)
|
|
1835
|
+
|
|
1836
|
+
|
|
1837
|
+
state 130
|
|
1838
|
+
|
|
1839
|
+
34) do_group : Do compound_list Done _
|
|
1840
|
+
|
|
1841
|
+
$default reduce using rule 34 (do_group)
|
|
1842
|
+
|
|
1843
|
+
|
|
1844
|
+
state 131
|
|
1845
|
+
|
|
1846
|
+
37) for_clause : For name linebreak In sequential_sep _ do_group
|
|
1847
|
+
|
|
1848
|
+
Do shift, and go to state 102
|
|
1849
|
+
|
|
1850
|
+
do_group go to state 140
|
|
1851
|
+
|
|
1852
|
+
state 132
|
|
1853
|
+
|
|
1854
|
+
38) for_clause : For name linebreak In wordlist _ sequential_sep do_group
|
|
1855
|
+
41) wordlist : wordlist _ WORD
|
|
1856
|
+
|
|
1857
|
+
WORD shift, and go to state 142
|
|
1858
|
+
NEWLINE shift, and go to state 3
|
|
1859
|
+
";" shift, and go to state 107
|
|
1860
|
+
|
|
1861
|
+
sequential_sep go to state 141
|
|
1862
|
+
newline_list go to state 134
|
|
1863
|
+
|
|
1864
|
+
state 133
|
|
1865
|
+
|
|
1866
|
+
40) wordlist : WORD _
|
|
1867
|
+
|
|
1868
|
+
$default reduce using rule 40 (wordlist)
|
|
1869
|
+
|
|
1870
|
+
|
|
1871
|
+
state 134
|
|
1872
|
+
|
|
1873
|
+
43) sequential_sep : newline_list _
|
|
1874
|
+
104) newline_list : newline_list _ NEWLINE
|
|
1875
|
+
|
|
1876
|
+
NEWLINE shift, and go to state 48
|
|
1877
|
+
$default reduce using rule 43 (sequential_sep)
|
|
1878
|
+
|
|
1879
|
+
|
|
1880
|
+
state 135
|
|
1881
|
+
|
|
1882
|
+
44) case_clause : Case WORD linebreak In linebreak _ case_list Esac
|
|
1883
|
+
45) case_clause : Case WORD linebreak In linebreak _ case_list_ns Esac
|
|
1884
|
+
46) case_clause : Case WORD linebreak In linebreak _ Esac
|
|
1885
|
+
|
|
1886
|
+
WORD shift, and go to state 150
|
|
1887
|
+
Esac shift, and go to state 145
|
|
1888
|
+
"(" shift, and go to state 149
|
|
1889
|
+
|
|
1890
|
+
case_list go to state 143
|
|
1891
|
+
case_list_ns go to state 144
|
|
1892
|
+
case_item go to state 146
|
|
1893
|
+
case_item_ns go to state 147
|
|
1894
|
+
patterns go to state 148
|
|
1895
|
+
|
|
1896
|
+
state 136
|
|
1897
|
+
|
|
1898
|
+
61) if_clause : If compound_list Then compound_list else_part _ Fi
|
|
1899
|
+
|
|
1900
|
+
Fi shift, and go to state 151
|
|
1901
|
+
|
|
1902
|
+
|
|
1903
|
+
state 137
|
|
1904
|
+
|
|
1905
|
+
62) if_clause : If compound_list Then compound_list Fi _
|
|
1906
|
+
|
|
1907
|
+
$default reduce using rule 62 (if_clause)
|
|
1908
|
+
|
|
1909
|
+
|
|
1910
|
+
state 138
|
|
1911
|
+
|
|
1912
|
+
63) else_part : Elif _ compound_list Then compound_list
|
|
1913
|
+
64) else_part : Elif _ compound_list Then compound_list else_part
|
|
1914
|
+
|
|
1915
|
+
NEWLINE shift, and go to state 3
|
|
1916
|
+
$default reduce using rule 106 (linebreak)
|
|
1917
|
+
|
|
1918
|
+
compound_list go to state 152
|
|
1919
|
+
linebreak go to state 63
|
|
1920
|
+
newline_list go to state 4
|
|
1921
|
+
|
|
1922
|
+
state 139
|
|
1923
|
+
|
|
1924
|
+
65) else_part : Else _ compound_list
|
|
1925
|
+
|
|
1926
|
+
NEWLINE shift, and go to state 3
|
|
1927
|
+
$default reduce using rule 106 (linebreak)
|
|
1928
|
+
|
|
1929
|
+
compound_list go to state 153
|
|
1930
|
+
linebreak go to state 63
|
|
1931
|
+
newline_list go to state 4
|
|
1932
|
+
|
|
1933
|
+
state 140
|
|
1934
|
+
|
|
1935
|
+
37) for_clause : For name linebreak In sequential_sep do_group _
|
|
1936
|
+
|
|
1937
|
+
$default reduce using rule 37 (for_clause)
|
|
1938
|
+
|
|
1939
|
+
|
|
1940
|
+
state 141
|
|
1941
|
+
|
|
1942
|
+
38) for_clause : For name linebreak In wordlist sequential_sep _ do_group
|
|
1943
|
+
|
|
1944
|
+
Do shift, and go to state 102
|
|
1945
|
+
|
|
1946
|
+
do_group go to state 154
|
|
1947
|
+
|
|
1948
|
+
state 142
|
|
1949
|
+
|
|
1950
|
+
41) wordlist : wordlist WORD _
|
|
1951
|
+
|
|
1952
|
+
$default reduce using rule 41 (wordlist)
|
|
1953
|
+
|
|
1954
|
+
|
|
1955
|
+
state 143
|
|
1956
|
+
|
|
1957
|
+
44) case_clause : Case WORD linebreak In linebreak case_list _ Esac
|
|
1958
|
+
48) case_list : case_list _ case_item
|
|
1959
|
+
50) case_list_ns : case_list _ case_item_ns
|
|
1960
|
+
|
|
1961
|
+
WORD shift, and go to state 150
|
|
1962
|
+
Esac shift, and go to state 155
|
|
1963
|
+
"(" shift, and go to state 149
|
|
1964
|
+
|
|
1965
|
+
case_item go to state 156
|
|
1966
|
+
case_item_ns go to state 157
|
|
1967
|
+
patterns go to state 148
|
|
1968
|
+
|
|
1969
|
+
state 144
|
|
1970
|
+
|
|
1971
|
+
45) case_clause : Case WORD linebreak In linebreak case_list_ns _ Esac
|
|
1972
|
+
|
|
1973
|
+
Esac shift, and go to state 158
|
|
1974
|
+
|
|
1975
|
+
|
|
1976
|
+
state 145
|
|
1977
|
+
|
|
1978
|
+
46) case_clause : Case WORD linebreak In linebreak Esac _
|
|
1979
|
+
|
|
1980
|
+
$default reduce using rule 46 (case_clause)
|
|
1981
|
+
|
|
1982
|
+
|
|
1983
|
+
state 146
|
|
1984
|
+
|
|
1985
|
+
47) case_list : case_item _
|
|
1986
|
+
|
|
1987
|
+
$default reduce using rule 47 (case_list)
|
|
1988
|
+
|
|
1989
|
+
|
|
1990
|
+
state 147
|
|
1991
|
+
|
|
1992
|
+
49) case_list_ns : case_item_ns _
|
|
1993
|
+
|
|
1994
|
+
$default reduce using rule 49 (case_list_ns)
|
|
1995
|
+
|
|
1996
|
+
|
|
1997
|
+
state 148
|
|
1998
|
+
|
|
1999
|
+
51) case_item : patterns _ ")" compound_list DSEMI linebreak
|
|
2000
|
+
52) case_item : patterns _ ")" linebreak DSEMI linebreak
|
|
2001
|
+
55) case_item_ns : patterns _ ")" compound_list
|
|
2002
|
+
56) case_item_ns : patterns _ ")" linebreak
|
|
2003
|
+
60) patterns : patterns _ "|" WORD
|
|
2004
|
+
|
|
2005
|
+
"|" shift, and go to state 160
|
|
2006
|
+
")" shift, and go to state 159
|
|
2007
|
+
|
|
2008
|
+
|
|
2009
|
+
state 149
|
|
2010
|
+
|
|
2011
|
+
53) case_item : "(" _ patterns ")" compound_list DSEMI linebreak
|
|
2012
|
+
54) case_item : "(" _ patterns ")" linebreak DSEMI linebreak
|
|
2013
|
+
57) case_item_ns : "(" _ patterns ")" compound_list
|
|
2014
|
+
58) case_item_ns : "(" _ patterns ")" linebreak
|
|
2015
|
+
|
|
2016
|
+
WORD shift, and go to state 150
|
|
2017
|
+
|
|
2018
|
+
patterns go to state 161
|
|
2019
|
+
|
|
2020
|
+
state 150
|
|
2021
|
+
|
|
2022
|
+
59) patterns : WORD _
|
|
2023
|
+
|
|
2024
|
+
$default reduce using rule 59 (patterns)
|
|
2025
|
+
|
|
2026
|
+
|
|
2027
|
+
state 151
|
|
2028
|
+
|
|
2029
|
+
61) if_clause : If compound_list Then compound_list else_part Fi _
|
|
2030
|
+
|
|
2031
|
+
$default reduce using rule 61 (if_clause)
|
|
2032
|
+
|
|
2033
|
+
|
|
2034
|
+
state 152
|
|
2035
|
+
|
|
2036
|
+
63) else_part : Elif compound_list _ Then compound_list
|
|
2037
|
+
64) else_part : Elif compound_list _ Then compound_list else_part
|
|
2038
|
+
|
|
2039
|
+
Then shift, and go to state 162
|
|
2040
|
+
|
|
2041
|
+
|
|
2042
|
+
state 153
|
|
2043
|
+
|
|
2044
|
+
65) else_part : Else compound_list _
|
|
2045
|
+
|
|
2046
|
+
$default reduce using rule 65 (else_part)
|
|
2047
|
+
|
|
2048
|
+
|
|
2049
|
+
state 154
|
|
2050
|
+
|
|
2051
|
+
38) for_clause : For name linebreak In wordlist sequential_sep do_group _
|
|
2052
|
+
|
|
2053
|
+
$default reduce using rule 38 (for_clause)
|
|
2054
|
+
|
|
2055
|
+
|
|
2056
|
+
state 155
|
|
2057
|
+
|
|
2058
|
+
44) case_clause : Case WORD linebreak In linebreak case_list Esac _
|
|
2059
|
+
|
|
2060
|
+
$default reduce using rule 44 (case_clause)
|
|
2061
|
+
|
|
2062
|
+
|
|
2063
|
+
state 156
|
|
2064
|
+
|
|
2065
|
+
48) case_list : case_list case_item _
|
|
2066
|
+
|
|
2067
|
+
$default reduce using rule 48 (case_list)
|
|
2068
|
+
|
|
2069
|
+
|
|
2070
|
+
state 157
|
|
2071
|
+
|
|
2072
|
+
50) case_list_ns : case_list case_item_ns _
|
|
2073
|
+
|
|
2074
|
+
$default reduce using rule 50 (case_list_ns)
|
|
2075
|
+
|
|
2076
|
+
|
|
2077
|
+
state 158
|
|
2078
|
+
|
|
2079
|
+
45) case_clause : Case WORD linebreak In linebreak case_list_ns Esac _
|
|
2080
|
+
|
|
2081
|
+
$default reduce using rule 45 (case_clause)
|
|
2082
|
+
|
|
2083
|
+
|
|
2084
|
+
state 159
|
|
2085
|
+
|
|
2086
|
+
51) case_item : patterns ")" _ compound_list DSEMI linebreak
|
|
2087
|
+
52) case_item : patterns ")" _ linebreak DSEMI linebreak
|
|
2088
|
+
55) case_item_ns : patterns ")" _ compound_list
|
|
2089
|
+
56) case_item_ns : patterns ")" _ linebreak
|
|
2090
|
+
|
|
2091
|
+
NEWLINE shift, and go to state 3
|
|
2092
|
+
$default reduce using rule 106 (linebreak)
|
|
2093
|
+
|
|
2094
|
+
compound_list go to state 163
|
|
2095
|
+
linebreak go to state 164
|
|
2096
|
+
newline_list go to state 4
|
|
2097
|
+
|
|
2098
|
+
state 160
|
|
2099
|
+
|
|
2100
|
+
60) patterns : patterns "|" _ WORD
|
|
2101
|
+
|
|
2102
|
+
WORD shift, and go to state 165
|
|
2103
|
+
|
|
2104
|
+
|
|
2105
|
+
state 161
|
|
2106
|
+
|
|
2107
|
+
53) case_item : "(" patterns _ ")" compound_list DSEMI linebreak
|
|
2108
|
+
54) case_item : "(" patterns _ ")" linebreak DSEMI linebreak
|
|
2109
|
+
57) case_item_ns : "(" patterns _ ")" compound_list
|
|
2110
|
+
58) case_item_ns : "(" patterns _ ")" linebreak
|
|
2111
|
+
60) patterns : patterns _ "|" WORD
|
|
2112
|
+
|
|
2113
|
+
"|" shift, and go to state 160
|
|
2114
|
+
")" shift, and go to state 166
|
|
2115
|
+
|
|
2116
|
+
|
|
2117
|
+
state 162
|
|
2118
|
+
|
|
2119
|
+
63) else_part : Elif compound_list Then _ compound_list
|
|
2120
|
+
64) else_part : Elif compound_list Then _ compound_list else_part
|
|
2121
|
+
|
|
2122
|
+
NEWLINE shift, and go to state 3
|
|
2123
|
+
$default reduce using rule 106 (linebreak)
|
|
2124
|
+
|
|
2125
|
+
compound_list go to state 167
|
|
2126
|
+
linebreak go to state 63
|
|
2127
|
+
newline_list go to state 4
|
|
2128
|
+
|
|
2129
|
+
state 163
|
|
2130
|
+
|
|
2131
|
+
51) case_item : patterns ")" compound_list _ DSEMI linebreak
|
|
2132
|
+
55) case_item_ns : patterns ")" compound_list _
|
|
2133
|
+
|
|
2134
|
+
DSEMI shift, and go to state 168
|
|
2135
|
+
$default reduce using rule 55 (case_item_ns)
|
|
2136
|
+
|
|
2137
|
+
|
|
2138
|
+
state 164
|
|
2139
|
+
|
|
2140
|
+
52) case_item : patterns ")" linebreak _ DSEMI linebreak
|
|
2141
|
+
56) case_item_ns : patterns ")" linebreak _
|
|
2142
|
+
66) compound_list : linebreak _ term
|
|
2143
|
+
67) compound_list : linebreak _ term separator
|
|
2144
|
+
|
|
2145
|
+
WORD shift, and go to state 17
|
|
2146
|
+
ASSIGNMENT_WORD shift, and go to state 35
|
|
2147
|
+
IO_NUMBER shift, and go to state 37
|
|
2148
|
+
DGREAT shift, and go to state 43
|
|
2149
|
+
LESSGREAT shift, and go to state 44
|
|
2150
|
+
CLOBBER shift, and go to state 45
|
|
2151
|
+
DLESS shift, and go to state 39
|
|
2152
|
+
DLESSDASH shift, and go to state 40
|
|
2153
|
+
GREATAND shift, and go to state 46
|
|
2154
|
+
LESSAND shift, and go to state 47
|
|
2155
|
+
If shift, and go to state 31
|
|
2156
|
+
Lbrace shift, and go to state 25
|
|
2157
|
+
Bang shift, and go to state 12
|
|
2158
|
+
While shift, and go to state 27
|
|
2159
|
+
Until shift, and go to state 28
|
|
2160
|
+
For shift, and go to state 29
|
|
2161
|
+
Case shift, and go to state 30
|
|
2162
|
+
DSEMI shift, and go to state 169
|
|
2163
|
+
"(" shift, and go to state 26
|
|
2164
|
+
"<" shift, and go to state 41
|
|
2165
|
+
">" shift, and go to state 42
|
|
2166
|
+
$default reduce using rule 56 (case_item_ns)
|
|
2167
|
+
|
|
2168
|
+
pipeline go to state 10
|
|
2169
|
+
and_or go to state 98
|
|
2170
|
+
pipe_sequence go to state 11
|
|
2171
|
+
command go to state 13
|
|
2172
|
+
simple_command go to state 14
|
|
2173
|
+
compound_command go to state 15
|
|
2174
|
+
function_definition go to state 16
|
|
2175
|
+
brace_group go to state 18
|
|
2176
|
+
subshell go to state 19
|
|
2177
|
+
if_clause go to state 20
|
|
2178
|
+
while_clause go to state 21
|
|
2179
|
+
until_clause go to state 22
|
|
2180
|
+
for_clause go to state 23
|
|
2181
|
+
case_clause go to state 24
|
|
2182
|
+
term go to state 99
|
|
2183
|
+
cmd_prefix go to state 32
|
|
2184
|
+
cmd_name go to state 33
|
|
2185
|
+
io_redirect go to state 34
|
|
2186
|
+
io_file go to state 36
|
|
2187
|
+
io_here go to state 38
|
|
2188
|
+
|
|
2189
|
+
state 165
|
|
2190
|
+
|
|
2191
|
+
60) patterns : patterns "|" WORD _
|
|
2192
|
+
|
|
2193
|
+
$default reduce using rule 60 (patterns)
|
|
2194
|
+
|
|
2195
|
+
|
|
2196
|
+
state 166
|
|
2197
|
+
|
|
2198
|
+
53) case_item : "(" patterns ")" _ compound_list DSEMI linebreak
|
|
2199
|
+
54) case_item : "(" patterns ")" _ linebreak DSEMI linebreak
|
|
2200
|
+
57) case_item_ns : "(" patterns ")" _ compound_list
|
|
2201
|
+
58) case_item_ns : "(" patterns ")" _ linebreak
|
|
2202
|
+
|
|
2203
|
+
NEWLINE shift, and go to state 3
|
|
2204
|
+
$default reduce using rule 106 (linebreak)
|
|
2205
|
+
|
|
2206
|
+
compound_list go to state 170
|
|
2207
|
+
linebreak go to state 171
|
|
2208
|
+
newline_list go to state 4
|
|
2209
|
+
|
|
2210
|
+
state 167
|
|
2211
|
+
|
|
2212
|
+
63) else_part : Elif compound_list Then compound_list _
|
|
2213
|
+
64) else_part : Elif compound_list Then compound_list _ else_part
|
|
2214
|
+
|
|
2215
|
+
Else shift, and go to state 139
|
|
2216
|
+
Elif shift, and go to state 138
|
|
2217
|
+
$default reduce using rule 63 (else_part)
|
|
2218
|
+
|
|
2219
|
+
else_part go to state 172
|
|
2220
|
+
|
|
2221
|
+
state 168
|
|
2222
|
+
|
|
2223
|
+
51) case_item : patterns ")" compound_list DSEMI _ linebreak
|
|
2224
|
+
|
|
2225
|
+
NEWLINE shift, and go to state 3
|
|
2226
|
+
$default reduce using rule 106 (linebreak)
|
|
2227
|
+
|
|
2228
|
+
linebreak go to state 173
|
|
2229
|
+
newline_list go to state 4
|
|
2230
|
+
|
|
2231
|
+
state 169
|
|
2232
|
+
|
|
2233
|
+
52) case_item : patterns ")" linebreak DSEMI _ linebreak
|
|
2234
|
+
|
|
2235
|
+
NEWLINE shift, and go to state 3
|
|
2236
|
+
$default reduce using rule 106 (linebreak)
|
|
2237
|
+
|
|
2238
|
+
linebreak go to state 174
|
|
2239
|
+
newline_list go to state 4
|
|
2240
|
+
|
|
2241
|
+
state 170
|
|
2242
|
+
|
|
2243
|
+
53) case_item : "(" patterns ")" compound_list _ DSEMI linebreak
|
|
2244
|
+
57) case_item_ns : "(" patterns ")" compound_list _
|
|
2245
|
+
|
|
2246
|
+
DSEMI shift, and go to state 175
|
|
2247
|
+
$default reduce using rule 57 (case_item_ns)
|
|
2248
|
+
|
|
2249
|
+
|
|
2250
|
+
state 171
|
|
2251
|
+
|
|
2252
|
+
54) case_item : "(" patterns ")" linebreak _ DSEMI linebreak
|
|
2253
|
+
58) case_item_ns : "(" patterns ")" linebreak _
|
|
2254
|
+
66) compound_list : linebreak _ term
|
|
2255
|
+
67) compound_list : linebreak _ term separator
|
|
2256
|
+
|
|
2257
|
+
WORD shift, and go to state 17
|
|
2258
|
+
ASSIGNMENT_WORD shift, and go to state 35
|
|
2259
|
+
IO_NUMBER shift, and go to state 37
|
|
2260
|
+
DGREAT shift, and go to state 43
|
|
2261
|
+
LESSGREAT shift, and go to state 44
|
|
2262
|
+
CLOBBER shift, and go to state 45
|
|
2263
|
+
DLESS shift, and go to state 39
|
|
2264
|
+
DLESSDASH shift, and go to state 40
|
|
2265
|
+
GREATAND shift, and go to state 46
|
|
2266
|
+
LESSAND shift, and go to state 47
|
|
2267
|
+
If shift, and go to state 31
|
|
2268
|
+
Lbrace shift, and go to state 25
|
|
2269
|
+
Bang shift, and go to state 12
|
|
2270
|
+
While shift, and go to state 27
|
|
2271
|
+
Until shift, and go to state 28
|
|
2272
|
+
For shift, and go to state 29
|
|
2273
|
+
Case shift, and go to state 30
|
|
2274
|
+
DSEMI shift, and go to state 176
|
|
2275
|
+
"(" shift, and go to state 26
|
|
2276
|
+
"<" shift, and go to state 41
|
|
2277
|
+
">" shift, and go to state 42
|
|
2278
|
+
$default reduce using rule 58 (case_item_ns)
|
|
2279
|
+
|
|
2280
|
+
pipeline go to state 10
|
|
2281
|
+
and_or go to state 98
|
|
2282
|
+
pipe_sequence go to state 11
|
|
2283
|
+
command go to state 13
|
|
2284
|
+
simple_command go to state 14
|
|
2285
|
+
compound_command go to state 15
|
|
2286
|
+
function_definition go to state 16
|
|
2287
|
+
brace_group go to state 18
|
|
2288
|
+
subshell go to state 19
|
|
2289
|
+
if_clause go to state 20
|
|
2290
|
+
while_clause go to state 21
|
|
2291
|
+
until_clause go to state 22
|
|
2292
|
+
for_clause go to state 23
|
|
2293
|
+
case_clause go to state 24
|
|
2294
|
+
term go to state 99
|
|
2295
|
+
cmd_prefix go to state 32
|
|
2296
|
+
cmd_name go to state 33
|
|
2297
|
+
io_redirect go to state 34
|
|
2298
|
+
io_file go to state 36
|
|
2299
|
+
io_here go to state 38
|
|
2300
|
+
|
|
2301
|
+
state 172
|
|
2302
|
+
|
|
2303
|
+
64) else_part : Elif compound_list Then compound_list else_part _
|
|
2304
|
+
|
|
2305
|
+
$default reduce using rule 64 (else_part)
|
|
2306
|
+
|
|
2307
|
+
|
|
2308
|
+
state 173
|
|
2309
|
+
|
|
2310
|
+
51) case_item : patterns ")" compound_list DSEMI linebreak _
|
|
2311
|
+
|
|
2312
|
+
$default reduce using rule 51 (case_item)
|
|
2313
|
+
|
|
2314
|
+
|
|
2315
|
+
state 174
|
|
2316
|
+
|
|
2317
|
+
52) case_item : patterns ")" linebreak DSEMI linebreak _
|
|
2318
|
+
|
|
2319
|
+
$default reduce using rule 52 (case_item)
|
|
2320
|
+
|
|
2321
|
+
|
|
2322
|
+
state 175
|
|
2323
|
+
|
|
2324
|
+
53) case_item : "(" patterns ")" compound_list DSEMI _ linebreak
|
|
2325
|
+
|
|
2326
|
+
NEWLINE shift, and go to state 3
|
|
2327
|
+
$default reduce using rule 106 (linebreak)
|
|
2328
|
+
|
|
2329
|
+
linebreak go to state 177
|
|
2330
|
+
newline_list go to state 4
|
|
2331
|
+
|
|
2332
|
+
state 176
|
|
2333
|
+
|
|
2334
|
+
54) case_item : "(" patterns ")" linebreak DSEMI _ linebreak
|
|
2335
|
+
|
|
2336
|
+
NEWLINE shift, and go to state 3
|
|
2337
|
+
$default reduce using rule 106 (linebreak)
|
|
2338
|
+
|
|
2339
|
+
linebreak go to state 178
|
|
2340
|
+
newline_list go to state 4
|
|
2341
|
+
|
|
2342
|
+
state 177
|
|
2343
|
+
|
|
2344
|
+
53) case_item : "(" patterns ")" compound_list DSEMI linebreak _
|
|
2345
|
+
|
|
2346
|
+
$default reduce using rule 53 (case_item)
|
|
2347
|
+
|
|
2348
|
+
|
|
2349
|
+
state 178
|
|
2350
|
+
|
|
2351
|
+
54) case_item : "(" patterns ")" linebreak DSEMI linebreak _
|
|
2352
|
+
|
|
2353
|
+
$default reduce using rule 54 (case_item)
|
|
2354
|
+
|