summaryrefslogtreecommitdiff
path: root/src/core/symbol.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/symbol.c')
-rw-r--r--src/core/symbol.c122
1 files changed, 0 insertions, 122 deletions
diff --git a/src/core/symbol.c b/src/core/symbol.c
deleted file mode 100644
index f4ad990..0000000
--- a/src/core/symbol.c
+++ /dev/null
@@ -1,122 +0,0 @@
-/*:*
- *: File: ./src/core/symbol.c
- *: A simple interpreter
- *:
- *: WWW : http://fype.buetow.org
- *: AUTHOR : http://paul.buetow.org
- *: E-Mail : fype at dev.buetow.org
- *:
- *: Copyright (c) 2005 - 2009, Dipl.-Inform. (FH) Paul C. Buetow
- *: All rights reserved.
- *:
- *: Redistribution and use in source and binary forms, with or without modi-
- *: fication, are permitted provided that the following conditions are met:
- *: * Redistributions of source code must retain the above copyright
- *: notice, this list of conditions and the following disclaimer.
- *: * Redistributions in binary form must reproduce the above copyright
- *: notice, this list of conditions and the following disclaimer in the
- *: documentation and/or other materials provided with the distribution.
- *: * Neither the name of buetow.org nor the names of its contributors may
- *: be used to endorse or promote products derived from this software
- *: without specific prior written permission.
- *:
- *: THIS SOFTWARE IS PROVIDED BY PAUL C. BUETOW AS IS'' AND ANY EXPRESS OR
- *: IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- *: WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *: DISCLAIMED. IN NO EVENT SHALL PAUL C. BUETOW BE LIABLE FOR ANY DIRECT,
- *: INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- *: (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- *: SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *: HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- *: STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- *: IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- *: POSSIBILITY OF SUCH DAMAGE.
- *:*/
-
-#include "symbol.h"
-
-#include "../data/list.h"
-#include "token.h"
-
-Symbol*
-symbol_new(SymbolType sym, void *p_val) {
- Symbol *p_symbol = malloc(sizeof(Symbol));
-
- p_symbol->sym = sym;
- p_symbol->p_val = p_val;
- p_symbol->i_refs = 1;
-
- return p_symbol;
-}
-
-void
-symbol_delete(Symbol *p_symbol) {
- if (--p_symbol->i_refs == 0) {
- switch (symbol_get_sym(p_symbol)) {
- case SYM_PROCEDURE:
- {
- List *p_list_token = symbol_get_val(p_symbol);
- list_delete(p_list_token);
- }
- case SYM_ARRAY:
- symbol_delete(symbol_get_val(p_symbol));
- break;
- NO_DEFAULT;
- }
- free(p_symbol);
- }
-}
-
-void
-symbol_cleanup_hash_syms_cb(void *p_void) {
- symbol_delete(p_void);
-}
-
-void
-symbol_print(Symbol *p_symbol, char *c_key) {
- printf("%s: %s", sym_get_name(p_symbol->sym), c_key);
-
- switch (p_symbol->sym) {
- case SYM_BUILDIN:
- case SYM_CONSTANT:
- break;
- case SYM_PROCEDURE:
- case SYM_FUNCTION:
- //list_iterate(symbol_get_val(p_symbol), token_print_cb);
- break;
- case SYM_ARRAY:
- break;
- case SYM_VARIABLE:
- printf(" ");
- token_print(symbol_get_val(p_symbol));
- break;
- }
-
- printf("\n");
-}
-
-void
-symbol_print_cb(void *p_void, char *c_key) {
- symbol_print(p_void, c_key);
-}
-
-char*
-sym_get_name(SymbolType sym) {
- switch (sym) {
- case SYM_CONSTANT:
- return ("SYM_CONSTANT");
- case SYM_ARRAY:
- return ("SYM_ARRAY");
- case SYM_VARIABLE:
- return ("SYM_VARIABLE");
- case SYM_BUILDIN:
- return ("SYM_BUILDIN");
- case SYM_PROCEDURE:
- return ("SYM_PROCEDURE");
- case SYM_FUNCTION:
- return ("SYM_FUNCTION");
- }
-
- // Never reach this point
- return ("NONE");
-}