]> git.mdlowis.com Git - proto/sclpl.git/commitdiff
removed vector references from libparse
authorMichael D. Lowis <mike@mdlowis.com>
Sat, 10 Oct 2015 01:17:19 +0000 (21:17 -0400)
committerMichael D. Lowis <mike@mdlowis.com>
Sat, 10 Oct 2015 01:17:19 +0000 (21:17 -0400)
source/libparse/libparse.h
source/libparse/parser.c
source/libparse/tree.c [deleted file]

index 3499d435504b601181b7470ded5e2ff8f52f8fc2..83f69febbb2b8c4a79f9ff093ad83a6e0af893d7 100644 (file)
@@ -13,7 +13,6 @@
 #include <stdio.h>
 #include <errno.h>
 #include "mem.h"
-#include "vec.h"
 #include "exn.h"
 
 /* Token Types
@@ -73,7 +72,7 @@ typedef struct AST {
             struct AST* body;
         } func;
         /* Code Block */
-        vec_t block;
+        //vec_t block;
         /* String */
         char* stringval;
         /* Symbol */
@@ -161,7 +160,6 @@ typedef struct {
     FILE* input;
     char* prompt;
     Tok* tok;
-    vec_t* stack;
 } Parser;
 
 // Lexer routines
@@ -179,28 +177,6 @@ bool accept(Parser* p_parser, TokType type);
 bool accept_str(Parser* p_parser, TokType type, const char* p_text);
 bool expect(Parser* p_parser, TokType type);
 bool expect_str(Parser* p_parser, TokType type, const char* p_text);
-Tok* shifttok(Parser* parser, TokType type);
-
-//size_t stack_push(Parser* ctx, AST* node);
-//AST* stack_pop(Parser* ctx);
-//AST* stack_get(Parser* ctx, int index);
-
-
-
-//size_t mark(Parser* p_parser);
-//void reduce(Parser* p_parser, size_t mark);
-//AST* get_tree(Parser* p_parser);
-//void insert(Parser* p_parser, TokType type, char* value);
-
-#if 0
-// AST Routines
-AST* tree_convert(AST* p_tree);
-AST* tree_new(ASTType tag, void* p_obj);
-AST* tree_get_child(AST* p_tree, size_t idx);
-void* tree_get_val(AST* p_tree);
-void* tree_get_child_val(AST* p_tree, size_t idx);
-bool tree_is_formtype(AST* p_tree, const char* val);
-#endif
 
 // Grammar Routines
 AST* toplevel(Parser* p);
index ba81c40b1f7e274b9cf1854bacf5ef93a611c408..35323ce58d1591433675650a63183fdc3e876a73 100644 (file)
@@ -15,7 +15,7 @@ static void parser_free(void* obj) {
     if ((NULL != parser->tok) && (&tok_eof != parser->tok)) {
         mem_release(parser->tok);
     }
-    mem_release(parser->stack);
+    //mem_release(parser->stack);
 }
 
 Parser* parser_new(char* prompt, FILE* input)
@@ -27,7 +27,7 @@ Parser* parser_new(char* prompt, FILE* input)
     parser->input   = input;
     parser->prompt  = prompt;
     parser->tok     = NULL;
-    parser->stack = vec_new(0);
+    //parser->stack = vec_new(0);
     return parser;
 }
 
@@ -54,7 +54,7 @@ void parser_resume(Parser* parser) {
         mem_release(parser->tok);
         parser->tok = NULL;
     }
-    vec_clear(parser->stack);
+    //vec_clear(parser->stack);
     /* We ignore the rest of the current line and attempt to start parsing
      * again on the next line */
     fetchline(parser);
