/* Ċ Ġ* ĠWrap State . kt Ċ Ġ* ĠCopyright ĠÂ© Ġ 1 9 9 3 - 2 0 2 1 , ĠThe ĠAv ail ĠFoundation , ĠLLC . Ċ Ġ* ĠAll Ġrights Ġreserved . Ċ Ġ* Ċ Ġ* ĠRedistribution Ġand Ġuse Ġin Ġsource Ġand Ġbinary Ġforms , Ġwith Ġor Ġwithout Ċ Ġ* Ġmodification , Ġare Ġpermitted Ġprovided Ġthat Ġthe Ġfollowing Ġconditions Ġare Ġmet : Ċ Ġ* Ċ Ġ* Ġ* ĠRedistributions Ġof Ġsource Ġcode Ġmust Ġretain Ġthe Ġabove Ġcopyright Ġnotice , Ġthis Ċ Ġ* ĠĠ Ġlist Ġof Ġconditions Ġand Ġthe Ġfollowing Ġdisclaimer . Ċ Ġ* Ċ Ġ* Ġ* ĠRedistributions Ġin Ġbinary Ġform Ġmust Ġreproduce Ġthe Ġabove Ġcopyright Ġnotice , Ċ Ġ* ĠĠ Ġthis Ġlist Ġof Ġconditions Ġand Ġthe Ġfollowing Ġdisclaimer Ġin Ġthe Ġdocumentation Ċ Ġ* ĠĠ Ġand / or Ġother Ġmaterials Ġprovided Ġwith Ġthe Ġdistribution . Ċ Ġ* Ċ Ġ* Ġ* ĠNeither Ġthe Ġname Ġof Ġthe Ġcopyright Ġholder Ġnor Ġthe Ġnames Ġof Ġthe Ġcontributors Ċ Ġ* ĠĠ Ġmay Ġbe Ġused Ġto Ġendorse Ġor Ġpromote Ġproducts Ġderived Ġfrom Ġthis Ġsoftware Ċ Ġ* ĠĠ Ġwithout Ġspecific Ġprior Ġwritten Ġpermission . Ċ Ġ* Ċ Ġ* ĠTHIS ĠSOFTWARE ĠIS ĠPROVIDED ĠBY ĠTHE ĠCOPYRIGHT ĠHOLDERS ĠAND ĠCONTRIBUTORS Ġ" AS ĠIS " Ċ Ġ* ĠAND ĠANY ĠEXPRESS ĠOR ĠIMPLIED ĠWARRANTIES , ĠINCLUDING , ĠBUT ĠNOT ĠLIMITED ĠTO , ĠTHE Ċ Ġ* ĠIMPLIED ĠWARRANTIES ĠOF ĠMERCHANTABILITY ĠAND ĠFITNESS ĠFOR ĠA ĠPARTICULAR ĠPURPOSE Ċ Ġ* ĠARE ĠDISCLAIMED . ĠIN ĠNO ĠEVENT ĠSHALL ĠTHE ĠCOPYRIGHT ĠHOLDER ĠOR ĠCONTRIBUTORS ĠBE Ċ Ġ* ĠLIABLE ĠFOR ĠANY ĠDIRECT , ĠINDIRECT , ĠINCIDENTAL , ĠSPECIAL , ĠEXEMPLARY , ĠOR Ċ Ġ* ĠCONSEQUENTIAL ĠDAMAGES Ġ( INCLUDING , ĠBUT ĠNOT ĠLIMITED ĠTO , ĠPROCUREMENT ĠOF Ċ Ġ* ĠSUBSTITUTE ĠGOODS ĠOR ĠSERVICES ; ĠLOSS ĠOF ĠUSE , ĠDATA , ĠOR ĠPROFITS ; ĠOR ĠBUSINESS Ċ Ġ* ĠINTERRUPTION ) ĠHOWEVER ĠCAUSED ĠAND ĠON ĠANY ĠTHEORY ĠOF ĠLIABILITY , ĠWHETHER ĠIN Ċ Ġ* ĠCONTRACT , ĠSTRICT ĠLIABILITY , ĠOR ĠTORT Ġ( INCLUDING ĠNEGLIGENCE ĠOR ĠOTHERWISE ) Ċ Ġ* ĠARISING ĠIN ĠANY ĠWAY ĠOUT ĠOF ĠTHE ĠUSE ĠOF ĠTHIS ĠSOFTWARE , ĠEVEN ĠIF ĠADVISED ĠOF ĠTHE Ċ Ġ* ĠPOSSIBILITY ĠOF ĠSUCH ĠDAMAGE . Ċ Ġ*/ Ċ Ċ package Ġcom . avail . compiler . splitter Ċ Ċ import Ġcom . avail . compiler . Parsing Operation . APPEND _ ARGUMENT Ċ Ċ /** Ċ Ġ* ĠAn Ġindication Ġof Ġthe Ġdesired Ġand Ġactual Ġstack Ġstate . Ċ Ġ* Ċ Ġ* Ġ@ author ĠMark Ġvan ĠG ul ik Ġ& lt ; mark @ avail lang . org & gt ; Ċ Ġ*/ Ċ internal Ġenum Ġclass ĠWrap State Ċ { Ċ ĉ /** Ċĉ Ġ* ĠA Ġlist Ġhas Ġalready Ġbeen Ġpushed Ġfor Ġthe Ġcurrent Ġsequence . Ċĉ Ġ*/ Ċ ĉ PUSH ED _ LIST Ċ ĉ { Ċĉ ĉ override Ġfun Ġprocess After P ushed Argument ( Ċĉĉ ĉ expression : ĠExpression , Ċĉĉ ĉ generator : ĠInstruction Generator ): ĠWrap State Ċĉ ĉ { Ċĉĉ ĉ generator . flush Delayed () Ċĉĉ ĉ generator . emit ( expression , ĠAPP END _ ARGUMENT ) Ċĉĉ ĉ return Ġthis Ċĉ ĉ } Ċ ĉ }, ĊĊ ĉ /** Ċĉ Ġ* ĠA Ġlist Ġhas Ġnot Ġyet Ġbeen Ġpushed Ġfor Ġthe Ġcurrent Ġsequence , Ġbut Ġit Ġwill Ġbe . Ċĉ Ġ*/ Ċ ĉ NEED S _ TO _ PUSH _ LIST Ċ ĉ { Ċĉ ĉ override Ġfun Ġprocess After P ushed Argument ( Ċĉĉ ĉ expression : ĠExpression , Ċĉĉ ĉ generator : ĠInstruction Generator ): ĠWrap State Ċĉ ĉ { Ċĉĉ ĉ generator . flush Delayed () Ċĉĉ ĉ generator . emit Wrapped ( expression , Ġ 1 ) Ċĉĉ ĉ return ĠP USH ED _ LIST Ċĉ ĉ } Ċ ĉ }, ĊĊ ĉ /** Ċĉ Ġ* ĠA Ġlist Ġcollecting Ġthe Ġarguments Ġfor Ġthe Ġcurrent Ġsequence Ġshould Ġnot Ġbe Ċĉ Ġ* Ġconstructed . Ġ ĠInstead , Ġthe Ġarguments Ġshould Ġbe Ġindividually Ġpushed . Ċĉ Ġ*/ Ċ ĉ SHO ULD _ NOT _ PUSH _ LIST Ċ ĉ { Ċĉ ĉ override Ġfun Ġprocess After P ushed Argument ( Ċĉĉ ĉ expression : ĠExpression , Ċĉĉ ĉ generator : ĠInstruction Generator ): ĠWrap State Ċĉ ĉ { Ċĉĉ ĉ return Ġthis Ċĉ ĉ } Ċ ĉ }, ĊĊ ĉ /** Ċĉ Ġ* ĠThe Ġsequence Ġshould Ġnot Ġhave Ġany Ġarguments Ġto Ġpush , Ġand Ġit Ġmust Ġnot Ċĉ Ġ* Ġaffect Ġthe Ġstack Ġat Ġall . Ċĉ Ġ*/ Ċ ĉ SHO ULD _ NOT _ HAVE _ ARGUMENT S Ċ ĉ { Ċĉ ĉ override Ġfun Ġprocess After P ushed Argument ( Ċĉĉ ĉ expression : ĠExpression , Ċĉĉ ĉ generator : ĠInstruction Generator ): ĠWrap State Ċĉ ĉ { Ċĉĉ ĉ throw ĠRuntimeException ( Ċĉĉĉ ĉ " Not Ġexpecting Ġan Ġargument / group , Ġbut Ġgot Ġone .") Ċĉ ĉ } Ċ ĉ }; ĊĊ ĉ /** Ċĉ Ġ* ĠAn Ġargument Ġhas Ġjust Ġbeen Ġpushed . Ġ ĠDo Ġany Ġnecessary Ġstack Ġadjust ments . Ċĉ Ġ* Ċĉ Ġ* Ġ@ return ĠThe Ġnew Ġstate Ġof Ġthe Ġstack . Ċĉ Ġ*/ Ċ ĉ internal Ġabstract Ġfun Ġprocess After P ushed Argument ( Ċĉ ĉ expression : ĠExpression , Ċĉ ĉ generator : ĠInstruction Generator ): ĠWrap State Ċ } Ċ