Class: CTokenizer::Splitter

Inherits:
LexerBase show all
Defined in:
lib/caphir/ctokenizer.rb

Overview

TODO: what is this for ?

Constant Summary

Constants included from CTokenizer

CP_RESERVED, C_RESERVED, EOF_TOKEN

Instance Attribute Summary collapse

Attributes included from Sourced

#source

Instance Method Summary collapse

Methods included from Sourced

#empty?, #file, #file=, #line, #line=, #match?

Methods included from CTokenizer

#collect, #each, #error, error, line_count, #parse_error, #to_a, #token_error, #unmatched_error, #warning

Constructor Details

#initialize(out, source, file = nil, line = 1) ⇒ Splitter

Returns a new instance of Splitter.


301
302
303
304
305
# File 'lib/caphir/ctokenizer.rb', line 301

def initialize(out, source, file=nil, line=1)
	super(source, file, line)
	@out = out
	@last_line = line
end

Instance Attribute Details

#last_lineObject (readonly)

Returns the value of attribute last_line


307
308
309
# File 'lib/caphir/ctokenizer.rb', line 307

def last_line
  @last_line
end

Instance Method Details

#reset(new_out) ⇒ Object


321
322
323
324
325
326
# File 'lib/caphir/ctokenizer.rb', line 321

def reset(new_out)
	old_out = @out
	@out = new_out
	@last_line = self.line
	old_out
end

#scan(regexp) ⇒ Object


315
316
317
318
319
# File 'lib/caphir/ctokenizer.rb', line 315

def scan(regexp)
	s = @source.scan(regexp)
	@out << [:UNKNOWN, s]
	s
end

#shiftObject


309
310
311
312
313
# File 'lib/caphir/ctokenizer.rb', line 309

def shift
	t = super
	@out << t
	t
end