class KDL::Tokenizer

Defined in:

kdl/tokenizer.cr

Constant Summary

FORBIDDEN = [*'\0'..'\b', *'\u000E'..'\u001F', '\u007F', *'\u200E'..'\u200F', *'\u202A'..'\u202E', *'\u2066'..'\u2069', '\uFEFF']
IDENTIFER_CHARS = /[^#{NON_IDENTIFIER_CHARS}]/
INITIAL_IDENTIFIER_CHARS = /[^#{NON_IDENTIFIER_CHARS}0-9]/
NEWLINES = ['\n', '\u0085', '\v', '\f', '\u2028', '\u2029']
NEWLINES_PATTERN = /(#{NEWLINES.map do |c| Regex.escape(c) end.join('|')}|\r\n?)/
NON_IDENTIFIER_CHARS = Regex.escape("#{SYMBOLS.keys.join("")}()[]/\\\"##{WHITESPACE.join}#{OTHER_NON_IDENTIFIER_CHARS.join}")
OTHER_NON_IDENTIFIER_CHARS = ('\0'..' ').to_a - WHITESPACE
SYMBOLS = {'{' => Token::Type::LBRACE, '}' => Token::Type::RBRACE, ';' => Token::Type::SEMICOLON, '=' => Token::Type::EQUALS}
UNESCAPE = /\\(?:[#{WHITESPACE.join}#{NEWLINES.join}\r]+|[^u])/
UNESCAPE_NON_WS = /\\(?:[^u])/
VERSION_PATTERN = /\A\/-[#{WHITESPACE.join}]*kdl-version[#{WHITESPACE.join}]+(\d+)[#{WHITESPACE.join}]*[#{NEWLINES.join}]/
WHITESPACE = ['\t', ' ', '\u00A0', '\u1680', '\u2000', '\u2001', '\u2002', '\u2003', '\u2004', '\u2005', '\u2006', '\u2007', '\u2008', '\u2009', '\u200A', '\u202F', '\u205F', '\u3000']
WS = "[#{Regex.escape(WHITESPACE.join)}]"
WS_PLUS = /\A#{WS}+\z/
WS_STAR = /\A#{WS}*\z/

Constructors

Instance Method Summary

Instance methods inherited from class Reference

==(other : KDL::Value) ==

Instance methods inherited from class Object

===(other : KDL::Value) ===

Constructor Detail

def self.new(str : String, start : Int32 = 0) #

[View source]

Instance Method Detail

def [](i) #

[View source]
def column : Int32 #

[View source]
def column=(column : Int32) #

[View source]
def comment : String #

[View source]
def comment=(comment : String) #

[View source]
def context : KDL::Tokenizer::Context? #

[View source]
def done? : Bool #

[View source]
def has_comment : Bool #

[View source]
def has_comment=(has_comment : Bool) #

[View source]
def index : Int32 #

[View source]
def line : Int32 #

[View source]
def line=(line : Int32) #

[View source]
def next_token #

[View source]
def peek_token #

[View source]
def peek_token_after_next #

[View source]
def read_next_token #

[View source]
def reset #

[View source]
def tokens #

[View source]
def version_directive #

[View source]