GCC Middle and Back End API Reference
c_expr Class Reference
Inheritance diagram for c_expr:
Collaboration diagram for c_expr:

Data Structures

class  id_tab
 

Public Types

enum  op_type {
  OP_PREDICATE , OP_EXPR , OP_CAPTURE , OP_C_EXPR ,
  OP_IF , OP_WITH
}
 

Public Member Functions

 c_expr (cpp_reader *r_, location_t loc, vec< cpp_token > code_, unsigned nr_stmts_, vec< id_tab > ids_, cid_map_t *capture_ids_)
 
void gen_transform (FILE *f, int, const char *, bool, int, const char *, capture_info *, dt_operand **=0, int=0) final override
 

Data Fields

cpp_reader * r
 
vec< cpp_token > code
 
cid_map_tcapture_ids
 
unsigned nr_stmts
 
vec< id_tabids
 
enum op_type type
 
location_t location
 

Detailed Description

An operator that is represented by native C code.  This is always
a leaf operand in the AST.  This class is also used to represent
the code to be generated for 'if' and 'with' expressions.   

Member Enumeration Documentation

◆ op_type

enum operand::op_type
inherited
Enumerator
OP_PREDICATE 
OP_EXPR 
OP_CAPTURE 
OP_C_EXPR 
OP_IF 
OP_WITH 

Constructor & Destructor Documentation

◆ c_expr()

c_expr::c_expr ( cpp_reader * r_,
location_t loc,
vec< cpp_token > code_,
unsigned nr_stmts_,
vec< id_tab > ids_,
cid_map_t * capture_ids_ )
inline

Referenced by parser::parse_c_expr(), and replace_id().

Member Function Documentation

◆ gen_transform()

void c_expr::gen_transform ( FILE * f,
int indent,
const char * dest,
bool ,
int ,
const char * ,
capture_info * ,
dt_operand ** = 0,
int = 0 )
finaloverridevirtual
Generate code for a c_expr which is either the expression inside
an if statement or a sequence of statements which computes a
result to be stored to DEST.   

Reimplemented from operand.

References capture_ids, code, fatal_at(), fprintf_indent(), fputc(), hash_map< KeyId, Value, Traits >::get(), i, ids, line_table, map, nr_stmts, and r.

Field Documentation

◆ capture_ids

◆ code

vec<cpp_token> c_expr::code

◆ ids

vec<id_tab> c_expr::ids

◆ location

◆ nr_stmts

unsigned c_expr::nr_stmts

◆ r

◆ type


The documentation for this class was generated from the following file: