Subversion Repositories tendra.SVN

Rev

Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

<!-- Crown Copyright (c) 1998 -->
<HTML>
<HEAD>
<TITLE>C Checker Reference Manual: Dump format specification</TITLE>
</HEAD>
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000FF" VLINK="#400080" ALINK="#FF0000">
<A NAME=S131>
<H1>C Checker Reference Manual</H1>
<H3>January 1998</H3>
<A HREF="tdfc20.html"><IMG SRC="../images/next.gif" ALT="next section"></A>
<A HREF="tdfc18.html"><IMG SRC="../images/prev.gif" ALT="previous section"></A>
<A HREF="tdfc1.html"><IMG SRC="../images/top.gif" ALT="current document"></A>
<A HREF="../index.html"><IMG SRC="../images/home.gif" ALT="TenDRA home page">
</A>
<IMG SRC="../images/no_index.gif" ALT="document index"><P>
<HR>
<DL>
<DT><A HREF="#S132"><B>E.1 </B> - Basics</A><DD>
<DT><A HREF="#S133"><B>E.2 </B> - Dump commands</A><DD>
<DT><A HREF="#S134"><B>E.3 </B> - API information</A><DD>
<DT><A HREF="#S135"><B>E.4 </B> - Base definitions</A><DD>
<DT><A HREF="#S136"><B>E.5 </B> - Error commands</A><DD>
<DT><A HREF="#S137"><B>E.6 </B> - File commands</A><DD>
<DT><A HREF="#S138"><B>E.7 </B> - Identifier commands</A><DD>
<DT><A HREF="#S139"><B>E.8 </B> - Scope commands</A><DD>
<DT><A HREF="#S140"><B>E.9 </B> - String command</A><DD>
<DT><A HREF="#S141"><B>E.10 </B> - Templates</A><DD>
<DT><A HREF="#S142"><B>E.11 </B> - Token sort information</A>
<DD>
<DT><A HREF="#S143"><B>E.12 </B> - Type information</A><DD>
</DL>

<HR>
<H1>E  Dump format specification</H1>
<A NAME=S132>
<HR><H2>E.1  Basics</H2>
<PRE>
        digit : one of 0 1 2 3 4 5 6 7 8 9
        digit-sequence :
        <EM>    digit</EM>
        <EM>    digit-sequence</EM>
        number :
        <EM>    digit-sequence</EM>
        string :
        <EM>    &lt;characters&gt;</EM>
        <EM>    &amp;digit-sequence&lt;characters&gt;</EM>
        location :
        <EM>    number number number string string</EM>
        <EM>    number number number string *</EM>
        <EM>    number number number *</EM>
        <EM>    number number *</EM>
        <EM>    number *</EM>
        <EM>    *</EM>
</PRE>
<A NAME=S133>
<HR><H2>E.2  Dump commands</H2>
<PRE>
        dump-file :
                <EM>command-list</EM><EM>opt</EM>
        command-list :
        <EM>    command</EM>
        <EM>    command command-list</EM>
        command :
        <EM>    B base-definition       </EM><EM>base class graph</EM>
        <EM>    error-command</EM>
        <EM>    file-command</EM>
        <EM>    I identifier-command    </EM><EM>implicit declarations etc.</EM>
        <EM>    identifier-command</EM>
        <EM>    scope-command</EM>
        <EM>    O identifier identifier </EM><EM>overriding virtual function</EM>
        <EM>    P type : type   </EM><EM>promotion type specifier</EM>
        <EM>    string-command</EM>
        <EM>    V number number string  </EM><EM>version number</EM>
        <EM>    X api-info      </EM><EM>external token name</EM>
        <EM>    Z template-info</EM>    <EM>template instance</EM>
</PRE>
<A NAME=S134>
<HR><H2>E.3  API information</H2>
<PRE>
        api-info :
        <EM>    identifier key identifier string</EM>
</PRE>
<A NAME=S135>
<HR><H2>E.4  Base definitions</H2>
<PRE>
        virtual :
        <EM>    V</EM>
        base-class :
        <EM>    number = virtual</EM><EM>opt</EM><EM> access</EM><EM>opt</EM><EM> type-name
</EM>
        <EM>    number :</EM>
        base-list :
        <EM>    base-graph</EM>
        <EM>    base-graph base-list</EM>
        base-graph :
        <EM>    base-class</EM>
        <EM>    base-class ( base-list )</EM>
        base-definition :
        <EM>    identifier-key number base-graph</EM>
        base-number :
        <EM>    number : type-name</EM>
