1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- #ifndef __ELEMENT_H__
- #define __ELEMENT_H__
- #include "list.h"
- enum element_type
- {
- TYPE_ATOM,
- TYPE_STRING,
- TYPE_NUMBER,
- TYPE_TUPLE,
- TYPE_STATEMENT
- };
- typedef struct element
- {
- list_t link;
- int type;
- union
- {
- struct
- {
- const char *name;
- int global;
- } atom;
- struct
- {
- const char *value;
- } string;
- struct
- {
- double value;
- } number;
- struct
- {
- list_t list;
- } tuple;
- struct
- {
- const char *name;
- list_t parameters;
- } statement;
- };
- } element_t;
- element_t *create_atom(const char *name, int global);
- element_t *create_string(const char *value);
- element_t *create_number(double value);
- element_t *create_tuple(list_t *list);
- element_t *create_statement(const char *name, list_t *parameters);
- #endif
|