in doc-src/parsejs/lib/parsejs/grammar.kpeg.rb [4930:5004]
def _ConditionalExpressionNoIn
_save = self.pos
while true # choice
_save1 = self.pos
while true # sequence
_tmp = apply(:_LogicalOrExpressionNoIn)
left = @result
unless _tmp
self.pos = _save1
break
end
_tmp = apply(:__hyphen_)
unless _tmp
self.pos = _save1
break
end
_tmp = match_string("?")
unless _tmp
self.pos = _save1
break
end
_tmp = apply(:__hyphen_)
unless _tmp
self.pos = _save1
break
end
_tmp = apply(:_AssignmentExpressionNoIn)
middle = @result
unless _tmp
self.pos = _save1
break
end
_tmp = apply(:__hyphen_)
unless _tmp
self.pos = _save1
break
end
_tmp = match_string(":")
unless _tmp
self.pos = _save1
break
end
_tmp = apply(:__hyphen_)
unless _tmp
self.pos = _save1
break
end
_tmp = apply(:_AssignmentExpressionNoIn)
right = @result
unless _tmp
self.pos = _save1
break
end
@result = begin; conditional_expression(left, middle, right); end
_tmp = true
unless _tmp
self.pos = _save1
end
break
end # end sequence
break if _tmp
self.pos = _save
_tmp = apply(:_LogicalOrExpressionNoIn)
break if _tmp
self.pos = _save
break
end # end choice
set_failed_rule :_ConditionalExpressionNoIn unless _tmp
return _tmp
end