products/sources/formale sprachen/Isabelle/Tools/jEdit/dist/modes image not shown  

Quellcode-Bibliothek

© Kompilation durch diese Firma

[Weder Korrektheit noch Funktionsfähigkeit der Software werden zugesichert.]

Datei: cplusplus.xml   Sprache: XML

Original von: Isabelle©

<?xml version="1.0"?>

<!DOCTYPE MODE SYSTEM "xmode.dtd">

<!-- Extension of c.xml to add C++ specific syntax. -->
<!-- With some Qt keywords added -->
<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*(slots)?:(?!:)).*$" />
        <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">#</EOL_SPAN>

        <IMPORT DELEGATE="LEX"/>
        <IMPORT DELEGATE="CORE"/>
    </RULES>

    <!-- Core C++ language -->
    <RULES SET="LEX"
        IGNORE_CASE="FALSE"
        HIGHLIGHT_DIGITS="TRUE" DIGIT_RE="[0-9][0-9a-zA-Z]*">

        <!-- A hack not to mark namespace qualification like "std::"
            as labels. -->

        <SEQ TYPE="OPERATOR">::</SEQ>

        <IMPORT DELEGATE="c::COMMENTS" /> <!-- import from C mode -->

        <IMPORT DELEGATE="LEXER" />
        <IMPORT DELEGATE="c::C_LEXER" /> <!-- import from C mode -->
    </RULES>

    <RULES SET="LEXER"
        IGNORE_CASE="FALSE">

        <!-- String/char literals -->
        <SPAN_REGEXP TYPE="LITERAL1" NO_LINE_BREAK="TRUE" ESCAPE="\">
            <BEGIN>(?:u8|u|U)("|')
            <END>$1</END>
        </SPAN_REGEXP>
        <SPAN_REGEXP TYPE="LITERAL1">
            <BEGIN>(?:L|u8|u|U)?R"([^()\\\s]*)\(
            <END>)$1"
        </SPAN_REGEXP>
    </RULES>

    <!-- Core C++ language -->
    <RULES SET="CORE"
        IGNORE_CASE="FALSE"
        HIGHLIGHT_DIGITS="TRUE" DIGIT_RE="[0-9][0-9a-zA-Z]*">

        <IMPORT DELEGATE="c::CORE"/> <!-- import from C mode -->

        <KEYWORDS>
            <KEYWORD3>catch</KEYWORD3>
            <KEYWORD3>class</KEYWORD3>
            <KEYWORD3>const_cast</KEYWORD3>
            <KEYWORD1>delete</KEYWORD1>
            <KEYWORD3>dynamic_cast</KEYWORD3>
            <KEYWORD1>explicit</KEYWORD1>
            <KEYWORD2>export</KEYWORD2>
            <KEYWORD1>friend</KEYWORD1>
            <KEYWORD3>mutable</KEYWORD3>
            <KEYWORD2>namespace</KEYWORD2>
            <KEYWORD1>new</KEYWORD1>
            <KEYWORD3>operator</KEYWORD3>
            <KEYWORD1>private</KEYWORD1>
            <KEYWORD1>protected</KEYWORD1>
            <KEYWORD1>public</KEYWORD1>
            <KEYWORD1>signals</KEYWORD1>
            <KEYWORD1>slots</KEYWORD1>
            <KEYWORD3>reinterpret_cast</KEYWORD3>
            <KEYWORD3>static_assert</KEYWORD3>
            <KEYWORD3>static_cast</KEYWORD3>
            <KEYWORD3>template</KEYWORD3>
            <LITERAL2>this</LITERAL2>
            <KEYWORD1>throw</KEYWORD1>
            <KEYWORD1>try</KEYWORD1>
            <KEYWORD3>typeid</KEYWORD3>
            <KEYWORD3>typename</KEYWORD3>
            <KEYWORD2>using</KEYWORD2>
            <KEYWORD1>virtual</KEYWORD1>
            <KEYWORD3>wchar_t</KEYWORD3>             <!-- type, kw3 -->

            <!-- TM -->
            <KEYWORD1>atomic_cancel</KEYWORD1>       <!-- block, kw1 -->
            <KEYWORD1>atomic_commit</KEYWORD1>       <!-- block, kw1 -->
            <KEYWORD1>atomic_noexcept</KEYWORD1>     <!-- block, kw1 -->
            <KEYWORD1>synchronized</KEYWORD1>        <!-- block, kw1 -->
            <KEYWORD1>transaction_safe</KEYWORD1>    <!-- block, kw1 -->
            <KEYWORD1>transaction_safe_dynamic</KEYWORD1> <!-- block, kw1 -->

            <!-- coroutines -->
            <KEYWORD1>co_await</KEYWORD1>            <!-- statement, kw1 -->
            <KEYWORD1>co_return</KEYWORD1>           <!-- statement, kw1 -->
            <KEYWORD1>co_yield</KEYWORD1>            <!-- statement, kw1 -->

            <!-- modules -->
            <KEYWORD2>import</KEYWORD2>              <!-- declaration, kw2 -->
            <KEYWORD2>module</KEYWORD2>              <!-- declaration, kw2 -->

            <!-- since C++11 -->
            <KEYWORD1>alignas</KEYWORD1>             <!-- specifier, kw1 -->
            <KEYWORD1>alignof</KEYWORD1>             <!-- operator, kw1 -->
            <KEYWORD3>char16_t</KEYWORD3>            <!-- type, kw 3 -->
            <KEYWORD3>char32_t</KEYWORD3>            <!-- type, kw 3 -->
            <KEYWORD1>constexpr</KEYWORD1>           <!-- kw1 -->
            <KEYWORD3>decltype</KEYWORD3>            <!-- kw3 -->
            <KEYWORD1>final</KEYWORD1>               <!-- kw1 -->
            <KEYWORD2>noexcept</KEYWORD2>            <!-- kw2 as decl, ?? as func -->
            <LITERAL2>nullptr</LITERAL2>             <!-- value, literal 2 -->
            <KEYWORD1>override</KEYWORD1>            <!-- kw1 -->
            <KEYWORD2>thread_local</KEYWORD2>        <!-- declaration, kw2 -->

            <!-- since C++20 -->
            <KEYWORD1>concept</KEYWORD1>             <!-- kw1 -->
            <KEYWORD1>requires</KEYWORD1>            <!-- kw1 -->

        </KEYWORDS>
    </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="c::INCLUDE">include\b</EOL_SPAN_REGEXP> <!-- import from C mode -->
        <EOL_SPAN_REGEXP HASH_CHAR="define"  TYPE="MARKUP" DELEGATE="DEFINE">define\b</EOL_SPAN_REGEXP>
        <EOL_SPAN_REGEXP HASH_CHAR="endif"   TYPE="MARKUP" DELEGATE="c::LEX">endif\b</EOL_SPAN_REGEXP>       <!-- import from C mode -->
        <EOL_SPAN_REGEXP HASH_CHAR="elif"    TYPE="MARKUP" DELEGATE="c::CONDITION">elif\b</EOL_SPAN_REGEXP>  <!-- import from C mode -->
        <EOL_SPAN_REGEXP HASH_CHAR="if"      TYPE="MARKUP" DELEGATE="c::CONDITION">if\b</EOL_SPAN_REGEXP>    <!-- import from C mode -->

        <IMPORT DELEGATE="LEX"/>

        <!-- Directives -->
        <KEYWORDS>
            <MARKUP>ifdef</MARKUP>
            <MARKUP>ifndef</MARKUP>
            <MARKUP>else</MARKUP>
            <MARKUP>error</MARKUP>
            <MARKUP>line</MARKUP>
            <MARKUP>pragma</MARKUP>
            <MARKUP>undef</MARKUP>
            <MARKUP>warning</MARKUP>
        </KEYWORDS>
    </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">#</SEQ>
        <IMPORT DELEGATE="LEX"/>
        <IMPORT DELEGATE="CORE"/>
    </RULES>

</MODE>


¤ Dauer der Verarbeitung: 0.16 Sekunden  (vorverarbeitet)  ¤





Download des
Quellennavigators
Download des
sprechenden Kalenders

in der Quellcodebibliothek suchen




Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.


Bemerkung:

Die farbliche Syntaxdarstellung ist noch experimentell.


Bot Zugriff