_SignedInteger

in doc-src/parsejs/lib/parsejs/grammar.kpeg.rb [8362:8439]


  def _SignedInteger

    _save = self.pos
    while true # choice
      _save1 = self.pos
      _tmp = apply(:_DecimalDigit)
      if _tmp
        while true
          _tmp = apply(:_DecimalDigit)
          break unless _tmp
        end
        _tmp = true
      else
        self.pos = _save1
      end
      break if _tmp
      self.pos = _save

      _save2 = self.pos
      while true # sequence
        _tmp = match_string("+")
        unless _tmp
          self.pos = _save2
          break
        end
        _save3 = self.pos
        _tmp = apply(:_DecimalDigit)
        if _tmp
          while true
            _tmp = apply(:_DecimalDigit)
            break unless _tmp
          end
          _tmp = true
        else
          self.pos = _save3
        end
        unless _tmp
          self.pos = _save2
        end
        break
      end # end sequence

      break if _tmp
      self.pos = _save

      _save4 = self.pos
      while true # sequence
        _tmp = match_string("-")
        unless _tmp
          self.pos = _save4
          break
        end
        _save5 = self.pos
        _tmp = apply(:_DecimalDigit)
        if _tmp
          while true
            _tmp = apply(:_DecimalDigit)
            break unless _tmp
          end
          _tmp = true
        else
          self.pos = _save5
        end
        unless _tmp
          self.pos = _save4
        end
        break
      end # end sequence

      break if _tmp
      self.pos = _save
      break
    end # end choice

    set_failed_rule :_SignedInteger unless _tmp
    return _tmp
  end