# 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