diff options
Diffstat (limited to 'src/parse.y')
-rw-r--r-- | src/parse.y | 33 |
1 files changed, 10 insertions, 23 deletions
diff --git a/src/parse.y b/src/parse.y index 4fcba12..7b46368 100644 --- a/src/parse.y +++ b/src/parse.y @@ -5,54 +5,41 @@ %source { typedef std::vector<std::pair<std::string, bool>> vars_t; typedef std::pair<std::vector<solar::symbol_t>, vars_t> rhs_t; - - -static inline void free_string(std::string *v) { - delete v; -} - -static inline void free_symbol(solar::symbol_t *v) { - delete v; -} - -static inline void free_rhs(rhs_t *v) { - delete v; -} } %type SYMBOL {std::string *} str -%destructor SYMBOL free_string +%destructor SYMBOL delete %type SYMBOL_UC {std::string *} str -%destructor SYMBOL_UC free_string +%destructor SYMBOL_UC delete %type BLOCK {std::string *} str -%destructor BLOCK free_string +%destructor BLOCK delete %type SQBLOCK {std::string *} str -%destructor SQBLOCK free_string +%destructor SQBLOCK delete %type STRING {std::string *} str -%destructor STRING free_string +%destructor STRING delete %type CHAR {unsigned char} c %type rhs {rhs_t *} -%destructor rhs free_rhs +%destructor rhs delete %type action {std::string *} -%destructor action free_string +%destructor action delete %type symbol {solar::symbol_t *} -%destructor symbol free_symbol +%destructor symbol delete %type term {solar::symbol_t *} -%destructor term free_symbol +%destructor term delete %type varname {std::string *} -%destructor varname free_string +%destructor varname delete %extra_arg {__attribute__((unused)) solar::grammar_t *} grammar |