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> <characters></EM>
<EM> &digit-sequence<characters></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 <></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 ""</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 © 1998.</I></P>
</BODY>
</HTML>