rouge-ruby/rouge · error · RuntimeError

unknown state: #{name.inspect}

Error message

unknown state: #{name.inspect}

What it means

Error "unknown state: #{name.inspect}" thrown in rouge-ruby/rouge.

Source

Thrown at lib/rouge/regex_lexer.rb:388

    def self.prepend(name, &b)
      name = name.to_sym
      dsl = state_definitions[name] or raise "no such state #{name.inspect}"
      replace_state(name, dsl.prepended(&b))
    end

    def self.append(name, &b)
      name = name.to_sym
      dsl = state_definitions[name] or raise "no such state #{name.inspect}"
      replace_state(name, dsl.appended(&b))
    end

    # @private
    def self.get_state(name)
      return name if name.is_a? State

      states[name.to_sym] ||= begin
        defn = state_definitions[name.to_sym] or raise "unknown state: #{name.inspect}"
        defn.to_state(self)
      end
    end

    def self.dangerous_alternation_regexp(list)
      # rubocop:disable Rouge/NoBuildingAlternationPatternInRegexp
      /#{Regexp.union(list)}\b/
      # rubocop:enable Rouge/NoBuildingAlternationPatternInRegexp
    end

    def self.get_keyword_set(name)
      @keyword_sets ||= {}

      @keyword_sets[name] ||= begin
        # don't recurse past the base class
        if self == RegexLexer
          raise "no keyword set #{name.inspect} defined - try defining one!"
        end

View on GitHub (pinned to bd7dad7b09)

When it happens

Trigger: Thrown at lib/rouge/regex_lexer.rb:388 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of rouge-ruby/rouge@bd7dad7b09 (2026-08-23). Data as JSON: /api/errors/3b831e080efc04e6. Report an issue: GitHub.