|
jEdit example source code file (c.xml)
The jEdit c.xml source code<?xml version="1.0"?> <!DOCTYPE MODE SYSTEM "xmode.dtd"> <!-- This is based on ISO C++ Standard, 2003 and ISO C Standard, 1999. The C++ keywords have been removed from this mode file, though. --> <MODE> <PROPS> <PROPERTY NAME="commentStart" VALUE="/*" /> <PROPERTY NAME="commentEnd" VALUE="*/" /> <PROPERTY NAME="lineComment" VALUE="//" /> <PROPERTY NAME="wordBreakChars" VALUE=",+-=<>/?^&*" /> <!-- Auto indent --> <PROPERTY NAME="indentOpenBrackets" VALUE="{" /> <PROPERTY NAME="indentCloseBrackets" VALUE="}" /> <PROPERTY NAME="unalignedOpenBrackets" VALUE="(" /> <PROPERTY NAME="unalignedCloseBrackets" VALUE=")" /> <PROPERTY NAME="indentNextLine" VALUE="(?!^\s*(#|//)).*(\b(if|while|for)\s*\(.*\)|\b(else|do)\b)[^{;]*$" /> <PROPERTY NAME="unindentThisLine" VALUE="^\s*((case\b.*|[\p{Alpha}_][\p{Alnum}_]*)\s*:(?!:)).*$" /> <PROPERTY NAME="electricKeys" VALUE=":" /> </PROPS> <RULES IGNORE_CASE="FALSE" HIGHLIGHT_DIGITS="TRUE" DIGIT_RE="[0-9][0-9a-zA-Z]*"> <EOL_SPAN TYPE="KEYWORD2" AT_WHITESPACE_END="TRUE" DELEGATE="CPP"># <IMPORT DELEGATE="LEX"/> <IMPORT DELEGATE="CORE"/> </RULES> <RULES SET="LEX" IGNORE_CASE="FALSE"> <IMPORT DELEGATE="COMMENTS" /> <IMPORT DELEGATE="C_LEXER" /> </RULES> <!-- Comments, Trigraph, Alternate-Tokens --> <RULES SET="C_LEXER" IGNORE_CASE="FALSE" HIGHLIGHT_DIGITS="TRUE" DIGIT_RE="[0-9][0-9a-zA-Z]*"> <SPAN TYPE="LITERAL1" NO_LINE_BREAK="TRUE" ESCAPE="\"> <BEGIN>L" <END>" </SPAN> <SPAN TYPE="LITERAL1" NO_LINE_BREAK="TRUE" ESCAPE="\"> <BEGIN>" <END>" </SPAN> <SPAN TYPE="LITERAL1" NO_LINE_BREAK="TRUE" ESCAPE="\"> <BEGIN>L' <END>' </SPAN> <SPAN TYPE="LITERAL1" NO_LINE_BREAK="TRUE" ESCAPE="\"> <BEGIN>' <END>' </SPAN> <!-- Trigraphs --> <SEQ TYPE="LITERAL4">??( <SEQ TYPE="LITERAL4">??/ <SEQ TYPE="LITERAL4">??) <SEQ TYPE="LITERAL4">??' <SEQ TYPE="LITERAL4">??< <SEQ TYPE="LITERAL4">??! <SEQ TYPE="LITERAL4">??> <SEQ TYPE="LITERAL4">??- <SEQ TYPE="LITERAL4">??= <!-- Alternate tokens --> <SEQ TYPE="LITERAL4"><: <SEQ TYPE="LITERAL4">:> <SEQ TYPE="LITERAL4"><% <SEQ TYPE="LITERAL4">%> <SEQ TYPE="LITERAL4">%: <!-- Labels. This is a part of core language syntax, but must be here because it can't work after SEQ for ':'. --> <MARK_PREVIOUS AT_WHITESPACE_END="TRUE" MATCH_TYPE="OPERATOR" TYPE="LABEL">:</MARK_PREVIOUS> <!-- Function-like macro or function calls. This can't work after SEQ for '('. --> <MARK_PREVIOUS TYPE="FUNCTION" MATCH_TYPE="OPERATOR">(</MARK_PREVIOUS> <SEQ TYPE="OPERATOR">= <SEQ TYPE="OPERATOR">! <SEQ TYPE="OPERATOR">+ <SEQ TYPE="OPERATOR">- <SEQ TYPE="OPERATOR">/ <SEQ TYPE="OPERATOR">* <SEQ TYPE="OPERATOR">> <SEQ TYPE="OPERATOR">< <SEQ TYPE="OPERATOR">% <SEQ TYPE="OPERATOR">& <SEQ TYPE="OPERATOR">| <SEQ TYPE="OPERATOR">^ <SEQ TYPE="OPERATOR">~ <SEQ TYPE="OPERATOR">? <SEQ TYPE="OPERATOR">: <SEQ TYPE="OPERATOR">. <SEQ TYPE="OPERATOR">, <SEQ TYPE="OPERATOR">[ <SEQ TYPE="OPERATOR">] <SEQ TYPE="OPERATOR">) <SEQ TYPE="OPERATOR">} <SEQ TYPE="OPERATOR">{ <SEQ TYPE="OPERATOR">; <KEYWORDS> <!-- Predefined macro names from ISO C++ Standard 2003 --> <LITERAL2>__DATE__ <LITERAL2>__FILE__ <LITERAL2>__LINE__ <LITERAL2>__STDC_HOSTED__ <LITERAL2>__STDC_ISO_10646__ <LITERAL2>__STDC_VERSION__ <LITERAL2>__STDC__ <LITERAL2>__TIME__ <LITERAL2>__cplusplus <!-- Standard library macro names from ISO C++ Standard 2003 --> <!-- Hilight these to indicate accidental use of them in user source. They may be valid, but should cause future conflicts. --> <LITERAL2>BUFSIZ <LITERAL2>CLOCKS_PER_SEC <LITERAL2>EDOM <LITERAL2>EILSEQ <LITERAL2>EOF <LITERAL2>ERANGE <LITERAL2>EXIT_FAILURE <LITERAL2>EXIT_SUCCESS <LITERAL2>FILENAME_MAX <LITERAL2>FOPEN_MAX <LITERAL2>HUGE_VAL <LITERAL2>LC_ALL <LITERAL2>LC_COLLATE <LITERAL2>LC_CTYPE <LITERAL2>LC_MONETARY <LITERAL2>LC_NUMERIC <LITERAL2>LC_TIME <LITERAL2>L_tmpnam <LITERAL2>MB_CUR_MAX <LITERAL2>NULL <LITERAL2>RAND_MAX <LITERAL2>SEEK_CUR <LITERAL2>SEEK_END <LITERAL2>SEEK_SET <LITERAL2>SIGABRT <LITERAL2>SIGFPE <LITERAL2>SIGILL <LITERAL2>SIGINT <LITERAL2>SIGSEGV <LITERAL2>SIGTERM <LITERAL2>SIG_DFL <LITERAL2>SIG_ERR <LITERAL2>SIG_IGN <LITERAL2>TMP_MAX <LITERAL2>WCHAR_MAX <LITERAL2>WCHAR_MIN <LITERAL2>WEOF <LITERAL2>_IOFBF <LITERAL2>_IOLBF <LITERAL2>_IONBF <LITERAL2>assert <LITERAL2>errno <LITERAL2>offsetof <LITERAL2>setjmp <LITERAL2>stderr <LITERAL2>stdin <LITERAL2>stdout <LITERAL2>va_arg <LITERAL2>va_end <LITERAL2>va_start <!-- Standard C library values from ISO C++ Standard 2003 --> <!-- These are not explicitly defined as macro. But they like to be due to compatibility with C library implementation. So, treat them like standard library macro names. --> <LITERAL2>CHAR_BIT <LITERAL2>CHAR_MAX <LITERAL2>CHAR_MIN <LITERAL2>DBL_DIG <LITERAL2>DBL_EPSILON <LITERAL2>DBL_MANT_DIG <LITERAL2>DBL_MAX <LITERAL2>DBL_MAX_10_EXP <LITERAL2>DBL_MAX_EXP <LITERAL2>DBL_MIN <LITERAL2>DBL_MIN_10_EXP <LITERAL2>DBL_MIN_EXP <LITERAL2>FLT_DIG <LITERAL2>FLT_EPSILON <LITERAL2>FLT_MANT_DIG <LITERAL2>FLT_MAX <LITERAL2>FLT_MAX_10_EXP <LITERAL2>FLT_MAX_EXP <LITERAL2>FLT_MIN <LITERAL2>FLT_MIN_10_EXP <LITERAL2>FLT_MIN_EXP <LITERAL2>FLT_RADIX <LITERAL2>FLT_ROUNDS <LITERAL2>INT_MAX <LITERAL2>INT_MIN <LITERAL2>LDBL_DIG <LITERAL2>LDBL_EPSILON <LITERAL2>LDBL_MANT_DIG <LITERAL2>LDBL_MAX <LITERAL2>LDBL_MAX_10_EXP <LITERAL2>LDBL_MAX_EXP <LITERAL2>LDBL_MIN <LITERAL2>LDBL_MIN_10_EXP <LITERAL2>LDBL_MIN_EXP <LITERAL2>LONG_MAX <LITERAL2>LONG_MIN <LITERAL2>MB_LEN_MAX <LITERAL2>SCHAR_MAX <LITERAL2>SCHAR_MIN <LITERAL2>SHRT_MAX <LITERAL2>SHRT_MIN <LITERAL2>UCHAR_MAX <LITERAL2>UINT_MAX <LITERAL2>ULONG_MAX <LITERAL2>USRT_MAX <!-- Alternative representations of some operators from ISO C++ Standard 2003 --> <!-- These are separated from CORE because they are available in the constant expressions after #if and #elif preprocessor directives. --> <KEYWORD3>and <KEYWORD3>and_eq <KEYWORD3>bitand <KEYWORD3>bitor <KEYWORD3>compl <KEYWORD3>not <KEYWORD3>not_eq <KEYWORD3>or <KEYWORD3>or_eq <KEYWORD3>xor <KEYWORD3>xor_eq </KEYWORDS> </RULES> <!-- Core language --> <RULES SET="CORE" IGNORE_CASE="FALSE" HIGHLIGHT_DIGITS="TRUE" DIGIT_RE="[0-9][0-9a-zA-Z]*"> <KEYWORDS> <!-- Types --> <KEYWORD3>bool <KEYWORD3>char <KEYWORD3>double <KEYWORD3>enum <KEYWORD3>float <KEYWORD3>int <KEYWORD3>long <KEYWORD3>short <KEYWORD3>signed <KEYWORD3>struct <KEYWORD3>union <KEYWORD3>unsigned <!-- Keywords from ISO C++ Standard 2003 --> <KEYWORD2>asm <KEYWORD1>auto <KEYWORD1>break <KEYWORD1>case <KEYWORD1>const <KEYWORD1>continue <KEYWORD1>default <KEYWORD1>do <KEYWORD1>else <KEYWORD2>extern <LITERAL2>false <KEYWORD1>for <KEYWORD1>goto <KEYWORD1>if <KEYWORD1>inline <KEYWORD1>register <KEYWORD1>return <KEYWORD1>sizeof <KEYWORD1>static <KEYWORD1>switch <LITERAL2>true <KEYWORD3>typedef <KEYWORD1>void <KEYWORD1>volatile <KEYWORD1>while <!-- Additional keywords from ISO C Standard(C99) --> <KEYWORD3>restrict <KEYWORD3>_Bool <KEYWORD3>_Complex <KEYWORD3>_Pragma <KEYWORD3>_Imaginary </KEYWORDS> </RULES> <!-- Different comment styles. --> <RULES SET="COMMENTS"> <!-- Doxygen comment, Javadoc style --> <SEQ TYPE="COMMENT1">/**/ <SPAN TYPE="COMMENT3" DELEGATE="doxygen::DOXYGEN"> <BEGIN>/**< <END>*/ </SPAN> <SPAN TYPE="COMMENT3" DELEGATE="doxygen::DOXYGEN"> <BEGIN>/** <END>*/ </SPAN> <EOL_SPAN TYPE="COMMENT3" DELEGATE="doxygen::DOXYGEN">///< <EOL_SPAN TYPE="COMMENT3" DELEGATE="doxygen::DOXYGEN">/// <!-- Doxygen comment, Qt style --> <SPAN TYPE="COMMENT3" DELEGATE="doxygen::DOXYGEN"> <BEGIN>/*!< <END>*/ </SPAN> <SPAN TYPE="COMMENT3" DELEGATE="doxygen::DOXYGEN"> <BEGIN>/*! <END>*/ </SPAN> <EOL_SPAN TYPE="COMMENT3" DELEGATE="doxygen::DOXYGEN">//!< <EOL_SPAN TYPE="COMMENT3" DELEGATE="doxygen::DOXYGEN">//! <!-- C style comment --> <SPAN TYPE="COMMENT1"> <BEGIN>/* <END>*/ </SPAN> <EOL_SPAN TYPE="COMMENT1">// </RULES> <!-- Preprocessor specific rules --> <RULES SET="CPP" IGNORE_CASE="FALSE" HIGHLIGHT_DIGITS="TRUE" DIGIT_RE="[0-9][0-9a-zA-Z]*"> <EOL_SPAN_REGEXP HASH_CHAR="include" TYPE="MARKUP" DELEGATE="INCLUDE">include\b <EOL_SPAN_REGEXP HASH_CHAR="define" TYPE="MARKUP" DELEGATE="DEFINE">define\b <EOL_SPAN_REGEXP HASH_CHAR="endif" TYPE="MARKUP" DELEGATE="LEX">endif\b <EOL_SPAN_REGEXP HASH_CHAR="elif" TYPE="MARKUP" DELEGATE="CONDITION">elif\b <EOL_SPAN_REGEXP HASH_CHAR="if" TYPE="MARKUP" DELEGATE="CONDITION">if\b <IMPORT DELEGATE="LEX"/> <!-- Directives --> <KEYWORDS> <MARKUP>ifdef <MARKUP>ifndef <MARKUP>else <MARKUP>error <MARKUP>line <MARKUP>pragma <MARKUP>undef <MARKUP>warning </KEYWORDS> </RULES> <!-- After #include directive --> <!-- "\"s are not escaped. --> <RULES SET="INCLUDE" IGNORE_CASE="FALSE" HIGHLIGHT_DIGITS="TRUE" DIGIT_RE="[0-9][0-9a-zA-Z]*"> <SPAN TYPE="LITERAL1" NO_LINE_BREAK="TRUE"> <BEGIN>< <END>> </SPAN> <SPAN TYPE="LITERAL1" NO_LINE_BREAK="TRUE"> <BEGIN>" <END>" </SPAN> <IMPORT DELEGATE="LEX"/> </RULES> <!-- After #define directive --> <!-- Almost same as the normal code, except two additional operators # and ##. --> <RULES SET="DEFINE" IGNORE_CASE="FALSE" HIGHLIGHT_DIGITS="TRUE" DIGIT_RE="[0-9][0-9a-zA-Z]*"> <SEQ TYPE="OPERATOR"># <IMPORT DELEGATE="LEX"/> <IMPORT DELEGATE="CORE"/> </RULES> <!-- After #if or #elif directive --> <!-- All constant expressions and a special operator 'defined' is available. But the core language elements (such as operator 'sizeof', type casting, etc...) are not. --> <RULES SET="CONDITION" IGNORE_CASE="FALSE" HIGHLIGHT_DIGITS="TRUE" DIGIT_RE="[0-9][0-9a-zA-Z]*"> <IMPORT DELEGATE="LEX"/> <KEYWORDS> <KEYWORD2>defined <!-- Both true and false are specially permitted by ISO C++ Standard 2003 16.1p4 --> <KEYWORD2>true <KEYWORD2>false </KEYWORDS> </RULES> </MODE> Other jEdit examples (source code examples)Here is a short list of links related to this jEdit c.xml source code file: |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.