Class: Metal::Generator::LiteralToken

Inherits:
Object
  • Object
show all
Defined in:
lib/metal/generator.rb

Instance Method Summary collapse

Constructor Details

#initialize(str) ⇒ LiteralToken

Returns a new instance of LiteralToken.



363
364
365
# File 'lib/metal/generator.rb', line 363

def initialize(str)
  @str = str
end

Instance Method Details

#generate(ctx, source) ⇒ Object



367
368
369
370
371
372
373
374
375
376
# File 'lib/metal/generator.rb', line 367

def generate(ctx, source)
  str = @str
  str_len = Generator.string_length(str)
  if str_len == 1
    # FIXME multibyte character optimize
    source << "ctx->act_char(\"#{str}\",#{str_len});\n"
  else
    source << "ctx->act_token(\"#{str}\",#{str_len});\n"
  end
end

#preprocess(ctx) ⇒ Object



366
# File 'lib/metal/generator.rb', line 366

def preprocess(ctx) end