_CaseClauses

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