No Clock  1.0.2
expression Struct Reference

Expression. More...

#include <expression.h>

Data Fields

union {
   char *   identifier
 
   long int   number
 
   struct {
      struct expression *   left
 
      struct expression *   right
 
   }   operands
 
} content
 
expression_type type
 

Related Functions

(Note that these are not member functions.)

expression * expression_add (expression *a, expression *b)
 Add two expressions. More...
 
expression * expression_alloc (void)
 Allocate and initialize an expression. More...
 
expression * expression_and (expression *a, expression *b)
 Conjunction of two expressions. More...
 
void expression_clean (expression *e)
 Clean an expression. More...
 
expression * expression_copy (const expression *e)
 Copy an expression. More...
 
expression * expression_div (expression *a, expression *b)
 Divide two expressions. More...
 
expression * expression_eq (expression *a, expression *b)
 Equals. More...
 
void expression_fprint (FILE *f, const expression *e)
 Write an expression to an output stream. More...
 
void expression_free (expression *e)
 Free an expression. More...
 
expression * expression_from_boolean (bool boolean)
 Create an expression from a boolean. More...
 
expression * expression_from_identifier (const char *identifier)
 Create an expression from an identifier. More...
 
expression * expression_from_number (long int number)
 Create an expression from a number. More...
 
expression * expression_ge (expression *a, expression *b)
 Greater or equals. More...
 
bool expression_get_boolean (const expression *e)
 Get an expression's boolean. More...
 
const char * expression_get_identifier (const expression *e)
 Get an expression's identifier. More...
 
expression * expression_get_left (const expression *e)
 Get an expression's left operand. More...
 
long int expression_get_number (const expression *e)
 Get an expression's number. More...
 
expression * expression_get_right (const expression *e)
 Get an expression's right operand. More...
 
expression_type expression_get_type (const expression *e)
 Get an expression's type. More...
 
expression * expression_gt (expression *a, expression *b)
 Greater than. More...
 
void expression_init (expression *e)
 Initialize an expression. More...
 
bool expression_is_boolean (const expression *e)
 Determine whether an expression is a boolean expression. More...
 
bool expression_is_false (const expression *e)
 Determine whether an expression is false. More...
 
bool expression_is_identifier (const expression *e)
 Determine whether an expression is an identifier. More...
 
bool expression_is_number (const expression *e)
 Determine whether an expression is a number expression. More...
 
bool expression_is_one (const expression *e)
 Determine whether an expression is 1. More...
 
bool expression_is_true (const expression *e)
 Determine whether an expression is true. More...
 
bool expression_is_zero (const expression *e)
 Determine whether an expression is 0. More...
 
expression * expression_le (expression *a, expression *b)
 Lower or equals. More...
 
expression * expression_lt (expression *a, expression *b)
 Lower than. More...
 
expression * expression_max (expression *a, expression *b)
 Maximum of two expressions. More...
 
expression * expression_min (expression *a, expression *b)
 Minimum of two expressions. More...
 
expression * expression_mult (expression *a, expression *b)
 Multiply two expressions. More...
 
expression * expression_ne (expression *a, expression *b)
 Differs. More...
 
expression * expression_neg (expression *e)
 Negate an expression. More...
 
expression * expression_not (expression *e)
 Not an expression. More...
 
expression * expression_or (expression *a, expression *b)
 Disjunction of two expressions. More...
 
void expression_print (const expression *e)
 Write an expression to stdout. More...
 
void expression_set_boolean (expression *e, bool boolean)
 Set the boolean value of a boolean expression. More...
 
void expression_set_identifier (expression *e, const char *identifier)
 Set the identifier of an identifier expression. More...
 
void expression_set_left_operand (expression *e, expression *left)
 Set the left operand of a binary expression. More...
 
void expression_set_number (expression *e, long int number)
 Set the value of a number expression. More...
 
void expression_set_right_operand (expression *e, expression *right)
 Set the right operand of a binary expression. More...
 
void expression_set_type (expression *e, expression_type t)
 Set the type of an expression. More...
 
expression * expression_sub (expression *a, expression *b)
 Substract two expressions. More...
 
char * expression_to_string (const expression *e)
 Convert an expression to a string. More...
 

Detailed Description

Expression.

Since
version 1.0.0

Field Documentation

union { ... } expression::content

The expression's content.

char* expression::identifier

The expression's identifier.

struct expression* expression::left

The left operand.

long int expression::number

The expression's number.

struct { ... } expression::operands

The expression's operands.

struct expression* expression::right

The right operand.

expression_type expression::type

The expression's type.