summaryrefslogtreecommitdiff
path: root/src/fype.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/fype.c')
-rw-r--r--src/fype.c42
1 files changed, 25 insertions, 17 deletions
diff --git a/src/fype.c b/src/fype.c
index cc22c03..af61c1d 100644
--- a/src/fype.c
+++ b/src/fype.c
@@ -1,12 +1,12 @@
/*:*
*: File: ./src/fype.c
- *: A simple Fype interpreter
+ *: A simple interpreter
*:
- *: WWW: http://fype.buetow.org
- *: AUTHOR: http://paul.buetow.org
- *: E-Mail: fype at dev.buetow.org
+ *: WWW : http://fype.buetow.org
+ *: E-Mail : fype@dev.buetow.org
*:
- *: The Fype Language; (c) 2005 - 2010 - Dipl.-Inform. (FH) Paul C. Buetow
+ *: Copyright (c) 2005 2006 2007 2008, Dipl.-Inf. (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:
@@ -15,14 +15,14 @@
*: * 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
+ *: * Neither the name of P. B. Labs 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
+ *: THIS SOFTWARE IS PROVIDED BY Paul 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,
+ *: DISCLAIMED. IN NO EVENT SHALL Paul 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)
@@ -35,46 +35,54 @@
#include "fype.h"
#include "argv.h"
-#include "core/scanner.h"
-#include "core/token.h"
+#include "core/garbage.h"
#include "core/interpret.h"
+#include "core/scanner.h"
+#include "core/symbol.h"
-PBSc*
+Fype*
fype_new() {
- PBSc *p_fype = malloc(sizeof(PBSc));
+ Fype *p_fype = malloc(sizeof(Fype));
p_fype->p_hash_syms = hash_new(512);
p_fype->p_list_token = list_new();
p_fype->p_tupel_argv = tupel_new();
p_fype->c_basename = NULL;
+ garbage_init();
+
return (p_fype);
}
void
-fype_delete(PBSc *p_fype) {
+fype_delete(Fype *p_fype) {
argv_tupel_delete(p_fype->p_tupel_argv);
+ hash_iterate(p_fype->p_hash_syms, symbol_cleanup_hash_syms_cb);
hash_delete(p_fype->p_hash_syms);
- list_iterate(p_fype->p_list_token, token_delete_cb);
+ //list_iterate(p_fype->p_list_token, token_print_cb);
+ list_iterate(p_fype->p_list_token, token_ref_down_cb);
+ //list_iterate(p_fype->p_list_token, token_print_cb);
list_delete(p_fype->p_list_token);
if (p_fype->c_basename)
free(p_fype->c_basename);
+
+ garbage_destroy();
}
int
fype_run(int i_argc, char **pc_argv) {
- PBSc *p_fype = fype_new();
+ Fype *p_fype = fype_new();
// argv: Maintains command line options
argv_run(p_fype, i_argc, pc_argv);
- // scanner: Fills the list of tokens
+ // scanner: Creates a list of token
scanner_run(p_fype);
- // interpret: Interprets the list of tokens
+ // interpret: Interpret the list of token
interpret_run(p_fype);
fype_delete(p_fype);