in doc-src/parsejs/lib/parsejs/grammar.kpeg.rb [3967:4095]
def _CaseClauses
_save = self.pos
while true # choice
_save1 = self.pos
while true # sequence
_ary = []
while true
_tmp = apply(:_CaseClause)
_ary << @result if _tmp
break unless _tmp
end
_tmp = true
@result = _ary
clauses = @result
unless _tmp
self.pos = _save1
break
end
_tmp = apply(:__hyphen_)
unless _tmp
self.pos = _save1
break
end
_tmp = apply(:_DefaultClause)
default = @result
unless _tmp
self.pos = _save1
break
end
_tmp = apply(:__hyphen_)
unless _tmp
self.pos = _save1
break
end
_ary = []
while true
_tmp = apply(:_CaseClause)
_ary << @result if _tmp
break unless _tmp
end
_tmp = true
@result = _ary
more_clauses = @result
unless _tmp
self.pos = _save1
break
end
@result = begin; clauses + [default] + more_clauses ; end
_tmp = true
unless _tmp
self.pos = _save1
end
break
end # end sequence
break if _tmp
self.pos = _save
_save4 = self.pos
while true # sequence
_ary = []
while true
_tmp = apply(:_CaseClause)
_ary << @result if _tmp
break unless _tmp
end
_tmp = true
@result = _ary
clauses = @result
unless _tmp
self.pos = _save4
break
end
_tmp = apply(:__hyphen_)
unless _tmp
self.pos = _save4
break
end
_tmp = apply(:_DefaultClause)
default = @result
unless _tmp
self.pos = _save4
break
end
@result = begin; clauses + [default] ; end
_tmp = true
unless _tmp
self.pos = _save4
end
break
end # end sequence
break if _tmp
self.pos = _save
_save6 = self.pos
while true # sequence
_ary = []
while true
_tmp = apply(:_CaseClause)
_ary << @result if _tmp
break unless _tmp
end
_tmp = true
@result = _ary
clauses = @result
unless _tmp
self.pos = _save6
break
end
@result = begin; clauses ; end
_tmp = true
unless _tmp
self.pos = _save6
end
break
end # end sequence
break if _tmp
self.pos = _save
break
end # end choice
set_failed_rule :_CaseClauses unless _tmp
return _tmp
end