Sha256: 48ea8a9c30b3dc059714f34332b6dd3b899dc03b9a891094be94a7e06f215d66
Contents?: true
Size: 1.04 KB
Versions: 3
Compression:
Stored size: 1.04 KB
Contents
## this class holds a block of carrot source code tokenized by the parser. class Token attr_accessor :ln, :line, :indent_level, # raw line and line number :processor_name, :line_code, :blocks, :indent_level def initialize ln, line, indent_level, processor_name, line_code = '', block_open = false @ln, @line, @indent_level, @processor_name, @line_code = ln, line, indent_level, processor_name, line_code @blocks = Array.new if block_open end def indent " " * indent_level end # add a line to current block args, separate each line with "\n" def add_block_code line raise "block not opened in line #{:ln}" unless block_open? line.chomp.split("\n").each do |ln| @blocks << ln end end def has_block? (@blocks and @blocks.size > 0) ? true : false end def block_open? @blocks.is_a?(Array) end def block_code has_block? ? @blocks.join("\n") : "" end def block_args YAML.load(block_code) end def line_args YAML.load(line_code) end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
luobo-0.1.3 | lib/luobo/token.rb |
luobo-0.1.2 | lib/luobo/token.rb |
luobo-0.0.5 | lib/luobo/token.rb |