pragma_syntax:
#pragma TenDRA tendra_pragma #pragma token token_pragma #pragma token_operation #pragma integer_pragma
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
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 ==>
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 ) ==>
discard_spec:
empty ( function return ) ==> ( static ) ==> ( value ) ==>
keyword_spec:
discard value ==> discard variable ==> exhaustive ==> fall into case ==> set ==> set reachable ==> set unreachable ==> type representation ==> weak ==>
type_spec:
bottom ==> ... printf ==> ... scanf ==>
check_pragma:
implicit function declaration state ==> incompatible interface declaration permit ==> incompatible void return permit ==>
variable_pragma:
discard identifier separator ==> preserve identifier_list ==> set identifier separator ==> suspend static identifier_list ==> exhaustive ==>
separator:
; ,
identifier_list:
identifier identifier identifier_list
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 ==>
set_sign:
signed unsign either
pp_directive:
file ident assert unassert weak
pp_spec:
allow warning (ignore) allow (ignore) warning
linkage_spec:
(internal) on (internal) warning (external) on (external) warning off
state:
on warning off
permit:
allow warning disallow
dallow:
allow disallow
token_pragma:
ARITHMETIC ==> DEFINE MEMBER EXP ==> FUNC ==> MEMBER ==> NAT ==> PROC ==> STATEMENT ==> STRUCT ==> TYPE ==> UNION ==> VARIETY ==>
token_operation:
define no_def extend ignore implement interface promote ==>
integer_pragma:
integer literal lit_class_type_list ==>
lit_class_type_list:
*int_type_spec integer_constant int_type_spec | lit_class_type_list
int_type_spec:
type_name *warningopt : identifier ** :
Part of the TenDRA Web.
Crown
Copyright © 1998.