PageRenderTime 47ms CodeModel.GetById 21ms RepoModel.GetById 1ms app.codeStats 0ms

/jEdit/tags/jedit-4-3-pre5/modes/c.xml

#
XML | 185 lines | 181 code | 3 blank | 1 comment | 0 complexity | 84e92be33d2e11baa1a9c0ab1510922f MD5 | raw file
Possible License(s): BSD-3-Clause, AGPL-1.0, Apache-2.0, LGPL-2.0, LGPL-3.0, GPL-2.0, CC-BY-SA-3.0, LGPL-2.1, GPL-3.0, MPL-2.0-no-copyleft-exception, IPL-1.0
  1. <?xml version="1.0"?>
  2. <!DOCTYPE MODE SYSTEM "xmode.dtd">
  3. <MODE>
  4. <PROPS>
  5. <PROPERTY NAME="commentStart" VALUE="/*" />
  6. <PROPERTY NAME="commentEnd" VALUE="*/" />
  7. <PROPERTY NAME="lineComment" VALUE="//" />
  8. <PROPERTY NAME="wordBreakChars" VALUE=",+-=&lt;&gt;/?^&amp;*" />
  9. <!-- Auto indent -->
  10. <PROPERTY NAME="indentOpenBrackets" VALUE="{" />
  11. <PROPERTY NAME="indentCloseBrackets" VALUE="}" />
  12. <PROPERTY NAME="unalignedOpenBrackets" VALUE="(" />
  13. <PROPERTY NAME="unalignedCloseBrackets" VALUE=")" />
  14. <PROPERTY NAME="indentNextLine"
  15. VALUE="\s*(((if|while)\s*\(|else\s*|else\s+if\s*\(|for\s*\(.*\))[^{;]*)" />
  16. <PROPERTY NAME="unindentThisLine"
  17. VALUE="^.*(default:\s*|case.*:.*)$" />
  18. <PROPERTY NAME="electricKeys" VALUE=":" />
  19. </PROPS>
  20. <RULES ESCAPE="\"
  21. IGNORE_CASE="FALSE"
  22. HIGHLIGHT_DIGITS="TRUE"
  23. DIGIT_RE="(0x\p{XDigit}+[lL]?|\d+(e\d*)?[lLdDfF]?)">
  24. <!-- Silly comment -->
  25. <SEQ TYPE="COMMENT1">/**/</SEQ>
  26. <!-- Doxygen comment, Javadoc style -->
  27. <SPAN TYPE="COMMENT3" DELEGATE="doxygen::DOXYGEN">
  28. <BEGIN>/**</BEGIN>
  29. <END>*/</END>
  30. </SPAN>
  31. <!-- Doxygen comment, Qt style -->
  32. <SPAN TYPE="COMMENT3" DELEGATE="doxygen::DOXYGEN">
  33. <BEGIN>/*!</BEGIN>
  34. <END>*/</END>
  35. </SPAN>
  36. <!-- C style comment -->
  37. <SPAN TYPE="COMMENT1">
  38. <BEGIN>/*</BEGIN>
  39. <END>*/</END>
  40. </SPAN>
  41. <SPAN TYPE="LITERAL1" NO_LINE_BREAK="TRUE">
  42. <BEGIN>"</BEGIN>
  43. <END>"</END>
  44. </SPAN>
  45. <SPAN TYPE="LITERAL1" NO_LINE_BREAK="TRUE">
  46. <BEGIN>'</BEGIN>
  47. <END>'</END>
  48. </SPAN>
  49. <!-- preprocessor statements -->
  50. <SEQ TYPE="KEYWORD2">##</SEQ>
  51. <EOL_SPAN TYPE="KEYWORD2" DELEGATE="CPP">#</EOL_SPAN>
  52. <EOL_SPAN TYPE="COMMENT2">//</EOL_SPAN>
  53. <SEQ TYPE="OPERATOR">=</SEQ>
  54. <SEQ TYPE="OPERATOR">!</SEQ>
  55. <SEQ TYPE="OPERATOR">&gt;=</SEQ>
  56. <SEQ TYPE="OPERATOR">&lt;=</SEQ>
  57. <SEQ TYPE="OPERATOR">+</SEQ>
  58. <SEQ TYPE="OPERATOR">-</SEQ>
  59. <SEQ TYPE="OPERATOR">/</SEQ>
  60. <SEQ TYPE="OPERATOR">*</SEQ>
  61. <SEQ TYPE="OPERATOR">&gt;</SEQ>
  62. <SEQ TYPE="OPERATOR">&lt;</SEQ>
  63. <SEQ TYPE="OPERATOR">%</SEQ>
  64. <SEQ TYPE="OPERATOR">&amp;</SEQ>
  65. <SEQ TYPE="OPERATOR">|</SEQ>
  66. <SEQ TYPE="OPERATOR">^</SEQ>
  67. <SEQ TYPE="OPERATOR">~</SEQ>
  68. <SEQ TYPE="OPERATOR">}</SEQ>
  69. <SEQ TYPE="OPERATOR">{</SEQ>
  70. <MARK_PREVIOUS AT_WHITESPACE_END="TRUE"
  71. EXCLUDE_MATCH="TRUE"
  72. TYPE="LABEL">:</MARK_PREVIOUS>
  73. <!-- Function calls -->
  74. <MARK_PREVIOUS TYPE="FUNCTION" EXCLUDE_MATCH="TRUE">(</MARK_PREVIOUS>
  75. <KEYWORDS>
  76. <KEYWORD3>char</KEYWORD3>
  77. <KEYWORD3>double</KEYWORD3>
  78. <KEYWORD3>enum</KEYWORD3>
  79. <KEYWORD3>float</KEYWORD3>
  80. <KEYWORD3>int</KEYWORD3>
  81. <KEYWORD3>long</KEYWORD3>
  82. <KEYWORD3>short</KEYWORD3>
  83. <KEYWORD3>signed</KEYWORD3>
  84. <KEYWORD3>struct</KEYWORD3>
  85. <KEYWORD3>typedef</KEYWORD3>
  86. <KEYWORD3>union</KEYWORD3>
  87. <KEYWORD3>unsigned</KEYWORD3>
  88. <KEYWORD3>void</KEYWORD3>
  89. <KEYWORD1>auto</KEYWORD1>
  90. <KEYWORD1>const</KEYWORD1>
  91. <KEYWORD1>extern</KEYWORD1>
  92. <KEYWORD1>register</KEYWORD1>
  93. <KEYWORD1>static</KEYWORD1>
  94. <KEYWORD1>volatile</KEYWORD1>
  95. <KEYWORD1>break</KEYWORD1>
  96. <KEYWORD1>case</KEYWORD1>
  97. <KEYWORD1>continue</KEYWORD1>
  98. <KEYWORD1>default</KEYWORD1>
  99. <KEYWORD1>do</KEYWORD1>
  100. <KEYWORD1>else</KEYWORD1>
  101. <KEYWORD1>for</KEYWORD1>
  102. <KEYWORD1>goto</KEYWORD1>
  103. <KEYWORD1>if</KEYWORD1>
  104. <KEYWORD1>return</KEYWORD1>
  105. <KEYWORD1>sizeof</KEYWORD1>
  106. <KEYWORD1>switch</KEYWORD1>
  107. <KEYWORD1>while</KEYWORD1>
  108. <KEYWORD2>asm</KEYWORD2>
  109. <KEYWORD2>asmlinkage</KEYWORD2>
  110. <KEYWORD2>far</KEYWORD2>
  111. <KEYWORD2>huge</KEYWORD2>
  112. <KEYWORD2>inline</KEYWORD2>
  113. <KEYWORD2>near</KEYWORD2>
  114. <KEYWORD2>pascal</KEYWORD2>
  115. <LITERAL2>true</LITERAL2>
  116. <LITERAL2>false</LITERAL2>
  117. <LITERAL2>NULL</LITERAL2>
  118. </KEYWORDS>
  119. </RULES>
  120. <RULES SET="CPP" DEFAULT="KEYWORD2" IGNORE_CASE="FALSE"
  121. HIGHLIGHT_DIGITS="TRUE"
  122. DIGIT_RE="(0x\p{XDigit}+[lL]?|\d+(e\d*)?[lLdDfF]?)">
  123. <!-- Doxygen comment, Javadoc style -->
  124. <SPAN TYPE="COMMENT3" DELEGATE="doxygen::DOXYGEN">
  125. <BEGIN>/**</BEGIN>
  126. <END>*/</END>
  127. </SPAN>
  128. <!-- Doxygen comment, Qt style -->
  129. <SPAN TYPE="COMMENT3" DELEGATE="doxygen::DOXYGEN">
  130. <BEGIN>/*!</BEGIN>
  131. <END>*/</END>
  132. </SPAN>
  133. <!-- C style comment -->
  134. <SPAN TYPE="COMMENT1">
  135. <BEGIN>/*</BEGIN>
  136. <END>*/</END>
  137. </SPAN>
  138. <!-- this is a hack so that #include <net/if.h> does not get
  139. the if highlighted -->
  140. <EOL_SPAN TYPE="MARKUP" DELEGATE="INCLUDE">include</EOL_SPAN>
  141. <!-- Directives -->
  142. <KEYWORDS>
  143. <MARKUP>assert</MARKUP>
  144. <MARKUP>define</MARKUP>
  145. <MARKUP>assert</MARKUP>
  146. <MARKUP>define</MARKUP>
  147. <MARKUP>elif</MARKUP>
  148. <MARKUP>else</MARKUP>
  149. <MARKUP>endif</MARKUP>
  150. <MARKUP>error</MARKUP>
  151. <MARKUP>ident</MARKUP>
  152. <MARKUP>if</MARKUP>
  153. <MARKUP>ifdef</MARKUP>
  154. <MARKUP>ifndef</MARKUP>
  155. <MARKUP>import</MARKUP>
  156. <MARKUP>include</MARKUP>
  157. <MARKUP>include_next</MARKUP>
  158. <MARKUP>line</MARKUP>
  159. <MARKUP>pragma</MARKUP>
  160. <MARKUP>sccs</MARKUP>
  161. <MARKUP>unassert</MARKUP>
  162. <MARKUP>undef</MARKUP>
  163. <MARKUP>warning</MARKUP>
  164. </KEYWORDS>
  165. </RULES>
  166. <RULES SET="INCLUDE" DEFAULT="KEYWORD2" />
  167. </MODE>