package Ġcz . v ut br . fit . k not . entic ing . eql . compiler . ast . visitor Ċ Ċ import Ġcz . v ut br . fit . k not . entic ing . eql . compiler . ast . Constraint Node Ċ import Ġcz . v ut br . fit . k not . entic ing . eql . compiler . ast . E ql Visitor Ċ import Ġcz . v ut br . fit . k not . entic ing . eql . compiler . ast . Reference Node ĊĊ Ċ /** Ċ Ġ* ĠVisitor Ġwhich Ġshould Ġonly Ġtraverse Ġthe Ġ' query ' Ġpart Ġof Ġthe ĠAST . Ċ Ġ* Ċ Ġ* Ġ@ throws ĠIllegalStateException Ġif Ġit Ġsomehow Ġar rives Ġat Ġa Ġnode Ġfrom Ġthe Ġ' global Ġconstraint ' Ġpart Ġof Ġast Ċ Ġ*/ Ċ abstract Ġclass ĠGlobal Constraint A gn ost ic Visitor < T > Ġ: ĠE ql Visitor < T > Ġ{ ĊĠĠĠ Ġprivate Ġfun Ġfail (): ĠNothing Ġ= Ġthrow ĠIllegalStateException (" global Ġconstraint Ġevaluation Ġshould Ġnever Ġbe Ġcalled Ġin Ġthis Ġtype Ġof Ġvisitor ") ĊĊĠĠĠ Ġoverride Ġfun Ġvisit Constraint Node ( node : ĠConstraint Node ): ĠT Ġ= Ġfail () ĊĊĠĠĠ Ġoverride Ġfun Ġvisit Constraint Boolean Expression Not Node ( node : ĠConstraint Node . Boolean Expression Node . Not Node ): ĠT Ġ= Ġfail () ĊĊĠĠĠ Ġoverride Ġfun Ġvisit Constraint Boolean Expression Paren Node ( node : ĠConstraint Node . Boolean Expression Node . Paren Node ): ĠT Ġ= Ġfail () ĊĊĠĠĠ Ġoverride Ġfun Ġvisit Constraint Boolean Expression Operator Node ( node : ĠConstraint Node . Boolean Expression Node . Operator Node ): ĠT Ġ= Ġfail () ĊĊĠĠĠ Ġoverride Ġfun Ġvisit Constraint Boolean Expression Comparison Node ( node : ĠConstraint Node . Boolean Expression Node . Comparison Node ): ĠT Ġ= Ġfail () ĊĊĠĠĠ Ġoverride Ġfun Ġvisit Simple Reference Node ( node : ĠReference Node . Simple Reference Node ): ĠT Ġ= Ġfail () ĊĊĠĠĠ Ġoverride Ġfun Ġvisit Nested Reference Node ( node : ĠReference Node . Nested Reference Node ): ĠT Ġ= Ġfail () Ċ }