Initial Revision
[ohcount] / ext / ohcount_native / glots / xml_monoglot.rb
1 require 'monoglot'
2
3 module Ohcount
4         class XmlMonoglot < Monoglot
5                 def initialize(language)
6                         @name = language
7                         @states = [
8                                 State.new(language, :markup,  :code),
9                                 State.new(language, :squote,  :code),
10                                 State.new(language, :dquote,  :code),
11                                 State.new(language, :cdata,   :code),
12                                 State.new(language, :comment, :comment)
13                         ]
14                         @transitions = [
15                                 Transition.new(language, "'",                 :markup,  :squote,  :from,    false),
16                                 Transition.new(language, "'",                 :squote,  :return,  :to,      false),
17                                 Transition.new(language, '\"',                :markup,  :dquote,  :from,    false),
18                                 Transition.new(language, '\"',                :dquote,  :return,  :to,      false),
19                                 Transition.new(language, '<!\\\\[CDATA\\\\[', :markup,  :cdata,   :from,    false),
20                                 Transition.new(language, '\\\\]\\\\]>',       :cdata,   :return,  :to,      false),
21                                 Transition.new(language, '<!--',              :markup,  :comment, :to,      false),
22                                 Transition.new(language, '-->',               :comment, :return,  :from,    false)
23                         ]
24                 end
25         end
26 end