ext_def: external_def ;
ext_def  ::= ( external_def | ';' )?
no referencesexternal_def: data_dcl att_fct_def fct_def fct_dcl asm ( STRING ) ;
external_def
         ::= data_dcl
           | att_fct_def
           | fct_def
           | fct_dcl
           | 'asm' '(' STRING ')' ';'
referenced by: ext_def fct_dcl: decl ;
fct_dcl  ::= decl ';'
referenced by: cl_mem external_def att_fct_def: type decl arg_dcl_list base_init block
         ::= type decl arg_dcl_list base_init block
referenced by: cl_mem external_def statement fct_def: decl arg_dcl_list base_init block referenced by: cl_mem external_def base_init: : ( elist )
         ::= ( ':' '(' elist ')' )?
referenced by: att_fct_def fct_def arg_dcl_list: data_dcl
         ::= data_dcl*
referenced by: att_fct_def fct_def dl: decl = initializer ID : e
dl       ::= decl ( '=' initializer )?
           | ID? ':' e
referenced by: data_dcl data_dcl: type dl , ;
data_dcl ::= type ( dl ( ',' dl )* )? ';'
referenced by: arg_dcl_list cl_mem external_def statement tp: TYPE TNAME class_dcl enum_dcl AGGR enum tag
tp       ::= TYPE
           | TNAME
           | class_dcl
           | enum_dcl
           | ( AGGR | 'enum' ) tag
referenced by: type type: tp TYPE TNAME class_dcl enum_dcl AGGR enum tag
type     ::= tp ( TYPE | TNAME | class_dcl | enum_dcl | ( AGGR | 'enum' ) tag )*
referenced by: arg_type att_fct_def cast_type data_dcl new_type enum_dcl: enum tag { moe , }
enum_dcl ::= 'enum' tag? '{' moe ( ',' moe )* '}'
referenced by: tp type moe: ID = e
moe      ::= ( ID ( '=' e )? )?
referenced by: enum_dcl class_dcl: class_head mem_list } TYPE
         ::= class_head mem_list '}' TYPE?
