C Checker Reference Manual

January 1998

next section previous section current document TenDRA home page document index


E.1 - Basics
E.2 - Dump commands
E.3 - API information
E.4 - Base definitions
E.5 - Error commands
E.6 - File commands
E.7 - Identifier commands
E.8 - Scope commands
E.9 - String command
E.10 - Templates
E.11 - Token sort information
E.12 - Type information

E Dump format specification


E.1 Basics

	digit :	one of 0 1 2 3 4 5 6 7 8 9
	digit-sequence :
		digit
		digit-sequence
	number :
		digit-sequence
	string :
		<characters>
		&digit-sequence<characters>
	location :
		number number number string string
		number number number string *
		number number number *
		number number *
		number *
		*

E.2 Dump commands

	dump-file :
		command-listopt
	command-list :
		command
		command command-list
	command :
		B base-definition	base class graph
		error-command
		file-command
		I identifier-command	implicit declarations etc.
		identifier-command
		scope-command
		O identifier identifier	overriding virtual function
		P type : type	promotion type specifier
		string-command
		V number number string	version number
		X api-info	external token name
		Z template-info	template instance

E.3 API information

	api-info :
		identifier key identifier string

E.4 Base definitions

	virtual :
		V
	base-class :
		number = virtualopt accessopt type-name

		number :
	base-list :
		base-graph
		base-graph base-list
	base-graph :
		base-class
		base-class ( base-list )
	base-definition :
		identifier-key number base-graph
	base-number :
		number : type-name

E.5 Error commands

	error-command :
		EA error-argument	error argument
		EC error-info	continuation error
		EF location error-info	fatal error
		EI location error-info	internal error
		ES location error-info	serious error
		EW location error-info	warning
	error-info :
		error-name number number
	error-name :
		number = string
		number
	error-argument :
		B base-number
		C scope-identifier
		E exp
		H hashid
		I identifier
		L location
		N nat
		S string
		T type
		V number
		V -number

E.6 File commands

	file-command :
		FD number = string stringopt	inclusion directory
		FE location	file end
		FIA location string	file include with <>
		FIE location string	include end-up
		FIN location string	file include with []
		FIQ location string	file include with ""
		FIR location	resume file
		FIS location string	include startup
		FS location directory	file start
	directory :
		number
		*

E.7 Identifier commands

	identifier-command :
		C identifier-info	call identifier
		D identifier-info type-info	define identifier
		L identifier-info	use identifier
		M identifier-info type-info	declare identifier
		Q identifier-info	end identifier definition
		T identifier-info type-info	tentatively define identifier
		U identifier-info	undefine identifier
		W identifier-info type-info	weak prototype
	identifier-info :
		identifier-key location identifier
	identifier-key :
		CD	static data member
		CF function-key	member function
		CM	data member
		CS function-key	static member function
		CV function-key	virtual member function
		E	enumerator
		FB function-key	builtin function
		FE function key	external function
		FS function-key	static function
		K	keyword
		L	label
		MB	built-in macro
		MF	function-like macro
		MO	object-like macro
		NA	namespace alias
		NN	namespace name
		TA	type alias
		TC	class tag
		TE	enum tag
		TS	struct tag
		TU	union tag
		VA	automatic variable
		VE	extern variable
		VP	function parameter
		VS	static variable
		XF	procedure token
		XO	object token
		XP	token parameter
		XT	template parameter
	function-key :
		empty
		C function-key	C linkage
		I function-key	inline
	identifier :
		number = hashid accessopt scope-identifier
		number
	hashid :
		string	simple name
		C type	constructor
		D type	destructor
		O string	operator
		T type	conversion
	access :
		B	protected
		N	public
		P	private

E.8 Scope commands

	scope-command :
		SE scope-key location identifier	end scope
		SS scope-key location identifier	start scope
	scope-key :
		B	block scope
		CC	conditional scope
		N	namespace scope
		CF	false conditional scope
		CT	true conditional scope
		D	other declarative scope
		H	header scope
		S	class scope
	scope-identifier :
		identifier
		*

E.9 String command

	string-command :
		A location string	string literal
		AC location string	character literal
		ACL location string	wide character literal
		AL location string	wide string literal

E.10 Templates

	specialisation-info :
		token-application
		*
	template-info :
		identifier-key identifier token-application specialisation-info

E.11 Token sort information

	sort :
		ZEC type-info	constant expression
		ZEL type-info	lvalue expression
		ZER type-info	rvalue expression
		ZF type-info	function
		ZM type-info : type-name	member
		ZN	integral constant
		ZPS parameter-list-opt : sort	procedure type ()
		ZPG parameter-list-opt ; parameter-list-opt:sort 
			procedure type {}
		ZS	statement
		ZTA	arithmetic type
		ZTF	floating type
		ZTI	integral type
		ZTO	opaque type
		ZTP	scalar type
		ZTS	structure type
		ZTt parameter-list-opt :	template type
		ZTTS	structure tag 
		ZTTU	union tag
		ZTU	union type
		ZUF number	function macro
		ZUO	object macro
	exp :
		nat
	member :
		identifier
		string
	statement :
		exp
	token-argument :
		C identifier	template argument
		E exp	expression argument
		F identifier	function argument
		M member	member argument
		N nat	integer constant argument
		S statement	statement argument
		T type-info	type argument
	token-argument-list :
		token-argument
		token-argument , token-argument-list
	token-application :
		T identifier , token-argument-list :

E.12 Type information

	type-info :
		scope-identifier	for namespace alias
		sort	for token, macro etc.
		type	for variable etc.
		type identifier-opt	for overloaded function
	type :
		qualifieropt unqualified-type
	qualifier :
		C	const
		V	volatile
		CV	const volatile
	unqualified-type :
		type-name
		token-application
		c	char
		s	short
		i	int
		l	long
		x	long long
		f	float
		d	double
		r	long double
		v	void
		b	bool
		w	wchar_t
		Sc	signed char
		Uc	unsigned char
		Us	unsigned short
		Ui	unsigned int
		Ul	unsigned long
		Ux	unsigned long long
		u	bottom
		y	ptrdiff_t
		z	size_t
		a type : type	arithmetic type
		n nat	literal type
		p type	promoted type
		t parameter-listopt : type	template type
		A natopt : type	array type
		B nat : type	bitfield type
		F type parameter-types	function type
		M type-name : type	pointer to member type
		P type	pointer type
		R type	reference type
		W type parameter-types	weak function type
		Q string	quoted type
		*	unknown type
	parameter-types :
		: exceptionopt qualifieropt :	no parameters
		. exceptionopt qualifieropt :	ellipsis
		. exceptionopt qualifieropt .	unknown
		, 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

Part of the TenDRA Web.
Crown Copyright © 1998.