This module holds the Scanner class and its subclasses. For example, the Ruby scanner is named CodeRay::Scanners::Ruby can be found in coderay/scanners/ruby.
Scanner also provides methods and constants for the register mechanism and the [] method that returns the Scanner class belonging to the given lang.
See PluginHost.
# File lib/coderay/scanners/nitro_xhtml.rb, line 83
83: def reset_instance
84: super
85: @html_scanner.reset
86: end
# File lib/coderay/scanners/nitro_xhtml.rb, line 88
88: def scan_tokens tokens, options
89:
90: until eos?
91:
92: if (match = scan_until(/(?=#{START_OF_RUBY})/) || scan_until(/\z/)) and not match.empty?
93: @html_scanner.tokenize match
94:
95: elsif match = scan(/#{NITRO_VALUE_BLOCK}/)
96: start_tag = match[0,2]
97: delimiter = CLOSING_PAREN[start_tag[1,1]]
98: end_tag = match[1,1] == delimiter ? delimiter : ''
99: tokens << [:open, :inline]
100: tokens << [start_tag, :inline_delimiter]
101: code = match[start_tag.size .. 1 - end_tag.size]
102: @ruby_scanner.tokenize code
103: tokens << [end_tag, :inline_delimiter] unless end_tag.empty?
104: tokens << [:close, :inline]
105:
106: elsif match = scan(/#{NITRO_RUBY_BLOCK}/)
107: start_tag = '<?r'
108: end_tag = match[2,2] == '?>' ? '?>' : ''
109: tokens << [:open, :inline]
110: tokens << [start_tag, :inline_delimiter]
111: code = match[start_tag.size .. -(end_tag.size)-1]
112: @ruby_scanner.tokenize code
113: tokens << [end_tag, :inline_delimiter] unless end_tag.empty?
114: tokens << [:close, :inline]
115:
116: elsif entity = scan(/#{NITRO_ENTITY}/)
117: tokens << [entity, :entity]
118:
119: elsif scan(/%/)
120: tokens << [matched, :error]
121:
122: else
123: raise_inspect 'else-case reached!', tokens
124:
125: end
126:
127: end
128:
129: tokens
130:
131: end
Disabled; run with --debug to generate this.
Generated with the Darkfish Rdoc Generator 1.1.6.