Main Page | Modules | Data Structures | File List | Data Fields | Globals | Related Pages

pdl_rule.h File Reference

Include file for using the pdl rules. More...

#include "pdl.h"

Go to the source code of this file.

Data Structures

struct  rule_s
 Structure keeps track of the state and the true/false braches. More...


Typedefs

typedef rule_s rule_t
 Structure keeps track of the state and the true/false braches.


Enumerations

enum  rule_type_t { STATE, TRUE_BRANCH, FALSE_BRANCH }
 Which type is the current rule. More...

enum  recursion_t { NO_RECURSION = 0x00, RECURSION = 0x01, RECURSION_HANDLED = 0x02 }
 Tell something about recursion in rules. More...

enum  side_t { left_side, right_side }
 Given a rule, which side of the rule are we working on. More...


Functions

rule_tadd_rule (record_t *state, record_t *true_branch, record_t *false_branch)
void free_rules (rule_t *rule)
void show_rules (const rule_t *rule)
void start_new_rules (void)
const rule_tget_top_rule (void)
void allow_new_rules (BOOL allow)
void set_top_rule (const rule_t *rule)
BOOL check_rule_for_recursion (const rule_t *rule)
void reduce_rule (rule_t *rule)


Detailed Description

Include file for using the pdl rules.

Author:
G.M. Venekamp (venekamp@nikhef.nl)
Version:
Revision
1.12
Date:
Date
2004/10/13 16:37:58

Definition in file pdl_rule.h.


Enumeration Type Documentation

enum recursion_t
 

Tell something about recursion in rules.

Enumeration values:
NO_RECURSION  There is no known recursion.
RECURSION  Recursion has been found.
RECURSION_HANDLED  Recursion has been found and handled/reported.

Definition at line 69 of file pdl_rule.h.

Referenced by check_rule_for_recursion(), and has_recursion().

enum rule_type_t
 

Which type is the current rule.

Enumeration values:
STATE  State.
TRUE_BRANCH  True branch.
FALSE_BRANCH  False branch.

Definition at line 59 of file pdl_rule.h.

enum side_t
 

Given a rule, which side of the rule are we working on.

Enumeration values:
left_side  left side, i.e. state part of the rule.
right_side  right side, i.e. either true or false branch.

Definition at line 79 of file pdl_rule.h.


Function Documentation

rule_t* add_rule record_t state,
record_t true_branch,
record_t false_branch
 

Add a new rule to the list of rules. This function acts as a wrapper function for _add_rule().

Parameters:
state Starting state
true_branch True transit state
false_branch False transit state

Definition at line 93 of file pdl_rule.c.

References _add_rule(), record_t, rule_t, and record_s::string.

void allow_new_rules BOOL  allow  ) 
 

Is it allowed to add new rules?

Parameters:
allow TRUE if adding new rules is allowed, FALSE otherwise.

Definition at line 78 of file pdl_rule.c.

Referenced by allow_rules().

BOOL check_rule_for_recursion const rule_t rule  ) 
 

Check the rule for occurances of recursion.

Returns:
TRUE if a recursion have been found, FALSE otherwise.

Definition at line 228 of file pdl_rule.c.

References count_rules(), get_rule_number(), has_recursion(), rule_s::lineno, lineno, PDL_WARNING, RECURSION, recursion_t, rule_t, TRUE, and warning().

Referenced by check_policies_for_recursion().

void free_rules rule_t rule  ) 
 

Free all resources associated with the rules.

Parameters:
rule Rule for which the resources must be freed.

Definition at line 645 of file pdl_rule.c.

References rule_s::false_branch, rule_s::next, rule_t, rule_s::state, and rule_s::true_branch.

Referenced by add_policy(), and free_policies().

const rule_t* get_top_rule void   ) 
 

Get the top rule.

Returns:
Top rule.

Definition at line 666 of file pdl_rule.c.

References rule_t.

void reduce_rule rule_t rule  ) 
 

Reduce a rule to its elementry form, i.e. all variables in the rule are substituted by their respective values.

Parameters:
rule Rule to reduce.

Definition at line 566 of file pdl_rule.c.

References FALSE_BRANCH, rule_s::false_branch, reduce_to_var(), rule_t, STATE, rule_s::state, TRUE_BRANCH, and rule_s::true_branch.

Referenced by reduce_policies().

void set_top_rule const rule_t rule  ) 
 

Set the top rule to a new value.

Parameters:
rule New value of top rule.

Definition at line 678 of file pdl_rule.c.

References rule_t.

Referenced by free_policies(), and reduce_policies().

void show_rules const rule_t rule  ) 
 

Show a rule and its descendants.

Parameters:
rule Rule to display.

Definition at line 623 of file pdl_rule.c.

References rule_s::false_branch, lcmaps_log_debug(), rule_s::next, rule_t, rule_s::state, and rule_s::true_branch.

Referenced by show_policies().

void start_new_rules void   ) 
 

Start a new list of rules.

Definition at line 65 of file pdl_rule.c.

Referenced by add_policy().


Generated on Sun May 29 21:22:13 2005 for lcmaps by doxygen 1.3.5