lib/rouge/regex_lexer.rb in rouge-2.1.0 vs lib/rouge/regex_lexer.rb in rouge-2.1.1
- old
+ new
@@ -44,10 +44,11 @@
attr_reader :rules
def initialize(name, &defn)
@name = name
@defn = defn
@rules = []
+ @loaded = false
end
def to_state(lexer_class)
load!
rules = @rules.map do |rule|
@@ -100,11 +101,11 @@
callback ||= case next_state
when :pop!
proc do |stream|
puts " yielding #{tok.qualname}, #{stream[0].inspect}" if @debug
@output_stream.call(tok, stream[0])
- puts " popping stack: #{1}" if @debug
+ puts " popping stack: 1" if @debug
@stack.pop or raise 'empty stack!'
end
when :push
proc do |stream|
puts " yielding #{tok.qualname}, #{stream[0].inspect}" if @debug
@@ -298,10 +299,10 @@
# see http://bugs.ruby-lang.org/issues/7092
# TODO: this doesn't cover cases like /(a|^b)/, but it's
# the most common, for now...
next if rule.beginning_of_line && !stream.beginning_of_line?
- if size = stream.skip(rule.re)
+ if (size = stream.skip(rule.re))
puts " got #{stream[0].inspect}" if @debug
instance_exec(stream, &rule.callback)
if size.zero?