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++ Producer Guide: Symbol table dump syntax 
</TITLE>
</HEAD>
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000FF" VLINK="#400080" ALINK="#FF0000">

<H1>C++ Producer Guide</H1>
<H3>March 1998</H3>
<A HREF="error1.html"><IMG SRC="../images/next.gif" ALT="next section"></A>
<A HREF="pragma1.html"><IMG SRC="../images/prev.gif" ALT="previous section"></A>
<A HREF="index.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>

<H1>Annex B. Symbol table dump syntax</H1>
<P>
The following gives a summary of the syntax for the 
<A HREF="dump.html">symbol table dump file</A> (version 1.1): 
<PRE>
<HR>
        <I>dump-file</I> :
                <I>command-list<SUB>opt</SUB></I>

        <I>command-list</I> :
                <I>command command-list<SUB>opt</SUB></I>

        <I>command</I> :
                <I>version-command</I>
                <I>identifier-command</I>
                <I>scope-command</I>
                <I>override-command</I>
                <I>base-command</I>
                <I>api-command</I>
                <I>template-command</I>
                <I>promotion-command</I>
                <I>error-command</I>
                <I>path-command</I>
                <I>file-command</I>
                <I>include-command</I>
                <I>string-command</I>

        <I>version-command</I> :
                V <I>number number string</I>

<HR>
        <I>location</I> :
                <I>number number number string string</I>
                <I>number number number string</I> *
                <I>number number number</I> *
                <I>number number</I> *
                <I>number</I> *
                *

<HR>
        <I>identifier</I> :
                <I>number</I> = <I>identifier-name access<SUB>opt</SUB> scope-identifier</I>
                <I>number</I>

        <I>identifier-name</I> :
                <I>string</I>
                C <I>type</I>
                D <I>type</I>
                O <I>string</I>
                T <I>type</I>

        <I>access</I> :
                N
                B
                P

        <I>scope-identifier</I> :
                <I>identifier</I>
                *

        <I>identifier-command</I> :
                D <I>identifier-info type-info</I>
                M <I>identifier-info type-info</I>
                T <I>identifier-info type-info</I>
                Q <I>identifier-info</I>
                U <I>identifier-info</I>
                L <I>identifier-info</I>
                C <I>identifier-info</I>
                W <I>identifier-info type-info</I>
                I <I>identifier-command</I>

        <I>identifier-info</I> :
                <I>identifier-key location identifier</I>

        <I>identifier-key</I> :
                K
                MO
                MF
                MB
                TC
                TS
                TU
                TE
                TA
                NN
                NA
                VA
                VP
                VE
                VS
                FE <I>function-key<SUB>opt</SUB></I>
                FS <I>function-key<SUB>opt</SUB></I>
                FB <I>function-key<SUB>opt</SUB></I>
                CF <I>function-key<SUB>opt</SUB></I>
                CS <I>function-key<SUB>opt</SUB></I>
                CV <I>function-key<SUB>opt</SUB></I>
                CM
                CD
                E
                L
                XO
                XF
                XP
                XT

        <I>function-key</I> :
                C <I>function-key<SUB>opt</SUB></I>
                I <I>function-key<SUB>opt</SUB></I>

        <I>type-info</I> :
                <I>type identifier<SUB>opt</SUB></I>
                <I>sort</I>
                <I>scope-identifier</I>
                *

<HR>
        <I>scope-command</I> :
                SS <I>scope-key location identifier</I>
                SE <I>scope-key location identifier</I>

        <I>scope-key</I> :
                N
                S
                B
                D
                H
                CT
                CF
                CC

<HR>
        <I>override-command</I> :
                O <I>identifier identifier</I>

<HR>
        <I>base-command</I> :
                B <I>identifier-key identifier base-graph</I>

        <I>base-graph</I> :
                <I>base-class</I>
                <I>base-class</I> ( <I>base-list</I> )

        <I>base-class</I> :
                <I>number</I> = V<I><SUB>opt</SUB> access<SUB>opt</SUB> type-name</I>
                <I>number</I> :

        <I>base-list</I> :
                <I>base-graph base-list<SUB>opt</SUB></I>

        <I>base-number</I> :
                <I>number</I> : <I>type-name</I>

<HR>
        <I>api-command</I> :
                X <I>identifier-key identifier string</I>

<HR>
        <I>template-command</I> :
                Z <I>identifier-key identifier token-application specialise-info</I>

        <I>specialise-info</I> :
                <I>identifier</I>
                <I>token-application</I>
                *