</PRE>
<A NAME=S136>
<HR><H2>E.5  Error commands</H2>
<PRE>
        error-command :
        <EM>    EA error-argument       </EM><EM>error argument</EM>
        <EM>    EC error-info   </EM><EM>continuation error</EM>
        <EM>    EF location error-info  </EM><EM>fatal error</EM>
        <EM>    EI location error-info  </EM><EM>internal error</EM>
        <EM>    ES location error-info  </EM><EM>serious error</EM>
        <EM>    EW location error-info  </EM><EM>warning</EM>
        error-info :
        <EM>    error-name number number</EM>
        error-name :
        <EM>    number = string</EM>
        <EM>    number</EM>
        error-argument :
        <EM>    B base-number</EM>
        <EM>    C scope-identifier</EM>
        <EM>    E exp</EM>
        <EM>    H hashid</EM>
        <EM>    I identifier</EM>
        <EM>    L location</EM>
        <EM>    N nat</EM>
        <EM>    S string</EM>
        <EM>    T type</EM>
        <EM>    V number</EM>
        <EM>    V -number</EM>
</PRE>
<A NAME=S137>
<HR><H2>E.6  File commands</H2>
<PRE>
        file-command :
        <EM>    FD number = string stringopt    </EM><EM>inclusion directory</EM>
        <EM>    FE location     </EM><EM>file end</EM>
        <EM>    FIA location string     </EM><EM>file include with &lt;&gt;</EM>
        <EM>    FIE location string     </EM><EM>include end-up</EM>
        <EM>    FIN location string     </EM><EM>file include with []</EM>
        <EM>    FIQ location string</EM>        <EM>file include with &quot;&quot;</EM>
                FIR location    <EM>resume file</EM>
                FIS location string     <EM>include startup</EM>
                FS location directory   <EM>file start</EM>
        directory :
                number
                *
</PRE>
<A NAME=S138>
<HR><H2>E.7  Identifier commands</H2>
<PRE>
        identifier-command :
                C identifier-info       <EM>call identifier</EM>
                D identifier-info type-info     <EM>define identifier</EM>
                L identifier-info       <EM>use identifier</EM>
                M identifier-info type-info     <EM>declare identifier</EM>
                Q identifier-info       <EM>end identifier definition</EM>
                T identifier-info type-info     <EM>tentatively define identifier</EM>
                U identifier-info       <EM>undefine identifier</EM>
                W identifier-info type-info     <EM>weak prototype</EM>
        identifier-info :
                identifier-key location identifier
        identifier-key :
                CD      <EM>static data member</EM>
                CF function-key <EM>member function</EM>
                CM      <EM>data member</EM>
                CS function-key <EM>static member function</EM>
                CV function-key <EM>virtual member function</EM>
                E       <EM>enumerator</EM>
                FB function-key <EM>builtin function</EM>
                FE function key <EM>external function</EM>
                FS function-key <EM>static function</EM>
                K       <EM>keyword</EM>
                L       <EM>label</EM>
                MB      <EM>built-in macro</EM>
                MF      <EM>function-like macro</EM>
                MO      <EM>object-like macro</EM>
                NA      <EM>namespace alias</EM>
                NN      <EM>namespace name</EM>
                TA      <EM>type alias</EM>
                TC      <EM>class tag</EM>
                TE      <EM>enum tag</EM>
                TS      <EM>struct tag</EM>
                TU      <EM>union tag</EM>
                VA      <EM>automatic variable</EM>
                VE      <EM>extern variable</EM>
                VP      <EM>function parameter</EM>
                VS      <EM>static variable</EM>
                XF      <EM>procedure token</EM>
                XO      <EM>object token</EM>
                XP      <EM>token parameter</EM>
                XT      <EM>template parameter</EM>
        function-key :
                empty
                C function-key  <EM>C linkage</EM>
                I function-key  <EM>inline</EM>
        identifier :
                number = hashid accessopt scope-identifier
                number
        hashid :
                string  <EM>simple name</EM>
                C type  <EM>constructor</EM>
                D type  <EM>destructor</EM>
                O string        <EM>operator</EM>
                T type  <EM>conversion</EM>
        access :
                B       <EM>protected</EM>
                N       <EM>public</EM>
                P       <EM>private</EM>
</PRE>
<A NAME=S139>
<HR><H2>E.8  Scope commands</H2>
<PRE>
        scope-command :
                SE scope-key location identifier        <EM>end scope</EM>
                SS scope-key location identifier        <EM>start scope</EM>
        scope-key :
                B       <EM>block scope</EM>
                CC      <EM>conditional scope</EM>
                N       <EM>namespace scope</EM>
                CF      <EM>false conditional scope</EM>
                CT      <EM>true conditional scope</EM>
                D       <EM>other declarative scope</EM>
                H       <EM>header scope</EM>
                S       <EM>class scope</EM>
        scope-identifier :
                identifier
                *
</PRE>
<A NAME=S140>
<HR><H2>E.9  String command</H2>
<PRE>
        string-command :
                A location string       <EM>string literal</EM>
                AC location string      <EM>character literal</EM>
                ACL location string     <EM>wide character literal</EM>
                AL location string      <EM>wide string literal</EM>
