medit/moo/mooedit/syntax/c.lang

198 lines
9.0 KiB
XML

<?xml version="1.0" encoding="UTF-8"?><!-- kate: space-indent on; indent-width 2; strip on; -->
<!DOCTYPE language SYSTEM "language.dtd"
[
<!ENTITY func_pattern "\b[_\w][_\w\d]*(?=[\s]*[(])">
]>
<language name="C" version="1.22" kateversion="2.4" section="Sources"
extensions="*.c;*.C;*.h" mimetypes="text/x-csrc;text/x-c++src;text/x-chdr"
priority="5">
<syntax>
<keyword-list name="keywords">
<keyword>break</keyword>
<keyword>case</keyword>
<keyword>continue</keyword>
<keyword>default</keyword>
<keyword>do</keyword>
<keyword>else</keyword>
<keyword>enum</keyword>
<keyword>extern</keyword>
<keyword>for</keyword>
<keyword>goto</keyword>
<keyword>if</keyword>
<keyword>inline</keyword>
<keyword>return</keyword>
<keyword>sizeof</keyword>
<keyword>struct</keyword>
<keyword>switch</keyword>
<keyword>typedef</keyword>
<keyword>union</keyword>
<keyword>while</keyword>
</keyword-list>
<keyword-list name="types">
<keyword>auto</keyword>
<keyword>char</keyword>
<keyword>const</keyword>
<keyword>double</keyword>
<keyword>float</keyword>
<keyword>int</keyword>
<keyword>long</keyword>
<keyword>register</keyword>
<keyword>restrict</keyword>
<keyword>short</keyword>
<keyword>signed</keyword>
<keyword>static</keyword>
<keyword>unsigned</keyword>
<keyword>void</keyword>
<keyword>volatile</keyword>
<keyword>_Imaginary</keyword>
<keyword>_Complex</keyword>
<keyword>_Bool</keyword>
</keyword-list>
<keyword-list name="glib-types">
<keyword>gboolean</keyword>
<keyword>gpointer</keyword>
<keyword>gconstpointer</keyword>
<keyword>gchar</keyword>
<keyword>gunichar</keyword>
<keyword>guchar</keyword>
<keyword>gint</keyword>
<keyword>guint</keyword>
<keyword>gshort</keyword>
<keyword>gushort</keyword>
<keyword>glong</keyword>
<keyword>gulong</keyword>
<keyword>gint8</keyword>
<keyword>guint8</keyword>
<keyword>gint16</keyword>
<keyword>guint16</keyword>
<keyword>gint32</keyword>
<keyword>guint32</keyword>
<keyword>gint64</keyword>
<keyword>guint64</keyword>
<keyword>gfloat</keyword>
<keyword>gdouble</keyword>
<keyword>gsize</keyword>
<keyword>gssize</keyword>
<keyword>GType</keyword>
</keyword-list>
<keyword-list name="CommonMacro">
<keyword>NULL</keyword>
<keyword>TRUE</keyword>
<keyword>FALSE</keyword>
<keyword>MAX</keyword>
<keyword>MIN</keyword>
<keyword>__LINE__</keyword>
<keyword>__DATA__</keyword>
<keyword>__FILE__</keyword>
<keyword>__func__</keyword>
<keyword>__TIME__</keyword>
<keyword>__STDC__</keyword>
</keyword-list>
<context style="Normal Text" eol-context="#stay" name="Normal">
<Whitespace/>
<Regex style="Preprocessor" context="Outscoped" pattern="#\s*if\s+0" beginRegion="Outscoped" first-non-blank-only="true"/>
<Char style="Preprocessor" context="Preprocessor" char="#" first-non-blank-only="true"/>
<String style="Region Marker" context="Region Marker" string="//BEGIN" beginRegion="Region1" first-non-blank-only="true"/>
<String style="Region Marker" context="Region Marker" string="//END" endRegion="Region1" first-non-blank-only="true"/>
<Keyword style="Keyword" context="#stay" keyword="keywords"/>
<Keyword style="Data Type" context="#stay" keyword="types"/>
<Keyword keyword="CommonMacro" style="Common Macro" context="#stay"/>
<Regex pattern="&func_pattern;" style="Function"/>
<Identifier/>
<Char style="Symbol" context="#stay" char="{" beginRegion="Brace1"/>
<Char style="Symbol" context="#stay" char="}" endRegion="Brace1"/>
<Float style="Float" context="#stay">
<AnyChar chars="fF" style="Float" context="#stay"/>
</Float>
<Octal style="Octal" context="#stay"/>
<Hex style="Hex" context="#stay"/>
<Int style="Decimal" context="#stay" >
<String style="Decimal" context="#stay" string="ULL" caseless="TRUE"/>
<String style="Decimal" context="#stay" string="LUL" caseless="TRUE"/>
<String style="Decimal" context="#stay" string="LLU" caseless="TRUE"/>
<String style="Decimal" context="#stay" string="UL" caseless="TRUE"/>
<String style="Decimal" context="#stay" string="LU" caseless="TRUE"/>
<String style="Decimal" context="#stay" string="LL" caseless="TRUE"/>
<String style="Decimal" context="#stay" string="U" caseless="TRUE"/>
<String style="Decimal" context="#stay" string="L" caseless="TRUE"/>
</Int>
<CChar style="Char" context="#stay"/>
<Char style="String" context="String" char="&quot;"/>
<!-- <IncludeRules from="##Doxygen"/> -->
<TwoChars style="Comment" context="Commentar 1" char1="/" char2="/"/>
<TwoChars style="Comment" context="Commentar 2" char1="/" char2="*" beginRegion="Comment"/>
<AnyChar style="Symbol" context="#stay" chars=":!%&amp;()+,-/.*&lt;=&gt;?[]|~^&#59;"/>
</context>
<context style="String" eol-context="#pop" name="String">
<LineContinue style="String" context="#stay"/>
<EscapedChar style="String Char" context="#stay"/>
<Char style="String" context="#pop" char="&quot;"/>
</context>
<context style="Region Marker" eol-context="#pop" name="Region Marker">
</context>
<context style="Comment" eol-context="#pop" name="Commentar 1">
<IncludeRules from="##Misc##CommonCommentRules"/>
</context>
<context style="Comment" eol-context="#stay" name="Commentar 2">
<TwoChars style="Comment" context="#pop" char1="*" char2="/" endRegion="Comment"/>
<IncludeRules from="##Misc##CommonCommentRules"/>
</context>
<context style="Preprocessor" eol-context="#pop" name="Preprocessor">
<LineContinue style="Preprocessor" context="#stay"/>
<Regex style="Preprocessor" context="Define" pattern="define.*((?=\\))"/>
<Regex style="Preprocessor" context="#stay" pattern="define.*"/>
<!-- <RangeDetect style="Prep. Lib" context="#stay" char="&quot;" char1="&quot;"/> -->
<!-- <RangeDetect style="Prep. Lib" context="#stay" char="&lt;" char1="&gt;"/> -->
<!-- <IncludeRules from="##Doxygen"/> -->
<TwoChars style="Comment" context="Commentar/Preprocessor" char1="/" char2="*" beginRegion="Comment2"/>
</context>
<context style="Preprocessor" eol-context="#pop" name="Define">
<LineContinue style="Preprocessor" context="#stay"/>
</context>
<context style="Comment" eol-context="#stay" name="Commentar/Preprocessor">
<TwoChars style="Comment" context="#pop" char1="*" char2="/" endRegion="Comment2"/>
</context>
<context style="Comment" eol-context="#stay" name="Outscoped" >
<TwoChars style="Comment" context="Commentar 2" char1="/" char2="*" beginRegion="Comment"/>
<IncludeRules from="##Misc##CommonCommentRules"/>
<Regex style="Comment" context="Outscoped intern" pattern="#\s*if" beginRegion="Outscoped" first-non-blank-only="true"/>
<Regex style="Preprocessor" context="#pop" pattern="#\s*(endif|else|elif)" endRegion="Outscoped" first-non-blank-only="true"/>
</context>
<context style="Comment" eol-context="#stay" name="Outscoped intern">
<TwoChars style="Comment" context="Commentar 2" char1="/" char2="*" beginRegion="Comment"/>
<Regex style="Comment" context="Outscoped intern" pattern="#\s*if" beginRegion="Outscoped" first-non-blank-only="true"/>
<Regex style="Comment" context="#pop" pattern="#\s*endif" endRegion="Outscoped" first-non-blank-only="true"/>
</context>
</syntax>
<styles>
<style name="Normal Text" default-style="Normal"/>
<style name="Keyword" default-style="Keyword"/>
<style name="Data Type" default-style="DataType"/>
<style name="Decimal" default-style="Decimal"/>
<style name="Octal" default-style="BaseN"/>
<style name="Hex" default-style="BaseN"/>
<style name="Float" default-style="Float"/>
<style name="Char" default-style="Char"/>
<style name="String" default-style="String"/>
<style name="String Char" default-style="Char"/>
<style name="Comment" default-style="Comment"/>
<style name="Symbol" default-style="Normal"/>
<style name="Preprocessor" default-style="Others"/>
<style name="Prep. Lib" default-style="Others"/> <!--,Qt::darkYellow,Qt::yellow,false,false)); -->
<style name="Region Marker" default-style="RegionMarker"/>
<style name="Common Macro" default-style="Keyword" foreground="#0095ff" bold="1" italic="0"/>
<style name="Function" default-style="Function"/>
</styles>
<general>
<brackets>(){}[]</brackets>
<comments>
<single-line start="//"/>
<multi-line start="/*" end="*/"/>
</comments>
</general>
</language>