summaryrefslogtreecommitdiffstats
path: root/src/parse.y
diff options
context:
space:
mode:
Diffstat (limited to 'src/parse.y')
-rw-r--r--src/parse.y33
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