@@ -72,7 +72,7 @@ Tok* shifttok(Parser* parser, TokType type)
 {
     Tok* tok = NULL;
     if (peek(parser)->type == type) {
-        vec_push_back(parser->stack, parser->tok);
+        //vec_push_back(parser->stack, parser->tok);
         parser->tok = NULL;
     } else {
         error(parser, "Unexpected token");
@@ -122,20 +122,3 @@ bool expect_str(Parser* parser, TokType type, const char* text)
     return ret;
 }
 
-size_t stack_push(Parser* ctx, AST* node)
-{
-    vec_push_back(ctx->stack, node);
-    return vec_size(ctx->stack)-1;
-}
-
-AST* stack_pop(Parser* ctx)
-{
-    return (AST*)vec_pop_back(ctx->stack);
-}
-
-AST* stack_get(Parser* ctx, int index)
-{
-    index = (index < 0) ? (vec_size(ctx->stack)+index) : index;
-    return (AST*)vec_at(ctx->stack, (size_t)index);
-}
-
diff --git a/source/libparse/tree.c b/source/libparse/tree.c
deleted file mode 100644 (file)
index 598dea1..0000000
+++ /dev/null
@@ -1,99 +0,0 @@
-/**
-  @file tree.c
-  @brief See header for details
-  $Revision$
-  $HeadURL$
-  */
-#include <libparse.h>
-
-#if 0
-static void tree_free(void* p_obj) {
-    AST* p_tree = ((AST*)p_obj);
-    if (NULL != p_tree->ptr.tok) {
-        mem_release(p_tree->ptr.tok);
-    }
-}
-
-static bool is_punctuation(Tok* p_tok) {
-    bool ret = false;
-    switch(p_tok->type) {
-        case T_END:
-        case T_LBRACE:
-        case T_RBRACE:
-        case T_LBRACK:
-        case T_RBRACK:
-        case T_LPAR:
-        case T_RPAR:
-        case T_COMMA:
-            ret = true;
-        default:
-            break;
-    }
-    return ret;
-}
-
-AST* tree_convert(AST* p_tree) {
-    AST* p_newtree = NULL;
-    if (p_tree->tag == ATOM) {
-        if (!is_punctuation(p_tree->ptr.tok))
-            p_newtree = mem_retain(p_tree);
-    } else {
-        vec_t* p_vec = p_tree->ptr.vec;
-        vec_t* p_newvec = vec_new(0);
-        p_newtree = tree_new(TREE, p_newvec);
-        for(size_t idx = 0; idx < vec_size(p_vec); idx++) {
-            AST* p_item = tree_convert(vec_at(p_vec,idx));
-            if (NULL != p_item)
-                vec_push_back(p_newvec, p_item);
-        }
-    }
-    return p_newtree;
-}
-
-AST* tree_new(ASTType tag, void* p_obj) {
-    AST* p_tree = (AST*)mem_allocate(sizeof(AST), &tree_free);
-    //p_tree->tag     = tag;
-    //p_tree->ptr.tok = (Tok*)p_obj;
-    return p_tree;
-}
-
-AST* tree_get_child(AST* p_tree, size_t idx) {
-    AST* child = NULL;
-    if (p_tree->tag == TREE) {
-        vec_t* vec = p_tree->ptr.vec;
-        if (idx < vec_size(vec))
-            child = vec_at(vec, idx);
-    }
-    return child;
-}
-
-void* tree_get_val(AST* p_tree) {
-    void* ret = NULL;
-    if (p_tree->tag == ATOM) {
-        ret = p_tree->ptr.tok->value.text;
-    }
-    return ret;
-}
-
-void* tree_get_child_val(AST* p_tree, size_t idx) {
-    void* ret = NULL;
-    AST* child = tree_get_child(p_tree,idx);
-    if (child != NULL) {
-        ret = tree_get_val(child);
-    }
-    return ret;
-}
-
-bool tree_is_formtype(AST* p_tree, const char* val) {
-    bool ret = false;
-    AST* child = tree_get_child(p_tree, 0);
-    if ((NULL != child) && (child->tag == ATOM)) {
-        Tok* token = child->ptr.tok;
-        if ((token->type == T_ID) &&
-            (0 == strcmp(val, token->value.text))) {
-            ret = true;
-        }
-    }
-    return ret;
-}
-#endif