/jEdit/tags/jedit-4-3-pre15/modes/idl.xml

# · XML · 158 lines · 113 code · 18 blank · 27 comment · 0 complexity · 4e4f4f45032495ac511eec2df7d75455 MD5 · raw file

  1. <?xml version="1.0"?>
  2. <!DOCTYPE MODE SYSTEM "xmode.dtd">
  3. <!-- IDL mode, by Slava Pestov
  4. based on Java mode by Mike Dillon and IDLTokenMarker by Juha Lindfors -->
  5. <MODE>
  6. <PROPS>
  7. <PROPERTY NAME="indentOpenBrackets" VALUE="{" />
  8. <PROPERTY NAME="indentCloseBrackets" VALUE="}" />
  9. <PROPERTY NAME="commentStart" VALUE="/*" />
  10. <PROPERTY NAME="commentEnd" VALUE="*/" />
  11. <PROPERTY NAME="boxComment" VALUE="*" />
  12. <PROPERTY NAME="lineComment" VALUE="//" />
  13. </PROPS>
  14. <RULES IGNORE_CASE="FALSE">
  15. <EOL_SPAN TYPE="KEYWORD2"
  16. AT_WHITESPACE_END="TRUE"
  17. DELEGATE="PREPROCESSOR">#</EOL_SPAN>
  18. <IMPORT DELEGATE="LEX" />
  19. </RULES>
  20. <RULES SET="LEX" IGNORE_CASE="FALSE">
  21. <IMPORT DELEGATE="c::COMMENTS" />
  22. <SPAN TYPE="LITERAL1" ESCAPE="\" NO_LINE_BREAK="TRUE">
  23. <BEGIN>"</BEGIN>
  24. <END>"</END>
  25. </SPAN>
  26. <SPAN TYPE="LITERAL1" ESCAPE="\" NO_LINE_BREAK="TRUE">
  27. <BEGIN>'</BEGIN>
  28. <END>'</END>
  29. </SPAN>
  30. <EOL_SPAN TYPE="COMMENT2">//</EOL_SPAN>
  31. <!-- some of these should be marked OPERATOR -->
  32. <!--
  33. <SEQ TYPE="NULL">!</SEQ>
  34. <SEQ TYPE="NULL">&gt;=</SEQ>
  35. <SEQ TYPE="NULL">&lt;=</SEQ>
  36. <SEQ TYPE="NULL">+</SEQ>
  37. <SEQ TYPE="NULL">-</SEQ>
  38. <SEQ TYPE="NULL">/</SEQ>
  39. <SEQ TYPE="NULL">*</SEQ>
  40. <SEQ TYPE="NULL">%</SEQ>
  41. <SEQ TYPE="NULL">&amp;</SEQ>
  42. <SEQ TYPE="NULL">|</SEQ>
  43. <SEQ TYPE="NULL">^</SEQ>
  44. <SEQ TYPE="NULL">~</SEQ>
  45. <SEQ TYPE="NULL">.</SEQ>
  46. <SEQ TYPE="NULL">,</SEQ>
  47. <SEQ TYPE="NULL">;</SEQ>
  48. <SEQ TYPE="NULL">]</SEQ>
  49. <SEQ TYPE="NULL">[</SEQ>
  50. <SEQ TYPE="NULL">?</SEQ> -->
  51. <SEQ TYPE="OPERATOR">}</SEQ>
  52. <SEQ TYPE="OPERATOR">{</SEQ>
  53. <SEQ TYPE="OPERATOR">:</SEQ>
  54. <SEQ TYPE="OPERATOR">&gt;</SEQ>
  55. <SEQ TYPE="OPERATOR">&lt;</SEQ>
  56. <SEQ TYPE="OPERATOR">=</SEQ>
  57. <!-- Function calls -->
  58. <MARK_PREVIOUS TYPE="FUNCTION" MATCH_TYPE="OPERATOR">(</MARK_PREVIOUS>
  59. <SEQ TYPE="OPERATOR">)</SEQ>
  60. <KEYWORDS>
  61. <KEYWORD3>any</KEYWORD3>
  62. <KEYWORD1>attribute</KEYWORD1>
  63. <KEYWORD3>boolean</KEYWORD3>
  64. <KEYWORD1>case</KEYWORD1>
  65. <KEYWORD3>char</KEYWORD3>
  66. <KEYWORD1>const</KEYWORD1>
  67. <KEYWORD1>context</KEYWORD1>
  68. <KEYWORD1>default</KEYWORD1>
  69. <KEYWORD3>double</KEYWORD3>
  70. <KEYWORD3>enum</KEYWORD3>
  71. <KEYWORD1>exception</KEYWORD1>
  72. <LITERAL2>FALSE</LITERAL2>
  73. <KEYWORD1>fixed</KEYWORD1>
  74. <KEYWORD3>float</KEYWORD3>
  75. <KEYWORD1>in</KEYWORD1>
  76. <KEYWORD1>inout</KEYWORD1>
  77. <KEYWORD1>interface</KEYWORD1>
  78. <KEYWORD3>long</KEYWORD3>
  79. <KEYWORD1>module</KEYWORD1>
  80. <KEYWORD3>Object</KEYWORD3>
  81. <KEYWORD3>octet</KEYWORD3>
  82. <KEYWORD1>oneway</KEYWORD1>
  83. <KEYWORD1>out</KEYWORD1>
  84. <KEYWORD1>raises</KEYWORD1>
  85. <KEYWORD1>readonly</KEYWORD1>
  86. <KEYWORD3>sequence</KEYWORD3>
  87. <KEYWORD3>short</KEYWORD3>
  88. <KEYWORD3>string</KEYWORD3>
  89. <KEYWORD3>struct</KEYWORD3>
  90. <KEYWORD1>switch</KEYWORD1>
  91. <LITERAL2>TRUE</LITERAL2>
  92. <KEYWORD3>typedef</KEYWORD3>
  93. <KEYWORD3>unsigned</KEYWORD3>
  94. <KEYWORD3>union</KEYWORD3>
  95. <KEYWORD3>void</KEYWORD3>
  96. <KEYWORD3>wchar</KEYWORD3>
  97. <KEYWORD3>wstring</KEYWORD3>
  98. </KEYWORDS>
  99. </RULES>
  100. <!-- Preprocessor specific rules. This is borrowed from the C mode,
  101. since the IDL spec says the preprocessor is compatible with the
  102. C++ standard. -->
  103. <RULES SET="PREPROCESSOR"
  104. IGNORE_CASE="FALSE"
  105. HIGHLIGHT_DIGITS="TRUE" DIGIT_RE="[0-9][0-9a-zA-Z]*">
  106. <EOL_SPAN_REGEXP HASH_CHAR="include" TYPE="MARKUP" DELEGATE="INCLUDE">include\b</EOL_SPAN_REGEXP>
  107. <EOL_SPAN_REGEXP HASH_CHAR="define" TYPE="MARKUP" DELEGATE="DEFINE">define\b</EOL_SPAN_REGEXP>
  108. <EOL_SPAN_REGEXP HASH_CHAR="endif" TYPE="MARKUP" DELEGATE="LEX">endif\b</EOL_SPAN_REGEXP>
  109. <EOL_SPAN_REGEXP HASH_CHAR="elif" TYPE="MARKUP" DELEGATE="c::CONDITION">elif\b</EOL_SPAN_REGEXP>
  110. <EOL_SPAN_REGEXP HASH_CHAR="if" TYPE="MARKUP" DELEGATE="c::CONDITION">if\b</EOL_SPAN_REGEXP>
  111. <IMPORT DELEGATE="LEX"/>
  112. <!-- Directives -->
  113. <KEYWORDS>
  114. <MARKUP>ifdef</MARKUP>
  115. <MARKUP>ifndef</MARKUP>
  116. <MARKUP>else</MARKUP>
  117. <MARKUP>undef</MARKUP>
  118. <MARKUP>warning</MARKUP>
  119. </KEYWORDS>
  120. </RULES>
  121. <RULES SET="INCLUDE"
  122. IGNORE_CASE="FALSE"
  123. HIGHLIGHT_DIGITS="TRUE" DIGIT_RE="[0-9][0-9a-zA-Z]*">
  124. <SPAN TYPE="LITERAL1" NO_LINE_BREAK="TRUE">
  125. <BEGIN>&lt;</BEGIN>
  126. <END>&gt;</END>
  127. </SPAN>
  128. <SPAN TYPE="LITERAL1" NO_LINE_BREAK="TRUE">
  129. <BEGIN>"</BEGIN>
  130. <END>"</END>
  131. </SPAN>
  132. <IMPORT DELEGATE="LEX"/>
  133. </RULES>
  134. <RULES SET="DEFINE"
  135. IGNORE_CASE="FALSE"
  136. HIGHLIGHT_DIGITS="TRUE" DIGIT_RE="[0-9][0-9a-zA-Z]*">
  137. <SEQ TYPE="OPERATOR">#</SEQ>
  138. <IMPORT DELEGATE="LEX"/>
  139. </RULES>
  140. </MODE>