/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 2 0 , ĠChristian ĠB an se Ġand ĠAnd reas ĠH ager . ĠAll Ġrights Ġreserved . Ċ Ġ* Ċ Ġ* Ġ ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġ Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* Ġ ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* Ġ ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġ Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* Ġ ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* Ġ ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġ Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ* Ċ Ġ*/ Ċ Ċ package Ġio . github . ox isto . ret ic ulated . ast . expression . argument Ċ Ċ import Ġio . github . ox isto . ret ic ulated . ast . Could Not ParseException Ċ import Ġio . github . ox isto . ret ic ulated . ast . Scope Ċ import Ġio . github . ox isto . ret ic ulated . ast . expression . primary . call . Call Tr ailer Ċ import Ġio . github . ox isto . ret ic ulated . ast . expression . primary . call . Empty Call Tr ailer Ċ import Ġio . github . ox isto . ret ic ulated . ast . expression . Expression Ċ import Ġio . github . ox isto . ret ic ulated . ast . expression . Expression Visitor Ċ import Ġio . github . ox isto . ret ic ulated . ast . expression . comp reh ension . Comp For Ċ import Ġio . github . ox isto . ret ic ulated . ast . expression . comp reh ension . Comp reh ension Ċ import Ġio . github . ox isto . ret ic ulated . ast . expression . comp reh ension . Comp reh ension Visitor Ċ import Ġio . github . ox isto . ret ic ulated . grammar . Python 3 Base Visitor Ċ import Ġio . github . ox isto . ret ic ulated . grammar . Python 3 Parser Ċ Ċ class ĠCall Tr ailer Visitor ( val Ġscope : ĠScope ) Ġ: ĠPython 3 Base Visitor < Call Tr ailer >() Ġ{ ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠIt Ġis Ġthe Ġtr ailer Ġform Ġthe Ġcall Ġin Ġthe ĠE BN F Ġform : ĊĠĠ Ġ* ĠĠĠĠĠ Ġcall _ tr ailer Ġ::= Ġ"(" Ġ[ Ġargument _ list Ġ[ ", "] Ġ| Ġcompreh ension Ġ] Ġ")" ĊĠĠ Ġ* Ġ[ see : Ġ{@ link to url Ġhttps :// docs . python . org / 3 / reference / expressions . html # calls Ġ}] ĊĠĠ Ġ*/ ĊĠ Ġoverride Ġfun Ġvisit Tr ailer ( ctx : ĠPython 3 Parser . Tr ailer Context ): ĠCall Tr ailer Ġ{ ĊĠĠĠĠĠ Ġif ( ctx . child Count Ġ< Ġ 2 Ġ|| Ġctx . child Count Ġ> Ġ 3 ){ ĊĠĠĠĠĠĠĠĠĠ Ġthrow ĠCould Not ParseException (" The Ġchild Count Ġof Ġthe Ġctx =$ ctx Ġwas Ġnot Ġexpected .") ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġif ( ctx . child Count Ġ== Ġ 3 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtr ailer Ġ= Ġctx . getChild ( 1 ) ĊĠĠĠĠĠĠĠ Ġif Ġ( tr ailer . child Count Ġ== Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġargument Context Ġ= Ġtr ailer . getChild ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( argument Context . getChild ( 1 ) Ġis ĠPython 3 Parser . Comp _ for Context ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠThe Ġtr ailer Ġis Ġa Ġcompreh ension ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexpression : ĠExpression Ġ= Ġargument Context ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. getChild ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. accept ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠExpression Visitor ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . scope ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcomp For : ĠComp For Ġ= Ġargument Context ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. getChild ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. accept ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠComp reh ension Visitor ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . scope ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġas ĠComp For ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠComp reh ension ( expression , Ġcomp For ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// ĠThe Ġtr ailer Ġis Ġa Ġargument _ list ĊĠĠĠĠĠĠĠ Ġtr ailer . accept ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠArgument List Visitor ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . scope ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ ĠEmpty Call Tr ailer () ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ }