in src/google/appengine/api/search/ExpressionParser.py [0:0]
def atom(self, ):
retval = self.atom_return()
retval.start = self.input.LT(1)
root_0 = None
LPAREN34 = None
RPAREN36 = None
var30 = None
num31 = None
str32 = None
fn33 = None
conjunction35 = None
LPAREN34_tree = None
RPAREN36_tree = None
stream_LPAREN = RewriteRuleTokenStream(self._adaptor, "token LPAREN")
stream_RPAREN = RewriteRuleTokenStream(self._adaptor, "token RPAREN")
stream_conjunction = RewriteRuleSubtreeStream(self._adaptor, "rule conjunction")
try:
try:
alt9 = 5
alt9 = self.dfa9.predict(self.input)
if alt9 == 1:
pass
root_0 = self._adaptor.nil()
self._state.following.append(self.FOLLOW_var_in_atom370)
var30 = self.var()
self._state.following.pop()
self._adaptor.addChild(root_0, var30.tree)
elif alt9 == 2:
pass
root_0 = self._adaptor.nil()
self._state.following.append(self.FOLLOW_num_in_atom376)
num31 = self.num()
self._state.following.pop()
self._adaptor.addChild(root_0, num31.tree)
elif alt9 == 3:
pass
root_0 = self._adaptor.nil()
self._state.following.append(self.FOLLOW_str_in_atom382)
str32 = self.str()
self._state.following.pop()
self._adaptor.addChild(root_0, str32.tree)
elif alt9 == 4:
pass
root_0 = self._adaptor.nil()
self._state.following.append(self.FOLLOW_fn_in_atom388)
fn33 = self.fn()
self._state.following.pop()
self._adaptor.addChild(root_0, fn33.tree)
elif alt9 == 5:
pass
LPAREN34=self.match(self.input, LPAREN, self.FOLLOW_LPAREN_in_atom394)
stream_LPAREN.add(LPAREN34)
self._state.following.append(self.FOLLOW_conjunction_in_atom396)
conjunction35 = self.conjunction()
self._state.following.pop()
stream_conjunction.add(conjunction35.tree)
RPAREN36=self.match(self.input, RPAREN, self.FOLLOW_RPAREN_in_atom398)
stream_RPAREN.add(RPAREN36)
retval.tree = root_0
if retval is not None:
stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", retval.tree)
else:
stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None)
root_0 = self._adaptor.nil()
self._adaptor.addChild(root_0, stream_conjunction.nextTree())
retval.tree = root_0
retval.stop = self.input.LT(-1)
retval.tree = self._adaptor.rulePostProcessing(root_0)
self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop)
except RecognitionException as e:
self.reportError(e)
raise e
finally:
pass
return retval