in doc-src/parsejs/lib/parsejs/grammar.kpeg.rb [3883:3965]
def _SwitchStatement
_save = self.pos
while true # sequence
_tmp = apply(:_SwitchTok)
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
_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
_tmp = apply(:__hyphen_)
unless _tmp
self.pos = _save
break
end
_tmp = match_string("{")
unless _tmp
self.pos = _save
break
end
_tmp = apply(:__hyphen_)
unless _tmp
self.pos = _save
break
end
_tmp = apply(:_CaseClauses)
clauses = @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
@result = begin; switch_statement(expr, clauses); end
_tmp = true
unless _tmp
self.pos = _save
end
break
end # end sequence
set_failed_rule :_SwitchStatement unless _tmp
return _tmp
end