$accept

grammar YYEOF

$@1

grammar

GRAMPROG $@1 remember stmtseq GRAMEXPR $@2 optexpr GRAMBLOCK $@3 block GRAMBARESTMT $@4 barestmt GRAMFULLSTMT $@5 fullstmt GRAMSTMTSEQ $@6 stmtseq GRAMSUBSIGNATURE $@7 subsigguts

$@2

$@3

$@4

$@5

$@6

$@7

sigsub_or_method_named

KW_SUB_named_sig KW_METHOD_named

block

PERLY_BRACE_OPEN remember stmtseq PERLY_BRACE_CLOSE

empty

formblock

PERLY_EQUAL_SIGN remember PERLY_SEMICOLON FORMRBRACK formstmtseq PERLY_SEMICOLON PERLY_DOT

remember

mblock

PERLY_BRACE_OPEN mremember stmtseq PERLY_BRACE_CLOSE

mremember

catch_paren

empty PERLY_PAREN_OPEN $@8 scalar $@9 PERLY_PAREN_CLOSE

$@8

$@9

stmtseq

empty stmtseq fullstmt

formstmtseq

empty formstmtseq formline

fullstmt

barestmt labfullstmt

labfullstmt

LABEL barestmt LABEL labfullstmt

barestmt

PLUGSTMT KW_FORMAT startformsub formname formblock KW_SUB_named subname startsub $@10 proto subattrlist optsubbody sigsub_or_method_named subname startsub $@11 subattrlist optsigsubbody PHASER startsub $@12 optsubbody KW_PACKAGE BAREWORD BAREWORD PERLY_SEMICOLON KW_CLASS BAREWORD BAREWORD subattrlist PERLY_SEMICOLON KW_USE_or_NO startsub $@13 BAREWORD BAREWORD optlistexpr PERLY_SEMICOLON KW_IF PERLY_PAREN_OPEN remember mexpr PERLY_PAREN_CLOSE mblock else KW_UNLESS PERLY_PAREN_OPEN remember mexpr PERLY_PAREN_CLOSE mblock else KW_GIVEN PERLY_PAREN_OPEN remember mexpr PERLY_PAREN_CLOSE mblock KW_WHEN PERLY_PAREN_OPEN remember mexpr PERLY_PAREN_CLOSE mblock KW_DEFAULT block KW_WHILE PERLY_PAREN_OPEN remember texpr PERLY_PAREN_CLOSE mintro mblock cont KW_UNTIL PERLY_PAREN_OPEN remember iexpr PERLY_PAREN_CLOSE mintro mblock cont KW_FOR PERLY_PAREN_OPEN remember mnexpr PERLY_SEMICOLON $@14 texpr PERLY_SEMICOLON $@15 mintro mnexpr PERLY_PAREN_CLOSE mblock KW_FOR KW_MY remember my_scalar PERLY_PAREN_OPEN mexpr PERLY_PAREN_CLOSE mblock cont KW_FOR KW_MY remember PERLY_PAREN_OPEN my_list_of_scalars PERLY_PAREN_CLOSE PERLY_PAREN_OPEN mexpr PERLY_PAREN_CLOSE mblock cont KW_FOR scalar PERLY_PAREN_OPEN remember mexpr PERLY_PAREN_CLOSE mblock cont KW_FOR my_refgen remember my_var @16 PERLY_PAREN_OPEN mexpr PERLY_PAREN_CLOSE mblock cont KW_FOR REFGEN refgen_topic PERLY_PAREN_OPEN remember mexpr PERLY_PAREN_CLOSE mblock cont KW_FOR PERLY_PAREN_OPEN remember mexpr PERLY_PAREN_CLOSE mblock cont KW_TRY mblock KW_CATCH remember catch_paren $@17 mblock finally block cont KW_PACKAGE BAREWORD BAREWORD PERLY_BRACE_OPEN remember $@18 stmtseq PERLY_BRACE_CLOSE KW_CLASS BAREWORD BAREWORD subattrlist PERLY_BRACE_OPEN remember $@19 stmtseq PERLY_BRACE_CLOSE fielddecl PERLY_SEMICOLON sideff PERLY_SEMICOLON KW_DEFER mblock YADAYADA PERLY_SEMICOLON PERLY_SEMICOLON

$@10

$@11

$@12

$@13

$@14

$@15

@16

$@17

$@18

$@19

formline

THING formarg

formarg

empty FORMLBRACK stmtseq FORMRBRACK

condition

expr

sideff

YYerror expr expr KW_IF condition expr KW_UNLESS condition expr KW_WHILE condition expr KW_UNTIL iexpr expr KW_FOR condition expr KW_WHEN condition

else

empty KW_ELSE mblock KW_ELSIF PERLY_PAREN_OPEN mexpr PERLY_PAREN_CLOSE mblock else