referenced by: tp type class_head: AGGR tag : public tag {
         ::= AGGR ( tag ( ':' 'public'? tag )? )? '{'
referenced by: class_dcl tag: ID TNAME
tag      ::= ID
           | TNAME
referenced by: cl_mem class_head enum_dcl prim term tp type mem_list: cl_mem_list public : cl_mem_list
mem_list ::= cl_mem_list ( 'public' ':'? cl_mem_list )?
referenced by: class_dcl cl_mem_list: cl_mem
         ::= cl_mem*
referenced by: mem_list cl_mem: data_dcl att_fct_def fct_def ; fct_dcl tn_list tag ;
cl_mem   ::= data_dcl
           | ( att_fct_def | fct_def ) ';'?
           | fct_dcl
           | tn_list tag ';'
referenced by: cl_mem_list fname: ID ~ TNAME delete new operator oper c_type
fname    ::= ID
           | '~' TNAME
           | 'delete'
           | 'new'
           | 'operator' ( oper | c_type )
referenced by: decl oper: + - * & | ^ << == / RELOP && || ( ) [ ] ! ~ ICOP ASOP = new delete
oper     ::= '+'
           | '-'
           | '*'
           | '&'
           | '|'
           | '^'
           | '<<'
           | '=='
           | '/'
           | RELOP
           | '&&'
           | '||'
           | '(' ')'
           | '[' ']'
           | '!'
           | '~'
           | ICOP
           | ASOP
           | '='
           | 'new'
           | 'delete'
referenced by: fname prim tn_list: TNAME . TNAME ID
tn_list  ::= TNAME '.' ( ( TNAME | ID ) '.' )*
referenced by: cl_mem decl decl: decl TNAME arg_list ( elist ) vec ID . fname tn_list fname TNAME ptr decl TNAME ( decl ) arg_list vec
decl     ::= ( decl | TNAME ) ( arg_list | '(' elist ')' | vec )
           | ( ID '.' )? fname
           | tn_list ( fname | TNAME )
           | ptr ( decl | TNAME )
           | '(' decl ')' ( arg_list | vec )
referenced by: att_fct_def decl dl fct_dcl fct_def arg_decl: ID ptr arg_decl arg_decl vec ( arg_decl ) arg_list vec
arg_decl ::= ( ID | ptr arg_decl | arg_decl vec | '(' arg_decl ')' ( arg_list | vec ) )?
referenced by: arg_decl arg_type new_decl: ptr new_decl new_decl vec referenced by: new_decl new_type cast_decl: ptr cast_decl cast_decl vec ( cast_decl ) arg_list vec
         ::= ( ptr cast_decl | cast_decl vec | '(' cast_decl ')' ( arg_list | vec ) )?
referenced by: cast_decl cast_type condition: ( e )
         ::= '(' e ')'
referenced by: simple statement block: { statement }
block    ::= '{' statement* '}'
referenced by: att_fct_def fct_def statement simple: return delete e break continue goto ID do statement while condition
simple   ::= ( 'return' | 'delete' )? e
           | 'break'
           | 'continue'
           | 'goto' ID
           | 'do' statement 'while' condition
referenced by: statement statement: simple asm ( STRING ) ; data_dcl att_fct_def block if condition statement else while switch condition ID case e default : for ( CAST statement e ; e ) statement
         ::= ( simple | 'asm' '(' STRING ')' ) ';'
           | data_dcl
           | att_fct_def
           | block
           | ( 'if' condition ( statement 'else' )? | ( 'while' | 'switch' ) condition | ( ID | 'case' e | 'default' ) ':' | 'for' ( '(' | CAST ) statement e ';' e ')' ) statement
referenced by: block simple statement elist: initializer ,
elist    ::= initializer ( ',' initializer )*
referenced by: base_init decl initializer term initializer: e { elist }
         ::= e
           | '{' elist '}'
referenced by: arg_type dl elist e: e = + - * & | ^ << == / RELOP && || ASOP , ? e : e term
e        ::= e ( '=' | '+' | '-' | '*' | '&' | '|' | '^' | '<<' | '==' | '/' | RELOP | '&&' | '||' | ASOP | ',' | '?' e ':' ) e
           | term
referenced by: condition dl e initializer moe simple statement term vec term: TYPE TNAME ( elist ( e ) new new_type ( new_type ) term ICOP [ e ] ( elist ) REF . prim TNAME CAST cast_type ) * & - ! ~ ICOP sizeof term MEM tag prim ZERO ICON FCON STRING CCON this
term     ::= ( ( ( TYPE | TNAME ) '(' elist | '(' e ) ')' | 'new' ( new_type | '(' new_type ')' ) | term ( ICOP | '[' e ']' | '(' elist ')' | ( REF | '.' ) ( prim | TNAME ) ) | ( CAST cast_type ')' | '*' | '&' | '-' | '!' | '~' | ICOP | 'sizeof' ) term | MEM tag | prim | ZERO | ICON | FCON | STRING | CCON | 'this' )?
referenced by: e term prim: ID TNAME MEM tag operator oper operator oper
prim     ::= ID
           | TNAME MEM ( tag | 'operator' oper )
           | 'operator' oper
referenced by: term cast_type: type cast_decl
         ::= type cast_decl
referenced by: term c_tp: TYPE TNAME
c_tp     ::= TYPE
           | TNAME
referenced by: c_type c_type: c_tp ptr
c_type   ::= c_tp ptr*
referenced by: fname new_type: type new_decl referenced by: term arg_type: type arg_decl = initializer referenced by: at arg_list: CAST ( at , , ... )
arg_list ::= ( CAST | '(' ) at ( ',' at )* ( ','? '...' )? ')'
referenced by: arg_decl cast_decl decl at: arg_type
at       ::= arg_type?
referenced by: arg_list ptr: * & TYPE
ptr      ::= ( '*' | '&' ) TYPE?
referenced by: arg_decl c_type cast_decl decl new_decl vec: [ e ]
vec      ::= '[' e ']'
referenced by: arg_decl cast_decl decl new_decl   ... generated by RR - Railroad Diagram Generator R R