Class: CTokenizer::Cache

Inherits:
Object
  • Object
show all
Includes:
CTokenizer
Defined in:
lib/dbc/ctokenizer.rb

Overview

LexerBase

Constant Summary

Constants included from CTokenizer

EOF_TOKEN

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from CTokenizer

check_token, #collect, #each, #error, error, line_count, #parse_error, #to_a, #token_error, #warning, whitespace?

Constructor Details

#initialize(file = nil, line = 1) ⇒ Cache

Returns a new instance of Cache.



259
260
261
262
263
# File 'lib/dbc/ctokenizer.rb', line 259

def initialize(file=nil, line=1)
	@cache = []
	@file = file
	@line = line
end

Instance Attribute Details

#cacheObject (readonly)

Returns the value of attribute cache.



264
265
266
# File 'lib/dbc/ctokenizer.rb', line 264

def cache
  @cache
end

#fileObject (readonly)

Returns the value of attribute file.



264
265
266
# File 'lib/dbc/ctokenizer.rb', line 264

def file
  @file
end

#lineObject (readonly)

Returns the value of attribute line.



264
265
266
# File 'lib/dbc/ctokenizer.rb', line 264

def line
  @line
end

Instance Method Details

#<<(t) ⇒ Object



269
270
271
# File 'lib/dbc/ctokenizer.rb', line 269

def <<(t)
	@cache << t
end

#empty?Boolean

Returns:

  • (Boolean)


277
278
279
# File 'lib/dbc/ctokenizer.rb', line 277

def empty?
	@cache.empty?
end

#reset(file, line) ⇒ Object



265
266
267
268
# File 'lib/dbc/ctokenizer.rb', line 265

def reset(file, line)
	@file = file
	@line = line
end

#shiftObject



272
273
274
275
276
# File 'lib/dbc/ctokenizer.rb', line 272

def shift
	t = @cache.shift
	@line += CTokenizer.line_count(t[1])
	t
end