<glimmer-language-spec>
   <settings>
      <language>Ruby</language>
      <compiler></compiler>
      <debugger>%term% ruby -rdebug %1/%2</debugger>
      <execution>%term% %1%2</execution>
      <auto-indent>1</auto-indent>
      <use-spaces>0</use-spaces>
      <tab-stop>8</tab-stop>
   </settings>

   <mime-types>
      <mime-type>text/x-rb</mime-type>
   </mime-types>

   <syntax-items>
      <syntax-item>
         <name>multilinestring</name>
         <start-regex>&quot;&quot;&quot;</start-regex>
         <end-regex>&quot;&quot;&quot;</end-regex>
         <class>string</class>
      </syntax-item>
      <syntax-item>
         <name>string</name>
         <start-regex>&quot;</start-regex>
         <end-regex>\(&quot;\|\n\)</end-regex>
         <class>string</class>
      </syntax-item>
      <syntax-item>
         <name>singlestring</name>
         <start-regex>&apos;</start-regex>
         <end-regex>\(&apos;\|\n\)</end-regex>
         <class>char_string</class>
      </syntax-item>
      <syntax-item>
         <name>comment</name>
         <start-regex>#</start-regex>
         <end-regex>\n</end-regex>
	 <class>comment</class>
      </syntax-item>
      <syntax-item>
         <name>comment2</name>
	 <start-regex>=begin</start-regex>
         <end-regex>=end</end-regex>
         <class>comment</class>
      </syntax-item>
   </syntax-items>
   <pattern-items>
      <pattern-item>
         <name>global_var</name>
         <regex>\$[a-z|A-Z|_]+</regex>
	 <class>variable</class>
      </pattern-item>
      <pattern-item>
         <name>instance_var</name>
         <regex>\@[a-z|A-Z_]+</regex>
	 <class>variable</class>
      </pattern-item>
      <pattern-item>
         <name>modulhander</name>
         <regex>\b\require\b</regex>
         <class>preprocessor</class>
      </pattern-item>
      <pattern-item>
         <name>func_class</name>
         <regex>\b\(def\|class\|return\)\b</regex>
         <class>keyword</class>
      </pattern-item>
      <pattern-item>
         <name>keywords</name>
         <regex>\b\(BEGIN\|END\|ensure\|nil\|self\|when\|false\|not\|super\|while\|alias\|defined\|for\|or\|then\|yield\|and\|do\|if\|redo\|true\|begin\|else\|in\|rescue\|undef\|break\|elseif\|module\|retry\|unless\|case\|end\|next\|return\|until\)\b</regex>
         <class>keyword</class>
      </pattern-item>
      <pattern-item>
         <name>keywords2</name>
         <regex>\b\(Array\|Float\|Integer\|String\|at_exit\|autoload\|binding\|caller\|catch\|chop\|chop!\|chomp\|chomp!\|eval\|exec\|exit\|exit!\|fail\|fork\|format\|gets\|global_variables\|gsub\|gsub!\|iterator?\|lambda\|load\|local_variables\|loop\|open\|p\|print\|printf\|proc\|putc\|puts\|raise\|rand\|readline\|select\|sleep\|split\|sprintf\|srand\|sub\|sub!\|syscall\|system\|test\|trace_var\|trap\|untrace_var\)\b</regex>
         <class>keyword</class>
      </pattern-item>
      <pattern-item>
         <name>glob_cons</name>
         <regex>\b\(TRUE\|FALSE\|NIL\|STDIN\|STDOUT\|STDERR\|ENV\|ARGV\|ARGF\|DATA\|VERSION\|RUBY_RELEASE_DATE\|RUBY_PLATFORM\)\b</regex>
         <class>data_type</class>
      </pattern-item>
      <pattern-item>
         <name>operators</name>
         <regex>\(::\|/\|\*\|&lt;&lt;\|&gt;&gt;\|&lt;\|&gt;\|=\|==\|!=\|&lt;=\|&gt;=\|%\|+\|-\||\|&amp;\|\*\*\|!\|~\|===\|!~\|=~\|&amp;&amp;\|&lt;=&gt;\)</regex>
         <class>operator</class>
      </pattern-item>
      <pattern-item>
         <name>whole_numbers1</name>
         <regex>\b[0-9]\b</regex>
         <class>decimal</class>
      </pattern-item>
      <pattern-item>
         <name>whole_numbers2</name>
         <regex>\b[1-9][0-9]*\b</regex>
         <class>decimal</class>
      </pattern-item>
      <pattern-item>
         <name>whole_numbers3</name>
         <regex>\b[1-9]_[0-9]*\b</regex>
         <class>decimal</class>
      </pattern-item>
      <pattern-item>
         <name>float_numbers1</name>
         <regex>\.\b[0-9]+\b</regex>
         <class>decimal</class>
      </pattern-item>
      <pattern-item>
         <name>float_numbers2</name>
         <regex>\b[0-9]*\.\W</regex>
         <class>decimal</class>
      </pattern-item>
      <pattern-item>
         <name>float_numbers3</name>
         <regex>\.\b[0-9]*e[1-9]*\b</regex>
         <class>decimal</class>
      </pattern-item>
      <pattern-item>
         <name>hex_numbers</name>
         <regex>\b0x[0-9a-fA-F]+\b</regex>
         <class>hexidecimal</class>
      </pattern-item>
      <pattern-item>
         <name>oct_numbers</name>
         <regex>\b0[0-7]+\b</regex>
         <class>octal</class>
      </pattern-item>
      <pattern-item>
         <name>bin_numbers</name>
         <regex>\b0b[01]+\b</regex>
         <class>octal</class>
      </pattern-item>
      <pattern-item>
         <name>punctuation</name>
         <regex>\((\|)\|{\|}\|[\|\]\|\.\)</regex>
         <class>punctuation</class>
      </pattern-item>
   </pattern-items>
</glimmer-definition>
