Class: Liquidscript::Scanner::Liquidscript

Inherits:
Base
  • Object
show all
Includes:
Base::DSL
Defined in:
lib/liquidscript/scanner/liquidscript.rb,
lib/liquidscript/scanner/liquidscript/main.rb,
lib/liquidscript/scanner/liquidscript/regexs.rb,
lib/liquidscript/scanner/liquidscript/heredocs.rb,
lib/liquidscript/scanner/liquidscript/interpolations.rb

Defined Under Namespace

Modules: Heredocs, Interpolations, Main, Regexs

Constant Summary

Constants inherited from Base

Base::EXIT

Instance Attribute Summary collapse

Attributes inherited from Base

#metadata

Instance Method Summary collapse

Methods included from Base::DSL

included

Methods inherited from Base

#contexts, #default_context, #each, #emit, #file, #inspect, #scan

Methods included from Base::Lexer

#error, #lex, #perform_with_context

Constructor Details

#initializeLiquidscript

Returns a new instance of Liquidscript.



23
24
25
26
27
28
# File 'lib/liquidscript/scanner/liquidscript.rb', line 23

def initialize(*)
  @line = 1
  @cstart = 0
  @lexes = []
  super
end

Instance Attribute Details

#tokensObject (readonly)

Returns the value of attribute tokens.



12
13
14
# File 'lib/liquidscript/scanner/liquidscript.rb', line 12

def tokens
  @tokens
end

Instance Method Details

#columnObject



48
49
50
# File 'lib/liquidscript/scanner/liquidscript.rb', line 48

def column
  @scanner.pos - @cstart
end

#lineObject



44
45
46
# File 'lib/liquidscript/scanner/liquidscript.rb', line 44

def line
  @line
end

#line!Object



30
31
32
33
34
35
36
37
38
# File 'lib/liquidscript/scanner/liquidscript.rb', line 30

def line!
  @line += 1
  @cstart = @scanner.pos
  while @lexes.any?
    type, @start = @lexes.shift

    lex type
  end
end

#normalize_identifier(ident) ⇒ Object



40
41
42
# File 'lib/liquidscript/scanner/liquidscript.rb', line 40

def normalize_identifier(ident)
  ident.gsub(/\-[a-z]/) { |p| p[1].upcase }
end