C Checker Reference Manual

January 1998

next section previous section current document TenDRA home page document index


D Summary of the pragma statements

  1. pragma_syntax:
    	#pragma TenDRA tendra_pragma
    	#pragma token token_pragma
    	#pragma token_operation
    	#pragma integer_pragma
    
  2. tendra_pragma:
    	begin ==>
    	begin name environment identifier 
    	declaration block identifier begin ==>
    	declaration block end ==>
    	directory name use environment identifier
    	use environment identifier
    	end ==>
    	analysis_spec
    	function_pars ==>
    	keyword identifier for keyword_spec
    	type identifier for type_spec
    	check_pragma
    	variable_pragma
    	dialect_pragma
    
  3. analysis_spec:
    	complete struct/union analysis state ==> 
    	conversion conv_list allow ==>
    	conversion analysis conversion_spec ==>
    	discard analysis discard_spec ==>
    	enum switch analysis state ==>
    	fall into case permit ==>
    	function pointer as pointer permit ==>
    	integer operator analysis state ==>
    	integer overflow analysis state ==>
    	nested comment analysis state ==>
    	operator precedence analysis state ==>
    	unreachable code permit ==>
    	variable analysis state ==>
    	variable hiding analysis state ==>
    	weak prototype analysis state ==>
    
  4. conversion_spec:
    	empty
    	( int-int ) ==>
    	( int-int explicit ) ==>
    	( int-int implicit ) ==>
    	( int-enum implicit) ==>
    	(enum-int implicit) ==>
    	( int-pointer ) ==>
    	( int-pointer explicit ) ==>
    	(int-pointer implicit ) ==>
    	( pointer-int ) ==>
    	( pointer-int explicit ) ==>
    	( pointer-int implicit ) ==>
    	( pointer-pointer ) ==>
    	( pointer-pointer explicit ) ==>
    	( pointer-pointer implicit ) ==>
    
  5. discard_spec:
    	empty
    	( function return ) ==>
    	( static ) ==>
    	( value ) ==>
    	
  6. function_pars: argument type_name as type_name ==> argument type_name as ... ==> extra ... permit ==>
  7. keyword_spec:
    	discard value ==>
    	discard variable ==>
    	exhaustive ==>
    	fall into case ==>
    	set ==>
    	set reachable ==>
    	set unreachable ==>
    	type representation ==>
    	weak ==>
    
  8. type_spec:
    	bottom ==>
    	... printf ==>
    	... scanf ==>
    
  9. check_pragma:
    	implicit function declaration state ==>
    	incompatible interface declaration permit ==>
    
    	incompatible void return permit ==>
    
  10. variable_pragma:
    	discard identifier separator ==> 
    	preserve identifier_list ==>
    	set identifier separator ==>
    	suspend static identifier_list ==>
    	exhaustive ==>
    
  11. separator:
    	;
    	,
    
  12. identifier_list:
    	identifier
    	identifier identifier_list
    
  13. dialect_pragma:
    	++ ==>
    	assignment as bool permit ==>
    	bitfield overflow permit ==>
    	block function static permit ==>
    	character set_sign ==>
    	character escape overflow permit ==>
    	compatible type : char * == void * : permit ==> 
    	conditional lvalue dallow ==>
    	const conditional permit ==>
    	dollar as ident dallow ==>
    	directive pp_directive pp_spec ==>
    	directive as macro argument permit ==>
    	external volatile_t ==>
    	extra ; permit ==>
    	extra ; after conditional permit ==>
    	extra , permit ==>
    	extra bitfield int type permit ==>
    	extra macro definition dallow ==>
    	extra type definition permit ==>
    	forward enum declaration dallow ==>
    	floating point equality permit ==>
    	ident ... permit ==>
    	ignore struct/union/enum tag status ==> 
    	implicit int type for external declaration permit ==>
    	implicit int type for function return permit ==> 
    	includes depth integral_constant ==>
    	incompatible linkage permit ==>
    	incompatible promoted function argument dallow ==>
    	incompatible type qualifier dallow ==>
    	incomplete type as object type permit ==> 
    	indented # directive permit ==>
    	initialization of struct/union (auto) permit ==> 
    	linkage resolution : linkage_spec ==>
    	longlong type permit ==>
    	no directive/nline after ident permit ==> 
    	no external declaration permit ==>
    	no ident after # permit ==>
    	no nline after file end permit ==>
    	prototype permit ==>
    	prototype (weak) permit ==>
    	set longlong type : type_name ==>
    	set name limit integer_constant ==>
    	set size_t : type_name ==>
    	text after directive permit ==>
    	unify external linkage status ==>
    	unify incompatible string literal permit ==> 
    	unknown escape permit ==>
    	unknown pragma permit ==>
    	unknown struct/union dallow ==>
    	unknown directive permit ==>
    	unmatched quote permit ==>
    	variable initialization dallow ==>
    	weak macro equality permit ==>
    	writeable string literal permit ==>
    
  14. set_sign:
    	signed
    	unsign
    	either
    
  15. pp_directive:
    	file
    	ident
    	assert
    	unassert
    	weak
    
  16. pp_spec:
    	allow
    	warning
    	(ignore) allow
    	(ignore) warning
    
  17. linkage_spec:
    	(internal) on
    	(internal) warning
    	(external) on
    	(external) warning
    	off
    
  18. state:
    	on
    	warning
    	off
    
  19. permit:
    	allow
    	warning
    	disallow
    
  20. dallow:
    	allow
    	disallow
    
  21. token_pragma:
    	ARITHMETIC ==>
    	DEFINE MEMBER
    	EXP ==>
    	FUNC ==>
    	MEMBER ==>
    	NAT ==>
    	PROC ==>
    	STATEMENT ==>
    	STRUCT ==>
    	TYPE ==>
    	UNION ==>
    	VARIETY ==>
    
  22. token_operation:
    	define
    	no_def
    	extend
    	ignore
    	implement
    	interface
    	promote ==>
    
  23. integer_pragma:
    	integer literal lit_class_type_list ==>
    
  24. lit_class_type_list:
    	*int_type_spec
    	integer_constant int_type_spec | lit_class_type_list
    
  25. int_type_spec:
    	type_name
    	*warningopt : identifier
    	** :
    


Part of the TenDRA Web.
Crown Copyright © 1998.