</PRE>
<A NAME=S141>
<HR><H2>E.10  Templates</H2>
<PRE>
        specialisation-info :
                token-application
                *
        template-info :
                identifier-key identifier token-application specialisation-info
</PRE>
<A NAME=S142>
<HR><H2>E.11  Token sort information</H2>
<PRE>
        sort :
                ZEC type-info   <EM>constant expression</EM>
                ZEL type-info   <EM>lvalue expression</EM>
                ZER type-info   <EM>rvalue expression</EM>
                ZF type-info    <EM>function</EM>
                ZM type-info : type-name        <EM>member</EM>
                ZN      <EM>integral constant</EM>
                ZPS parameter-list-opt : sort   <EM>procedure type ()</EM>
                ZPG parameter-list-opt ; parameter-list-opt:sort 
        <EM>            procedure type {}</EM>
                ZS      <EM>statement</EM>
                ZTA     <EM>arithmetic type</EM>
                ZTF     <EM>floating type</EM>
                ZTI     <EM>integral type</EM>
                ZTO     <EM>opaque type</EM>
                ZTP     <EM>scalar type</EM>
                ZTS     <EM>structure type</EM>
                ZTt parameter-list-opt :        <EM>template type</EM>
                ZTTS    <EM>structure tag </EM>
                ZTTU    <EM>union tag</EM>
                ZTU     <EM>union type</EM>
                ZUF number      <EM>function macro</EM>
                ZUO     <EM>object macro</EM>
        exp :
                nat
        member :
                identifier
                string
        statement :
                exp
        token-argument :
                C identifier    <EM>template argument</EM>
                E exp   <EM>expression argument</EM>
                F identifier    <EM>function argument</EM>
                M member        <EM>member argument</EM>
                N nat   <EM>integer constant argument</EM>
                S statement     <EM>statement argument</EM>
                T type-info     <EM>type argument</EM>
        token-argument-list :
                token-argument
                token-argument , token-argument-list
        token-application :
                T identifier , token-argument-list :
</PRE>
<A NAME=S143>
<HR><H2>E.12  Type information</H2>
<PRE>
        type-info :
                scope-identifier        <EM>for namespace alias</EM>
                sort    <EM>for token, macro etc.</EM>
                type    <EM>for variable etc.</EM>
                type identifier-opt     <EM>for overloaded function</EM>
        type :
                qualifieropt unqualified-type
        qualifier :
                C       <EM>const</EM>
                V       <EM>volatile</EM>
                CV      <EM>const volatile</EM>
        unqualified-type :
                type-name
                token-application
                c       <EM>char</EM>
                s       <EM>short</EM>
                i       <EM>int</EM>
                l       <EM>long</EM>
                x       <EM>long long</EM>
                f       <EM>float</EM>
                d       <EM>double</EM>
                r       <EM>long double</EM>
                v       <EM>void</EM>
                b       <EM>bool</EM>
                w       <EM>wchar_t</EM>
                Sc      <EM>signed char</EM>
                Uc      <EM>unsigned char</EM>
                Us      <EM>unsigned short</EM>
                Ui      <EM>unsigned int</EM>
                Ul      <EM>unsigned long</EM>
                Ux      <EM>unsigned long long</EM>
                u       <EM>bottom</EM>
                y       <EM>ptrdiff_t</EM>
                z       <EM>size_t</EM>
                a type : type   <EM>arithmetic type</EM>
                n nat   <EM>literal type</EM>
                p type  <EM>promoted type</EM>
                t parameter-listopt : type      <EM>template type</EM>
                A natopt : type <EM>array type</EM>
                B nat : type    <EM>bitfield type</EM>
                F type parameter-types  <EM>function type</EM>
                M type-name : type      <EM>pointer to member type</EM>
                P type  <EM>pointer type</EM>
                R type  <EM>reference type</EM>
                W type parameter-types  <EM>weak function type</EM>
                Q string        <EM>quoted type</EM>
                *       <EM>unknown type</EM>
        parameter-types :
                : exceptionopt qualifieropt :   <EM>no parameters</EM>
                . exceptionopt qualifieropt :   <EM>ellipsis</EM>
                . exceptionopt qualifieropt .   <EM>unknown</EM>
                , type parameter-types
        exception :
                ( exception-listopt )
        exception-list :
                type
                type, exception-list
        parameter-list :
                identifier
                identifier , parameter-list
        type-name :
                identifier
        nat :
                +number
                -number
                string
                identifier
                token-application
</PRE>
<!-- FM pgf ignored -->
<HR>
<P><I>Part of the <A HREF="../index.html">TenDRA Web</A>.<BR>Crown
Copyright &copy; 1998.</I></P>
</BODY>
</HTML>