cont

empty KW_CONTINUE block

finally

KW_FINALLY block

mintro

nexpr

empty sideff

texpr

expr

iexpr

expr

mexpr

expr

mnexpr

nexpr

formname

BAREWORD empty

startsub

startanonsub

startanonmethod

startformsub

subname

BAREWORD PRIVATEREF

proto

empty THING

subattrlist

empty COLONATTR THING COLONATTR

myattrlist

COLONATTR THING COLONATTR

sigvarname

PRIVATEREF

sigslurpsigil

PERLY_SNAIL PERLY_PERCENT_SIGN

sigslurpelem

sigslurpsigil sigvarname sigslurpsigil sigvarname ASSIGNOP sigslurpsigil sigvarname ASSIGNOP term

sigscalarelem

PERLY_DOLLAR sigvarname PERLY_DOLLAR sigvarname ASSIGNOP PERLY_DOLLAR sigvarname ASSIGNOP term

sigelem

sigscalarelem sigslurpelem

siglist

siglist PERLY_COMMA siglist PERLY_COMMA sigelem sigelem

optsiglist

empty siglist

optsubsignature

empty subsignature

subsignature

PERLY_PAREN_OPEN subsigguts PERLY_PAREN_CLOSE

$@20

subsigguts

$@20 optsiglist

optsubbody

subbody PERLY_SEMICOLON

subbody

remember PERLY_BRACE_OPEN stmtseq PERLY_BRACE_CLOSE

optsigsubbody

sigsubbody PERLY_SEMICOLON

$@21

sigsubbody

remember optsubsignature PERLY_BRACE_OPEN $@21 stmtseq PERLY_BRACE_CLOSE

expr

expr ANDOP expr expr PLUGIN_LOGICAL_AND_LOW_OP expr expr OROP expr expr PLUGIN_LOGICAL_OR_LOW_OP expr listexpr

listexpr

listexpr PERLY_COMMA listexpr PERLY_COMMA term term

listop

LSTOP indirob listexpr BLKLSTOP block listexpr FUNC PERLY_PAREN_OPEN indirob expr PERLY_PAREN_CLOSE term ARROW methodname PERLY_PAREN_OPEN optexpr PERLY_PAREN_CLOSE term ARROW methodname term ARROW PERLY_AMPERSAND subname PERLY_PAREN_OPEN optexpr PERLY_PAREN_CLOSE term ARROW PERLY_AMPERSAND subname METHCALL0 indirob optlistexpr METHCALL indirob PERLY_PAREN_OPEN optexpr PERLY_PAREN_CLOSE LSTOP optlistexpr FUNC PERLY_PAREN_OPEN optexpr PERLY_PAREN_CLOSE FUNC SUBLEXSTART optexpr SUBLEXEND LSTOPSUB startanonsub block @22 optlistexpr

@22

methodname

METHCALL0 scalar

subscripted

gelem PERLY_BRACE_OPEN expr PERLY_SEMICOLON PERLY_BRACE_CLOSE scalar PERLY_BRACKET_OPEN expr PERLY_BRACKET_CLOSE term ARROW PERLY_BRACKET_OPEN expr PERLY_BRACKET_CLOSE subscripted PERLY_BRACKET_OPEN expr PERLY_BRACKET_CLOSE scalar PERLY_BRACE_OPEN expr PERLY_SEMICOLON PERLY_BRACE_CLOSE term ARROW PERLY_BRACE_OPEN expr PERLY_SEMICOLON PERLY_BRACE_CLOSE subscripted PERLY_BRACE_OPEN expr PERLY_SEMICOLON PERLY_BRACE_CLOSE term ARROW PERLY_PAREN_OPEN PERLY_PAREN_CLOSE term ARROW PERLY_PAREN_OPEN expr PERLY_PAREN_CLOSE subscripted PERLY_PAREN_OPEN expr PERLY_PAREN_CLOSE subscripted PERLY_PAREN_OPEN PERLY_PAREN_CLOSE PERLY_PAREN_OPEN expr PERLY_PAREN_CLOSE PERLY_BRACKET_OPEN expr PERLY_BRACKET_CLOSE QWLIST PERLY_BRACKET_OPEN expr PERLY_BRACKET_CLOSE PERLY_PAREN_OPEN PERLY_PAREN_CLOSE PERLY_BRACKET_OPEN expr PERLY_BRACKET_CLOSE

termbinop

term PLUGIN_HIGH_OP term term ASSIGNOP term term PLUGIN_ASSIGN_OP term term POWOP term term PLUGIN_POW_OP term term MULOP term term PLUGIN_MUL_OP term term ADDOP term term PLUGIN_ADD_OP term term SHIFTOP term termrelop termeqop term BITANDOP term term BITOROP term term DOTDOT term term ANDAND term term PLUGIN_LOGICAL_AND_OP term term OROR term term PLUGIN_LOGICAL_OR_OP term term DORDOR term term MATCHOP term term PLUGIN_LOW_OP term