<HR>
        <I>type</I> :
                <I>type-name</I>
                c
                s
                i
                l
                x
                b
                w
                y
                z
                f
                d
                r
                v
                u
                Sc
                Uc
                Us
                Ui
                Ul
                Ux
                C <I>type</I>
                V <I>type</I>
                P <I>type</I>
                R <I>type</I>
                M <I>type-name</I> : <I>type</I>
                F <I>type parameter-types</I>
                A <I>nat<SUB>opt</SUB></I> : <I>type</I>
                B <I>nat</I> : <I>type</I>
                t <I>parameter-list<SUB>opt</SUB></I> : <I>type</I>
                p <I>type</I>
                a <I>type</I> : <I>type</I>
                n <I>lit-base<SUB>opt</SUB> lit-suffix<SUB>opt</SUB></I>
                W <I>type parameter-types</I>
                q <I>type</I>
                Q <I>string</I>
                *

        <I>type-name</I> :
                <I>identifier</I>
                <I>token-application</I>

        <I>parameter-types</I> :
                : <I>exception-spec<SUB>opt</SUB> func-qualifier<SUB>opt</SUB></I> :
                . <I>exception-spec<SUB>opt</SUB> func-qualifier<SUB>opt</SUB></I> :
                . <I>exception-spec<SUB>opt</SUB> func-qualifier<SUB>opt</SUB></I> .
                , <I>type parameter-types</I>

        <I>func-qualifier</I> :
                C <I>func-qualifier<SUB>opt</SUB></I>
                V <I>func-qualifier<SUB>opt</SUB></I>

        <I>exception-spec</I> :
                ( <I>exception-list<SUB>opt</SUB></I> )

        <I>exception-list</I> :
                <I>type</I>
                <I>type</I> , <I>exception-list</I>

        <I>nat</I> :
                + <I>number</I>
                - <I>number</I>
                <I>identifier</I>
                <I>token-application</I>
                <I>string</I>

        <I>parameter-list</I> :
                <I>identifier</I>
                <I>identifier</I> , <I>parameter-list</I>

        <I>lit-base</I> :
                O
                X

        <I>lit-suffix</I> :
                U
                l
                Ul
                x
                Ux

<HR>
        <I>promotion-command</I> :
                P <I>type</I> : <I>type</I>

<HR>
        <I>sort</I> :
                <I>expression-sort</I>
                <I>statement-sort</I>
                <I>type-sort</I>
                <I>tag-type-sort</I>
                <I>member-sort</I>
                <I>proc-sort</I>
                <I>func-sort</I>
                <I>template-sort</I>
                <I>macro-sort</I>

        <I>expression-sort</I> :
                ZEL <I>type</I>
                ZER <I>type</I>
                ZEC <I>type</I>
                ZN

        <I>statement-sort</I> :
                ZS

        <I>type-sort</I> :
                ZTO
                ZTI
                ZTF
                ZTA
                ZTP
                ZTS
                ZTU

        <I>tag-type-sort</I> :
                ZTTS
                ZTTU

        <I>member-sort</I> :
                ZM <I>type</I> : <I>type-name</I>

        <I>proc-sort</I> :
                ZPG <I>parameter-list<SUB>opt</SUB></I> ; <I>parameter-list<SUB>opt</SUB></I> : <I>sort</I>
                ZPS <I>parameter-list<SUB>opt</SUB></I> : <I>sort</I>

        <I>func-sort</I> :
                ZF <I>type</I>

        <I>template-sort</I> :
                ZTt <I>parameter-list<SUB>opt</SUB></I> :

        <I>macro-sort</I> :
                ZUO
                ZUF <I>number</I>

        <I>token-application</I> :
                T <I>identifier</I> , <I>token-argument-list</I> :

        <I>token-argument-list</I> :
                <I>token-argument</I>
                <I>token-argument</I> , <I>token-argument-list</I>

        <I>token-argument</I> :
                E <I>expression</I>
                N <I>nat</I>
                S <I>statement</I>
                T <I>type</I>
                M <I>member</I>
                F <I>identifier</I>
                C <I>identifier</I>

        <I>expression</I> :
                <I>nat</I>

        <I>statement</I> :
                <I>expression</I>

        <I>member</I> :
                <I>identifier</I>
                <I>string</I>

<HR>
        <I>error-name</I> :
                <I>number</I> = <I>string</I>
                <I>number</I>

        <I>error-command</I> :
                ES <I>location error-info</I>
                EW <I>location error-info</I>
                EI <I>location error-info</I>
                EF <I>location error-info</I>
                EC <I>error-info</I>
                EA <I>error-argument</I>

        <I>error-info</I> :
                <I>error-name number number</I>

        <I>error-argument</I> :
                B <I>base-number</I>
                C <I>scope-identifier</I>
                E <I>expression</I>
                H <I>identifier-name</I>
                I <I>identifier</I>
                L <I>location</I>
                N <I>nat</I>
                S <I>string</I>
                T <I>type</I>
                V <I>number</I>
                V - <I>number</I>

<HR>
        <I>path-command</I> :
                FD <I>number</I> = <I>string string<SUB>opt</SUB></I>

        <I>directory</I> :
                <I>number</I>
                *

        <I>file-command</I> :
                FS <I>location directory</I>
                FE <I>location</I>

        <I>include-command</I> :
                FIA <I>location string</I>
                FIQ <I>location string</I>
                FIN <I>location string</I>
                FIS <I>location string</I>
                FIE <I>location string</I>
                FIR <I>location</I>

<HR>
        <I>string-command</I> :
                A <I>location string</I>
                AC <I>location string</I>
                AL <I>location string</I>
                ACL <I>location string</I>
</PRE>
</P>

<HR>
<P><I>Part of the <A HREF="../index.html">TenDRA Web</A>.<BR>Crown
Copyright &copy; 1998.</I></P>
</BODY>
</HTML>