_StringLiteral

in doc-src/parsejs/lib/parsejs/grammar.kpeg.rb [8455:8537]


  def _StringLiteral

    _save = self.pos
    while true 

      _save1 = self.pos
      while true 
        _tmp = apply(:_DQ)
        unless _tmp
          self.pos = _save1
          break
        end
        _text_start = self.pos
        while true
          _tmp = apply(:_DoubleStringCharacter)
          break unless _tmp
        end
        _tmp = true
        if _tmp
          text = get_text(_text_start)
        end
        unless _tmp
          self.pos = _save1
          break
        end
        _tmp = apply(:_DQ)
        unless _tmp
          self.pos = _save1
          break
        end
        @result = begin; string_literal(text, '"'); end
        _tmp = true
        unless _tmp
          self.pos = _save1
        end
        break
      end 

      break if _tmp
      self.pos = _save

      _save3 = self.pos
      while true 
        _tmp = apply(:_SQ)
        unless _tmp
          self.pos = _save3
          break
        end
        _text_start = self.pos
        while true
          _tmp = apply(:_SingleStringCharacter)
          break unless _tmp
        end
        _tmp = true
        if _tmp
          text = get_text(_text_start)
        end
        unless _tmp
          self.pos = _save3
          break
        end
        _tmp = apply(:_SQ)
        unless _tmp
          self.pos = _save3
          break
        end
        @result = begin; string_literal(text, "'"); end
        _tmp = true
        unless _tmp
          self.pos = _save3
        end
        break
      end 

      break if _tmp
      self.pos = _save
      break
    end 

    set_failed_rule :_StringLiteral unless _tmp
    return _tmp
  end