No Clock  1.0.2
instruction Struct Reference

Instruction. More...

#include <instruction.h>

Data Fields

instruction_annotation annotation
 
union {
   instruction_list *   block
 
   if_then_else   branch
 
   function_call   call
 
   for_loop   loop
 
} content
 
instruction_type type
 

Related Functions

(Note that these are not member functions.)

void for_loop_fprint (FILE *f, const for_loop *instr)
 Print a for loop to a stream. More...
 
void if_then_else_fprint (FILE *f, const if_then_else *instr)
 Print an if then else instruction to a stream. More...
 
instruction * instruction_advance (void)
 Build an advance. More...
 
instruction * instruction_alloc (void)
 Allocate an instruction. More...
 
instruction * instruction_async (instruction_list *block)
 Build an async block. More...
 
instruction_list * instruction_body (instruction *instr)
 Get an instruction's body. More...
 
void instruction_call_fprint (FILE *f, const function_call *instr)
 Print a function call to a stream. More...
 
instruction * instruction_clocked_async (instruction_list *block)
 Build a clocked async block. More...
 
instruction * instruction_clocked_finish (instruction_list *block)
 Build a clocked finish block. More...
 
instruction * instruction_finish (instruction_list *block)
 Build a finish block. More...
 
instruction * instruction_for_loop (char *identifier, expression *left, expression *right, instruction_list *body)
 Build a for loop. More...
 
instruction_list * instruction_for_loop_get_body (instruction *instr)
 Get a for loop's body. More...
 
char * instruction_for_loop_get_identifier (instruction *instr)
 Get a for loop's iterator identifier. More...
 
expression * instruction_for_loop_get_left_boundary (instruction *instr)
 Get a for loop's left boundary. More...
 
expression * instruction_for_loop_get_right_boundary (instruction *instr)
 Get a for loop's right boundary. More...
 
void instruction_for_loop_set_body (instruction *instr, instruction_list *body)
 Set a for loop's body. More...
 
void instruction_for_loop_set_identifier (instruction *instr, char *identifier)
 Set a for loop's identifier. More...
 
void instruction_for_loop_set_left_boundary (instruction *instr, expression *left)
 Set a for loop's left boundary. More...
 
void instruction_for_loop_set_right_boundary (instruction *instr, expression *right)
 Set a for loop's right boundary. More...
 
void instruction_fprint (FILE *f, const instruction *instr)
 Print an instruction into a stream. More...
 
void instruction_free (instruction *i)
 Free an instruction. More...
 
instruction * instruction_function_call (char *identifier, expression_list *arguments)
 Build a function call instruction. More...
 
expression_list * instruction_function_call_get_arguments (instruction *instr)
 Get a function call's arguments. More...
 
char * instruction_function_call_get_identifier (instruction *instr)
 Get a function call's identifier. More...
 
void instruction_function_call_set_arguments (instruction *instr, expression_list *arguments)
 Set a function call's arguments. More...
 
void instruction_function_call_set_identifier (instruction *instr, char *identifier)
 Set a function call's identifier. More...
 
instruction_type instruction_get_type (const instruction *instr)
 Get an instruction's type. More...
 
char * instruction_identifier (instruction *instr)
 Get an instruction's identifier. More...
 
instruction * instruction_if_then_else (bool has_else, expression *condition, instruction_list *true_body, instruction_list *false_body)
 Build a branch. More...
 
expression * instruction_if_then_else_get_condition (instruction *instr)
 Get a branch's condition. More...
 
instruction_list * instruction_if_then_else_get_false_body (instruction *instr)
 Get a branch's true body. More...
 
bool instruction_if_then_else_get_has_else (instruction *instr)
 Get a branch's if_then_else::has_else property. More...
 
instruction_list * instruction_if_then_else_get_true_body (instruction *instr)
 Get a branch's true body. More...
 
void instruction_if_then_else_set_condition (instruction *instr, expression *condition)
 Set a branching condition. More...
 
void instruction_if_then_else_set_false_body (instruction *instr, instruction_list *false_body)
 Set a branch's new false body. More...
 
void instruction_if_then_else_set_has_else (instruction *instr, bool has_else)
 Set a if_then_else::has_else property. More...
 
void instruction_if_then_else_set_true_body (instruction *instr, instruction_list *true_body)
 Set a branch's new true body. More...
 
instruction_list * instruction_other_get_block (instruction *instr)
 Get a X10 block wrapper's body. More...
 
void instruction_other_set_block (instruction *instr, instruction_list *block)
 Set a X10 construct's body. More...
 
void instruction_set_type (instruction *instr, instruction_type t)
 Set an instruction's type. More...
 

Detailed Description

Instruction.

Since
version 1.0.0

Field Documentation

instruction_annotation instruction::annotation

The annotation.

instruction_list* instruction::block

The block.

if_then_else instruction::branch

The branch.

function_call instruction::call

The function call.

union { ... } instruction::content

The instruction's content.

for_loop instruction::loop

The for loop.

instruction_type instruction::type

The instruction's type.