phoebe_constraints

phoebe_constraints

Synopsis

enum                PHOEBE_node_type;
                    PHOEBE_ast;
                    PHOEBE_ast_value;
                    PHOEBE_ast_list;
PHOEBE_ast_list*    phoebe_ast_construct_list           (PHOEBE_ast *ast,
                                                         PHOEBE_ast_list *list);
PHOEBE_ast_list*    phoebe_ast_list_reverse             (PHOEBE_ast_list *c,
                                                         PHOEBE_ast_list *p);
int                 phoebe_ast_list_length              (PHOEBE_ast_list *list);
PHOEBE_ast*         phoebe_ast_add_index                (int idx);
PHOEBE_ast*         phoebe_ast_add_numval               (double numval);
PHOEBE_ast*         phoebe_ast_add_builtin              (char *builtin);
PHOEBE_ast*         phoebe_ast_add_parameter            (char *qualifier);
PHOEBE_ast*         phoebe_ast_add_node                 (PHOEBE_node_type type,
                                                         PHOEBE_ast_list *args);
PHOEBE_ast*         phoebe_ast_duplicate                (PHOEBE_ast *ast);
PHOEBE_ast_value    phoebe_ast_evaluate                 (PHOEBE_ast *ast);
int                 phoebe_ast_print                    (int depth,
                                                         PHOEBE_ast *in);
int                 phoebe_ast_free                     (PHOEBE_ast *ast);
int                 phoebe_constraint_new               (const char *constraint);
char*               phoebe_constraint_get_qualifier     (PHOEBE_ast *constraint);
int                 phoebe_constraint_satisfy_all       ();
int                 phoebe_free_constraints             ();
int                 pcparse                             (void);

Description

Details

enum PHOEBE_node_type

typedef enum {
	PHOEBE_NODE_TYPE_CONSTRAINT,
	PHOEBE_NODE_TYPE_PARAMETER,
	PHOEBE_NODE_TYPE_ADD,
	PHOEBE_NODE_TYPE_SUB,
	PHOEBE_NODE_TYPE_MUL,
	PHOEBE_NODE_TYPE_DIV,
	PHOEBE_NODE_TYPE_POT,
	PHOEBE_NODE_TYPE_BUILTIN
} PHOEBE_node_type;


PHOEBE_ast

typedef struct {
	enum {
		PHOEBE_AST_INDEX,
		PHOEBE_AST_NUMVAL,
		PHOEBE_AST_STRING,
		PHOEBE_AST_PARAMETER,
		PHOEBE_AST_NODE
	} type;
	union {
		int    idx;
		double numval;
		char  *str;
		struct {
			PHOEBE_node_type        type;
			struct PHOEBE_ast_list *args;
		} node;
	} val;
} PHOEBE_ast;


PHOEBE_ast_value

typedef struct {
	enum {
		PHOEBE_AST_VALUE_VOID,
		PHOEBE_AST_VALUE_INT,
		PHOEBE_AST_VALUE_DOUBLE,
		PHOEBE_AST_VALUE_STRING,
		PHOEBE_AST_VALUE_PARAMETER
	} type;
	union {
		int               idx;
		double            numval;
		char             *str;
	} val;
} PHOEBE_ast_value;


PHOEBE_ast_list

typedef struct {
	PHOEBE_ast *elem;
	struct PHOEBE_ast_list *next;
} PHOEBE_ast_list;


phoebe_ast_construct_list ()

PHOEBE_ast_list*    phoebe_ast_construct_list           (PHOEBE_ast *ast,
                                                         PHOEBE_ast_list *list);

ast :

list :

Returns :


phoebe_ast_list_reverse ()

PHOEBE_ast_list*    phoebe_ast_list_reverse             (PHOEBE_ast_list *c,
                                                         PHOEBE_ast_list *p);

c :

p :

Returns :


phoebe_ast_list_length ()

int                 phoebe_ast_list_length              (PHOEBE_ast_list *list);

list :

Returns :


phoebe_ast_add_index ()

PHOEBE_ast*         phoebe_ast_add_index                (int idx);

idx :

Returns :


phoebe_ast_add_numval ()

PHOEBE_ast*         phoebe_ast_add_numval               (double numval);

numval :

Returns :


phoebe_ast_add_builtin ()

PHOEBE_ast*         phoebe_ast_add_builtin              (char *builtin);

builtin :

Returns :


phoebe_ast_add_parameter ()

PHOEBE_ast*         phoebe_ast_add_parameter            (char *qualifier);

qualifier :

Returns :


phoebe_ast_add_node ()

PHOEBE_ast*         phoebe_ast_add_node                 (PHOEBE_node_type type,
                                                         PHOEBE_ast_list *args);

type :

args :

Returns :


phoebe_ast_duplicate ()

PHOEBE_ast*         phoebe_ast_duplicate                (PHOEBE_ast *ast);

ast :

Returns :


phoebe_ast_evaluate ()

PHOEBE_ast_value    phoebe_ast_evaluate                 (PHOEBE_ast *ast);

ast :

Returns :


phoebe_ast_print ()

int                 phoebe_ast_print                    (int depth,
                                                         PHOEBE_ast *in);

depth :

in :

Returns :


phoebe_ast_free ()

int                 phoebe_ast_free                     (PHOEBE_ast *ast);

ast :

Returns :


phoebe_constraint_new ()

int                 phoebe_constraint_new               (const char *constraint);

constraint :

Returns :


phoebe_constraint_get_qualifier ()

char*               phoebe_constraint_get_qualifier     (PHOEBE_ast *constraint);

constraint :

Returns :

a newly allocated qualifier that appears in the constraint.

phoebe_constraint_satisfy_all ()

int                 phoebe_constraint_satisfy_all       ();

Returns :


phoebe_free_constraints ()

int                 phoebe_free_constraints             ();

Returns :


pcparse ()

int                 pcparse                             (void);

Returns :