package Ġcom . k ire kov . super _ selector . interpreter . lex eme . handler Ċ Ċ import Ġcom . k ire kov . super _ selector . L exe me Parsing Exception Ċ import Ġcom . k ire kov . super _ selector . interpreter . lex eme . L exe me Ċ import Ġcom . k ire kov . super _ selector . interpreter . lex eme . L exe me Parsing Result Ċ import Ġcom . k ire kov . super _ selector . interpreter . lex eme . L exe me Type Ċ import Ġcom . k ire kov . super _ selector . interpreter . lex eme . Query State Ċ Ċ class ĠLogical Operators Parser Ġ: ĠL exe me Parser Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġparse L exe me ( query State : ĠQuery State ): ĠL exe me Parsing Result ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġch Ġ= Ġquery State . current Char ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( ch Ġ== Ġ'& ' Ġ|| Ġch Ġ== Ġ'| ') Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnext Ġ= Ġquery State . next Char State () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( next . current Char Ġ!= Ġch ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠL exe me Parsing Exception ( next , Ġ" Expected Ġ'$ ch '") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġle xe me Type Ġ= Ġif Ġ( ch Ġ== Ġ'& ') ĠL exe me Type . AND Ġelse ĠL exe me Type . OR ĊĠĠĠĠĠĠĠĠĠĠĠ ĠL exe me Parsing Result ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġle xe me Ġ= ĠL exe me . of ( lex eme Type , Ġpointer Ġ= Ġquery State . pointer ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnext State Ġ= Ġnext . next Char State () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġnull ĊĠĠĠ Ġ} Ċ }