toplevelgrammar prule_actiongrammaractionrspruleaction GrammarFilerspruleactionaadaptrulename identifierparams prule_params{blocks prule_bodyaction}Rulenameaparamsblocksrulename identifierparams prule_params=expr prule_expraction;RulenameNilparamsConsBlockNilCons AnnotatedExprNilexprNilNil prule_params(params identifier,)paramsNil prule_bodyaction prule_blockactioncprule_constructorsactionConsBlockNilcNil prule_blockactionaadaptgroupn identifier{cprule_constructorsaction}Blocknacaadaptgroupn identifier;BlocknaNilprule_constructorsactionprule_annotated_expractionprule_annotated_expractionansaprule_annotationae prule_expraction; AnnotatedExpranseprule_annotation#[error(errpstring)]Errorerr#[disable_layout] DisableLayout#[ enable_layout] EnableLayout#[disable_recovery]DisableRecovery#[enable_recovery]EnableRecovery prule_expractionactionaaction<-r Actionrachoicees /Choiceessequencees layoutSequenceesbindn identifier:e NameBindnerepeatr *Repeatr0NoneSequenceNilr +Repeatr1NoneSequenceNilr ?Repeatr0Some1SequenceNilbasespstringLiterals[c charclass] CharClassc#str(r prule_expraction) SliceInputr#pos(r prule_expraction) PosLookaheadr#neg(r prule_expraction) NegLookaheadr<r prule_expraction>r#thisThis#nextNext#guidGuid#adapt(a identifier,n identifier)AtAdaptann identifier layout(as prule_expraction,)RunVarnasn identifierRunVarnNil#repeat(e prule_expraction,d prule_expraction,*)Repeate0Noned#repeat(e prule_expraction,d prule_expraction,+)Repeate1Noned #repeat(e prule_expraction,d prule_expraction,mininteger,inf)RepeateminNoned #repeat(e prule_expraction,d prule_expraction,mininteger,maxinteger)RepeateminSomemaxd charclassnegate^pscharclass_part| CharClassnegatepscharclass_part\'c1charclass_char\'-\'c2charclass_char\'Rangec1c2\'ccharclass_char\'Rangecccharclass_char''\\ char_escapespstringString\"sstr_char\"sstr_char""\\ char_escapes char_escapes\\n\n\\r\r\\\\\\\\\"\"\\\'\'layout // \nintegerInteger09 identifier Identifier reserved azAZ09__nazAZ__azAZ09__nreservedendstrruleastnegposgroupadapt prule_actionconsh ::t  ConstructConsConshConstNilbase[] ConstructNilNiln identifier(as prule_action,) Constructnasspstring InputLiteralsn identifierNamen(a prule_action)a