1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260
|
# this file was generated by yacc -v perly.y > perly.output
0 $accept : prog $end
1 prog : progstart lineseq
2 block : '{' remember lineseq '}'
3 remember :
4 progstart :
5 mblock : '{' mremember lineseq '}'
6 mremember :
7 lineseq :
8 | lineseq decl
9 | lineseq line
10 line : label cond
11 | loop
12 | label ';'
13 | label sideff ';'
14 sideff : error
15 | expr
16 | expr IF expr
17 | expr UNLESS expr
18 | expr WHILE expr
19 | expr UNTIL iexpr
20 | expr FOR expr
21 else :
22 | ELSE mblock
23 | ELSIF '(' mexpr ')' mblock else
24 cond : IF '(' remember mexpr ')' mblock else
25 | UNLESS '(' remember miexpr ')' mblock else
26 cont :
27 | CONTINUE block
28 loop : label WHILE '(' remember mtexpr ')' mblock cont
29 | label UNTIL '(' remember miexpr ')' mblock cont
30 | label FOR MY remember my_scalar '(' mexpr ')' mblock cont
31 | label FOR scalar '(' remember mexpr ')' mblock cont
32 | label FOR '(' remember mexpr ')' mblock cont
33 | label FOR '(' remember mnexpr ';' mtexpr ';' mnexpr ')' mblock
34 | label block cont
35 nexpr :
36 | sideff
37 texpr :
38 | expr
39 iexpr : expr
40 mexpr : expr
41 mnexpr : nexpr
42 mtexpr : texpr
43 miexpr : iexpr
44 label :
45 | LABEL
46 decl : format
47 | subrout
48 | mysubrout
49 | package
50 | use
51 format : FORMAT startformsub formname block
52 formname : WORD
53 |
54 mysubrout : MYSUB startsub subname proto subattrlist subbody
55 subrout : SUB startsub subname proto subattrlist subbody
56 startsub :
57 startanonsub :
58 startformsub :
59 subname : WORD
60 proto :
61 | THING
62 subattrlist :
63 | COLONATTR THING
64 | COLONATTR
65 myattrlist : COLONATTR THING
66 | COLONATTR
67 subbody : block
68 | ';'
69 package : PACKAGE WORD ';'
70 | PACKAGE ';'
71 $$1 :
72 use : USE startsub $$1 WORD WORD listexpr ';'
73 expr : expr ANDOP expr
74 | expr OROP expr
75 | argexpr
76 argexpr : argexpr ','
77 | argexpr ',' term
78 | term
79 listop : LSTOP indirob argexpr
80 | FUNC '(' indirob expr ')'
81 | term ARROW method '(' listexprcom ')'
82 | term ARROW method
83 | METHOD indirob listexpr
84 | FUNCMETH indirob '(' listexprcom ')'
85 | LSTOP listexpr
86 | FUNC '(' listexprcom ')'
87 $$2 :
88 listop : LSTOPSUB startanonsub block $$2 listexpr
89 method : METHOD
90 | scalar
91 subscripted : star '{' expr ';' '}'
92 | scalar '[' expr ']'
93 | term ARROW '[' expr ']'
94 | subscripted '[' expr ']'
95 | scalar '{' expr ';' '}'
96 | term ARROW '{' expr ';' '}'
97 | subscripted '{' expr ';' '}'
98 | term ARROW '(' ')'
99 | term ARROW '(' expr ')'
100 | subscripted '(' expr ')'
101 | subscripted '(' ')'
102 termbinop : term ASSIGNOP term
103 | term POWOP term
104 | term MULOP term
105 | term ADDOP term
106 | term SHIFTOP term
107 | term RELOP term
108 | term EQOP term
109 | term BITANDOP term
110 | term BITOROP term
111 | term DOTDOT term
112 | term ANDAND term
113 | term OROR term
114 | term MATCHOP term
115 termunop : '-' term
116 | '+' term
117 | '!' term
118 | '~' term
119 | term POSTINC
120 | term POSTDEC
121 | PREINC term
122 | PREDEC term
123 anonymous : '[' expr ']'
124 | '[' ']'
125 | HASHBRACK expr ';' '}'
126 | HASHBRACK ';' '}'
127 | ANONSUB startanonsub proto subattrlist block
128 termdo : DO term
129 | DO block
130 | DO WORD '(' ')'
131 | DO WORD '(' expr ')'
132 | DO scalar '(' ')'
133 | DO scalar '(' expr ')'
134 term : termbinop
135 | termunop
136 | anonymous
137 | termdo
138 | term '?' term ':' term
139 | REFGEN term
140 | myattrterm
141 | LOCAL term
142 | '(' expr ')'
143 | '(' ')'
144 | scalar
145 | star
146 | hsh
147 | ary
148 | arylen
149 | subscripted
150 | '(' expr ')' '[' expr ']'
151 | '(' ')' '[' expr ']'
152 | ary '[' expr ']'
153 | ary '{' expr ';' '}'
154 | THING
155 | amper
156 | amper '(' ')'
157 | amper '(' expr ')'
158 | NOAMP WORD listexpr
159 | LOOPEX
160 | LOOPEX term
161 | NOTOP argexpr
162 | UNIOP
163 | UNIOP block
164 | UNIOP term
165 | UNIOPSUB term
166 | FUNC0
167 | FUNC0 '(' ')'
168 | FUNC0SUB
169 | FUNC1 '(' ')'
170 | FUNC1 '(' expr ')'
171 | PMFUNC '(' term ')'
172 | PMFUNC '(' term ',' term ')'
173 | WORD
174 | listop
175 myattrterm : MY myterm myattrlist
176 | MY myterm
177 myterm : '(' expr ')'
178 | '(' ')'
179 | scalar
180 | hsh
181 | ary
182 listexpr :
183 | argexpr
184 listexprcom :
185 | expr
186 | expr ','
187 my_scalar : scalar
188 amper : '&' indirob
189 scalar : '$' indirob
190 ary : '@' indirob
191 hsh : '%' indirob
192 arylen : DOLSHARP indirob
193 star : '*' indirob
194 indirob : WORD
195 | scalar
196 | block
197 | PRIVATEREF
|