in doc-src/parsejs/lib/parsejs/grammar.kpeg.rb [4097:4170]
def _CaseClause
_save = self.pos
while true # sequence
_tmp = apply(:__hyphen_)
unless _tmp
self.pos = _save
break
end
_tmp = apply(:_CaseTok)
unless _tmp
self.pos = _save
break
end
_tmp = apply(:__hyphen_)
unless _tmp
self.pos = _save
break
end
_tmp = apply(:_Expression)
expr = @result
unless _tmp
self.pos = _save
break
end
_tmp = apply(:__hyphen_)
unless _tmp
self.pos = _save
break
end
_tmp = match_string(":")
unless _tmp
self.pos = _save
break
end
_ary = []
while true
_save2 = self.pos
while true # sequence
_tmp = apply(:__hyphen_)
unless _tmp
self.pos = _save2
break
end
_tmp = apply(:_Statement)
unless _tmp
self.pos = _save2
end
break
end # end sequence
_ary << @result if _tmp
break unless _tmp
end
_tmp = true
@result = _ary
statements = @result
unless _tmp
self.pos = _save
break
end
@result = begin; switch_case(expr, statements); end
_tmp = true
unless _tmp
self.pos = _save
end
break
end # end sequence
set_failed_rule :_CaseClause unless _tmp
return _tmp
end