termrelop

relopchain term NCRELOP term termrelop NCRELOP termrelop CHRELOP term PLUGIN_REL_OP term

relopchain

term CHRELOP term relopchain CHRELOP term

termeqop

eqopchain term NCEQOP term termeqop NCEQOP termeqop CHEQOP

eqopchain

term CHEQOP term eqopchain CHEQOP term

termunop

PERLY_MINUS term PERLY_PLUS term PERLY_EXCLAMATION_MARK term PERLY_TILDE term term POSTINC term POSTDEC term POSTJOIN PREINC term PREDEC term

anonymous

PERLY_BRACKET_OPEN optexpr PERLY_BRACKET_CLOSE HASHBRACK optexpr PERLY_SEMICOLON PERLY_BRACE_CLOSE KW_SUB_anon startanonsub proto subattrlist subbody KW_SUB_anon_sig startanonsub subattrlist sigsubbody KW_METHOD_anon startanonmethod subattrlist sigsubbody

termdo

KW_DO term KW_DO block

term

termbinop termunop anonymous termdo term PERLY_QUESTION_MARK term PERLY_COLON term REFGEN term myattrterm KW_LOCAL term PERLY_PAREN_OPEN expr PERLY_PAREN_CLOSE QWLIST PERLY_PAREN_OPEN PERLY_PAREN_CLOSE scalar star hsh ary arylen subscripted sliceme PERLY_BRACKET_OPEN expr PERLY_BRACKET_CLOSE kvslice PERLY_BRACKET_OPEN expr PERLY_BRACKET_CLOSE sliceme PERLY_BRACE_OPEN expr PERLY_SEMICOLON PERLY_BRACE_CLOSE kvslice PERLY_BRACE_OPEN expr PERLY_SEMICOLON PERLY_BRACE_CLOSE THING amper amper PERLY_PAREN_OPEN PERLY_PAREN_CLOSE amper PERLY_PAREN_OPEN expr PERLY_PAREN_CLOSE NOAMP subname optlistexpr term ARROW PERLY_DOLLAR PERLY_STAR term ARROW PERLY_SNAIL PERLY_STAR term ARROW PERLY_PERCENT_SIGN PERLY_STAR term ARROW PERLY_AMPERSAND PERLY_STAR term ARROW PERLY_STAR PERLY_STAR LOOPEX LOOPEX term NOTOP listexpr UNIOP UNIOP block UNIOP term KW_REQUIRE KW_REQUIRE term UNIOPSUB UNIOPSUB term FUNC0 FUNC0 PERLY_PAREN_OPEN PERLY_PAREN_CLOSE FUNC0OP FUNC0OP PERLY_PAREN_OPEN PERLY_PAREN_CLOSE FUNC0SUB FUNC1 PERLY_PAREN_OPEN PERLY_PAREN_CLOSE FUNC1 PERLY_PAREN_OPEN expr PERLY_PAREN_CLOSE PMFUNC @23 SUBLEXSTART listexpr optrepl SUBLEXEND BAREWORD listop PLUGEXPR

@23

myattrterm

KW_MY myterm myattrlist KW_MY myterm KW_MY REFGEN myterm myattrlist KW_MY REFGEN term

myterm

PERLY_PAREN_OPEN expr PERLY_PAREN_CLOSE PERLY_PAREN_OPEN PERLY_PAREN_CLOSE scalar hsh ary

fieldvar

scalar hsh ary

optfieldattrlist

COLONATTR THING COLONATTR empty

fielddecl

KW_FIELD fieldvar optfieldattrlist KW_FIELD fieldvar optfieldattrlist ASSIGNOP $@24 term

$@24

optlistexpr

empty listexpr

optexpr

empty expr

optrepl

empty PERLY_SLASH expr

my_scalar

scalar

list_of_scalars

list_of_scalars PERLY_COMMA list_of_scalars PERLY_COMMA scalar scalar

my_list_of_scalars

list_of_scalars

my_var

scalar ary hsh

refgen_topic

my_var amper

my_refgen

KW_MY REFGEN REFGEN KW_MY

amper

PERLY_AMPERSAND indirob

scalar

PERLY_DOLLAR indirob

ary

PERLY_SNAIL indirob

hsh

PERLY_PERCENT_SIGN indirob

arylen

DOLSHARP indirob term ARROW DOLSHARP PERLY_STAR

star

PERLY_STAR indirob

sliceme

ary term ARROW PERLY_SNAIL

kvslice

hsh term ARROW PERLY_PERCENT_SIGN

gelem

star term ARROW PERLY_STAR

indirob

BAREWORD scalar block PRIVATEREF