#include #include #include inline List Repetition::get_child() { return child; } inline List Repetition::set_child(List new_child) { class List _old_child = child; child = new_child; return(_old_child); } inline char *Terminal::get_val() { return val; } inline char *Terminal::set_val(char *new_val) { char *_old_val = val; val = new_val; return(_old_val); } inline Ident::Ident(char *token = NULL) { if (token != NULL) { val = new char[strlen(token) + 1]; strcpy(val, token); } else { val = NULL; } } inline Ident::~Ident() { delete val; } inline Number::Number(int token) { val = (char *) new int; *((int *) val) = token; } inline Number::Number(char *token = NULL) { val = (char *) new int; if (token != NULL) { *((int *) val) = atoi(token); } else { *((int *) val) = 0; } } inline Number::~Number() { delete val; } inline int Number::get_val() { return *((int *) val); } inline int Number::set_val(int new_val) { int _old_val = *((int *) val); *((int *) val) = new_val; return(_old_val); } inline int Number::set_val(char *new_val) { int _old_val = *((int *) val); *((int *) val) = atoi(new_val); return(_old_val); }