program ` decl_list ` "EMPTY" ` "EMPTY" /* decl_list ` decl decl_list ` "EMPTY" ` "EMPTY" */ /* decl_list ` decl ` "EMPTY" ` "EMPTY" */ decl_list ` decl ` "EMPTY" ` decl_list decl_list ` "EMPTY" ` "EMPTY" ` "EMPTY" /* decl ` typespecifier globalobjspecifier ` "EMPTY" ` "EMPTY" */ /* decl ` typespecifier globalobjspecifier ` "EMPTY" ` decl_list */ decl ` typespecifier globalobjspecifier ` "EMPTY" ` "EMPTY" typespecifier ` type 30 ` "EMPTY" ` "EMPTY" type ` void ` "EMPTY" ` "EMPTY" type ` int ` "EMPTY" ` "EMPTY" globalobjspecifier ` ; ` "EMPTY" ` "EMPTY" globalobjspecifier ` = initspecifier ; ` "EMPTY" ` "EMPTY" globalobjspecifier ` subroutinespecifier ` "EMPTY" ` "EMPTY" globalobjspecifier ` arrayspecifier ; ` "EMPTY" ` "EMPTY" initspecifier ` scalarspecifier ` "EMPTY" ` "EMPTY" arrayspecifier ` [ arraysize ] initlist ` "EMPTY" ` "EMPTY" subroutinespecifier ` ( formalparameterlist ) subrbody ` "EMPTY" ` "EMPTY" scalarspecifier ` constantexpr ` "EMPTY" ` "EMPTY" scalarspecifier ` "EMPTY" ` "EMPTY" ` "EMPTY" arraysize ` constantexpr ` "EMPTY" ` "EMPTY" arraysize ` "EMPTY" ` "EMPTY" ` "EMPTY" initlist ` = { constantexprlist } ` "EMPTY" ` "EMPTY" initlist ` "EMPTY" ` "EMPTY" ` "EMPTY" /* formalparameterlist ` formalparameter formalparametertail ` "EMPTY" ` "EMPTY" */ formalparameterlist ` formalparameter ` "EMPTY" ` formalparametertail formalparameter ` int 30 parameterarray ` "EMPTY" ` "EMPTY" formalparameter ` "EMPTY" ` "EMPTY" ` "EMPTY" parameterarray ` [ ] ` "EMPTY" ` "EMPTY" parameterarray ` "EMPTY" ` "EMPTY" ` "EMPTY" /* formalparametertail ` , formalparameterlist ` "EMPTY" ` "EMPTY" */ formalparametertail ` , ` "EMPTY" ` formalparameterlist formalparametertail ` "EMPTY" ` "EMPTY" ` "EMPTY" subrbody ` { localdecllist stmtlist } ` "EMPTY" ` "EMPTY" subrbody ` ; ` "EMPTY" ` "EMPTY" localdecllist ` localdecl localdecllist ` "EMPTY" ` "EMPTY" localdecllist ` "EMPTY" ` "EMPTY" ` "EMPTY" localdecl ` typespecifier localobjspecifier ` "EMPTY" ` "EMPTY" localobjspecifier ` arrayspecifier ; ` "EMPTY" ` "EMPTY" localobjspecifier ` scalarspecifier ; ` "EMPTY" ` "EMPTY" /* constantexprlist ` constantexpr constantexprlisttail ` "EMPTY" ` "EMPTY" */ constantexprlist ` constantexpr ` "EMPTY" ` constantexprlisttail constantexprlist ` "EMPTY" ` "EMPTY" ` "EMPTY" /* constantexprlisttail ` , constantexprlist ` "EMPTY" ` "EMPTY" */ constantexprlisttail ` , ` "EMPTY" ` constantexprlist constantexprlisttail ` "EMPTY" ` "EMPTY" ` "EMPTY" constantexpr ` constantcond ` "EMPTY" ` "EMPTY" constantcond ` constantmsk constantcond1 ` "EMPTY" ` "EMPTY" constantcond1 ` ? constantmsk : constantmsk ` "EMPTY" ` "EMPTY" constantcond1 ` "EMPTY" ` "EMPTY" ` "EMPTY" constantmsk ` unop constantcmp constantmsk1 ` "EMPTY" ` "EMPTY" unop ` ! ` "EMPTY" ` "EMPTY" unop ` - ` "EMPTY" ` "EMPTY" unop ` "EMPTY" ` "EMPTY" ` "EMPTY" constantmsk1 ` | constantcmp ` "EMPTY" ` "EMPTY" constantmsk1 ` & constantcmp ` "EMPTY" ` "EMPTY" constantmsk1 ` "EMPTY" ` "EMPTY" ` "EMPTY" constantcmp ` constantbp constantcmp1 ` "EMPTY" ` "EMPTY" constantcmp1 ` >= constantbp ` "EMPTY" ` "EMPTY" constantcmp1 ` <= constantbp ` "EMPTY" ` "EMPTY" constantcmp1 ` == constantbp ` "EMPTY" ` "EMPTY" constantcmp1 ` != constantbp ` "EMPTY" ` "EMPTY" constantcmp1 ` > constantbp ` "EMPTY" ` "EMPTY" constantcmp1 ` < constantbp ` "EMPTY" ` "EMPTY" constantcmp1 ` "EMPTY" ` "EMPTY" ` "EMPTY" constantbp ` constantsum constantbp1 ` "EMPTY" ` "EMPTY" constantbp1 ` << constantsum ` "EMPTY" ` "EMPTY" constantbp1 ` >> constantsum ` "EMPTY" ` "EMPTY" constantbp1 ` "EMPTY" ` "EMPTY" ` "EMPTY" constantsum ` constantterm constantsum1 ` "EMPTY" ` "EMPTY" constantsum1 ` + constantterm constantsum1 ` "EMPTY" ` "EMPTY" constantsum1 ` - constantterm constantsum1 ` "EMPTY" ` "EMPTY" constantsum1 ` "EMPTY" ` "EMPTY" ` "EMPTY" constantterm ` constantfact constantterm1 ` "EMPTY" ` "EMPTY" constantterm1 ` * constantfact constantterm1 ` "EMPTY" ` "EMPTY" constantterm1 ` / constantfact constantterm1 ` "EMPTY" ` "EMPTY" constantterm1 ` "EMPTY" ` "EMPTY" ` "EMPTY" constantfact ` constantpri ` "EMPTY" ` "EMPTY" constantpri ` & 30 ` "EMPTY" ` "EMPTY" constantpri ` 28 ` "EMPTY" ` "EMPTY" constantpri ` 29 ` "EMPTY" ` "EMPTY" constantpri ` ( constantexpr ) ` "EMPTY" ` "EMPTY" expr ` primary ` "EMPTY" ` "EMPTY" primary ` cond ` "EMPTY" ` "EMPTY" cond ` msk cond1 ` "EMPTY" ` "EMPTY" cond1 ` ? expr : expr ` 25 ` "EMPTY" cond1 ` = expr ` 26 ` "EMPTY" cond1 ` "EMPTY" ` "EMPTY" ` "EMPTY" msk ` ! cmp ` 21 ` "EMPTY" msk ` - cmp ` 22 ` "EMPTY" msk ` * cmp ` 23 ` "EMPTY" msk ` & cmp ` 24 ` "EMPTY" msk ` cmp msk1 ` "EMPTY" ` "EMPTY" msk1 ` | cmp ` 19 ` "EMPTY" msk1 ` & cmp ` 20 ` "EMPTY" msk1 ` "EMPTY" ` "EMPTY" ` "EMPTY" cmp ` bp cmp1 ` "EMPTY" ` "EMPTY" cmp1 ` >= bp ` 13 ` "EMPTY" cmp1 ` <= bp ` 14 ` "EMPTY" cmp1 ` != bp ` 15 ` "EMPTY" cmp1 ` == bp ` 16 ` "EMPTY" cmp1 ` > bp ` 17 ` "EMPTY" cmp1 ` < bp ` 18 ` "EMPTY" cmp1 ` "EMPTY" ` "EMPTY" ` "EMPTY" bp ` s bp1 ` "EMPTY" ` "EMPTY" bp1 ` << s ` 11 ` "EMPTY" bp1 ` >> s ` 12 ` "EMPTY" bp1 ` "EMPTY" ` "EMPTY" ` "EMPTY" s ` t s1 ` "EMPTY" ` "EMPTY" s1 ` + t s1 ` 9 ` "EMPTY" s1 ` - t s1 ` 10 ` "EMPTY" s1 ` "EMPTY" ` "EMPTY" ` "EMPTY" t ` f f1 ` "EMPTY" ` "EMPTY" f1 ` * f f1 ` 7 ` "EMPTY" f1 ` / f f1 ` 8 ` "EMPTY" f1 ` "EMPTY" ` "EMPTY" ` "EMPTY" f ` lprimary ` "EMPTY" ` "EMPTY" lprimary ` 28 ` 1 ` "EMPTY" lprimary ` 29 ` 2 ` "EMPTY" /* lprimary ` 30 lprimarysuffix ` 3 ` "EMPTY" */ lprimary ` 30 ` 3 ` lprimarysuffix lprimary ` ( expr ) lprimarysuffix ` 4 ` "EMPTY" lprimarysuffix ` ( actualparamlist ) ` 5 ` "EMPTY" lprimarysuffix ` [ expr ] ` 6 ` "EMPTY" lprimarysuffix ` "EMPTY" ` "EMPTY" ` "EMPTY" /* actualparamlist ` expr actualparamlisttail ` "EMPTY" ` "EMPTY"*/ actualparamlist ` expr ` 27 `actualparamlisttail actualparamlist ` "EMPTY" ` "EMPTY" ` "EMPTY" actualparamlisttail ` , actualparamlist ` "EMPTY" ` "EMPTY" actualparamlisttail ` "EMPTY" ` "EMPTY" ` "EMPTY" /* stmtlist ` stmt stmtlist ` "EMPTY" ` "EMPTY" */ stmtlist ` stmt ` "EMPTY" ` stmtlist stmtlist ` "EMPTY" ` "EMPTY" ` "EMPTY" compoundstmt ` { stmtlist } ` "EMPTY" ` "EMPTY" stmt ` switchstmt ` "EMPTY" ` "EMPTY" stmt ` forstmt ` "EMPTY" ` "EMPTY" stmt ` ifstmt ` "EMPTY" ` "EMPTY" stmt ` returnstmt ` "EMPTY" ` "EMPTY" stmt ` dostmt ` "EMPTY" ` "EMPTY" stmt ` whilestmt ` "EMPTY" ` "EMPTY" stmt ` breakstmt ` "EMPTY" ` "EMPTY" stmt ` compoundstmt ` "EMPTY" ` "EMPTY" stmt ` expr ; ` "EMPTY" ` "EMPTY" stmt ` ; ` "EMPTY" ` "EMPTY" switchstmt ` switch expr { casesequence } ` "EMPTY" ` "EMPTY" forstmt ` for ( startlist ; forexpr ; iterlist ) stmt ` "EMPTY" ` "EMPTY" ifstmt ` if expr stmt elseclause ` "EMPTY" ` "EMPTY" elseclause ` else stmt ` "EMPTY" ` "EMPTY" elseclause ` "EMPTY" ` "EMPTY" ` "EMPTY" returnstmt ` return returnvalue ; ` "EMPTY" ` "EMPTY" returnvalue ` expr ` "EMPTY" ` "EMPTY" returnvalue ` "EMPTY" ` "EMPTY" ` "EMPTY" dostmt ` do stmt while expr ; ` "EMPTY" ` "EMPTY" whilestmt ` while expr stmt ` "EMPTY" ` "EMPTY" breakstmt ` break ; ` "EMPTY" ` "EMPTY" /* casesequence ` caseclause casesequencetail ` "EMPTY" ` "EMPTY" */ casesequence ` caseclause ` "EMPTY" ` casesequence casesequence ` "EMPTY" ` "EMPTY" ` "EMPTY" /* casesequencetail ` caseclause casesequence ` "EMPTY" ` "EMPTY" casesequencetail ` "EMPTY" ` "EMPTY" ` "EMPTY" */ caseclause ` caseprefixseq stmtlist ` "EMPTY" ` "EMPTY" /* caseprefixseq ` caseprefix caseprefixseqtail ` "EMPTY" ` "EMPTY" */ caseprefixseq ` caseprefix ` "EMPTY" ` caseprefixseqtail /* caseprefixseqtail ` caseprefix caseprefixseq ` "EMPTY" ` "EMPTY" */ caseprefixseqtail ` caseprefix ` "EMPTY" ` caseprefixseqtail caseprefixseqtail ` "EMPTY" ` "EMPTY" ` "EMPTY" caseprefix ` case constantexpr : ` "EMPTY" ` "EMPTY" caseprefix ` default : ` "EMPTY" ` "EMPTY" startlist ` expr startlisttail ` "EMPTY" ` "EMPTY" startlist ` "EMPTY" ` "EMPTY" ` "EMPTY" startlisttail ` , startlist ` "EMPTY" ` "EMPTY" startlisttail ` "EMPTY" ` "EMPTY" ` "EMPTY" iterlist ` expr iterlisttail ` "EMPTY" ` "EMPTY" iterlist ` "EMPTY" ` "EMPTY" ` "EMPTY" iterlisttail ` , iterlist ` "EMPTY" ` "EMPTY" iterlisttail ` "EMPTY" ` "EMPTY" ` "EMPTY" forexpr ` expr ` "EMPTY" ` "EMPTY" forexpr ` "EMPTY" ` "EMPTY" ` "EMPTY" subrinvocation ` primary ( actualparamlist ) ` "EMPTY" ` "EMPTY" `