From 370d694d6411b13e05b056de653bbb125a81f5cb Mon Sep 17 00:00:00 2001
From: Tony Zhang <tony.zhang.domore@outlook.com>
Date: Sun, 23 Feb 2020 12:58:28 -0500
Subject: [PATCH] Remove unused files

---
 .gitignore    |   6 +-
 Makefile      |  18 ----
 SQLPGrammar.y | 211 ---------------------------------------------
 SQLPParser    | Bin 42128 -> 0 bytes
 SQLPParser.c  |  37 --------
 SQLPScanner.l | 165 ------------------------------------
 SQLPSchema    | Bin 65248 -> 65120 bytes
 old           | 205 --------------------------------------------
 parser.c      |  86 -------------------
 parser.h      |   8 --
 util.c        | 231 --------------------------------------------------
 util.h        |  92 --------------------
 12 files changed, 5 insertions(+), 1054 deletions(-)
 delete mode 100644 SQLPGrammar.y
 delete mode 100755 SQLPParser
 delete mode 100644 SQLPParser.c
 delete mode 100644 SQLPScanner.l
 delete mode 100644 old
 delete mode 100644 parser.c
 delete mode 100644 parser.h
 delete mode 100644 util.c
 delete mode 100644 util.h

diff --git a/.gitignore b/.gitignore
index 1530978..eba2f25 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,5 @@
-*.o
\ No newline at end of file
+*.o
+.DS_Store
+SQLPParser.dSYM/
+SQLPRefExp.dSYM/
+SQLPSchema.dSYM/
diff --git a/Makefile b/Makefile
index a383350..72f4cdf 100644
--- a/Makefile
+++ b/Makefile
@@ -2,12 +2,6 @@
 #CFLAGS = `pkg-config --cflags glib-2.0`
 #LDLIBS = `pkg-config --libs glib-2.0`
 all: SQLPSchema SQLPParser_new SQLPRefExp
- 
-SQLPParser: SQLPParser.c SQLPGrammar.y SQLPScanner.l util.o
-	bison --verbose -d SQLPGrammar.y
-	flex SQLPScanner.l
-	gcc -g -w SQLPParser.c util.o -o SQLPParser
-	rm -f lex.yy.c SQLPGrammar.tab.c SQLPGrammar.tab.h
 
 SQLPParser_new: SQLPParser_new.c SQLPGrammar_new.y SQLPScanner_new.l util_new.o
 	bison --verbose -d SQLPGrammar_new.y
@@ -27,17 +21,5 @@ SQLPRefExp: SQLPRefExp_main.c SQLPRefExp.y SQLPScanner_new.l util_new.o
 	gcc -g -w SQLPRefExp_main.c util_new.o -o SQLPRefExp
 	rm -f lex.yy.c SQLPRefExp.tab.c SQLPRefExp.tab.h
 
-util.o: util.c util.h
-	gcc -g -c util.c
-
 util_new.o: util_new.c util_new.h
 	gcc -g -c util_new.c
-
-
-
-Parser: parser.c util.o
-	gcc -g -w parser.c util.o -o Parser
-
-clean:
-	rm -f lex.yy.c *.tab.c *.tab.h *.fasl Parser util.o util_new.o
-
diff --git a/SQLPGrammar.y b/SQLPGrammar.y
deleted file mode 100644
index 2fb3f37..0000000
--- a/SQLPGrammar.y
+++ /dev/null
@@ -1,211 +0,0 @@
-%{
-	#include "util.h"
-%}
-
-%define api.value.type {cons_cell *}
-%token IMPLIES OR AND NOT LE GE LT GT NE HAS MAX MIN AS ASC DESC MOD ASSIGN EQ STAR COMMA DOT
-
-%token SIZE SELECTIVITY OVERLAP
-%token FREQUENCY UNIT TIME SPACE
-
-%token IDENTIFIER CONSTANT STRING_LITERAL SIZEOF
-
-%token STORE STORING DYNAMIC STATIC OF TYPE ORDERED BY
-%token INDEX LIST ARRAY BINARY TREE DISTRIBUTED POINTER
-
-%token SCHEMA  CLASS ISA PROPERTIES CONSTRAINTS PROPERTY
-%token ON DETERMINED COVER QUERY GIVEN FROM SELECT WHERE ORDER
-%token PRECOMPUTED ONE EXIST FOR ALL TRANSACTION INTCLASS STRCLASS OID 
-%token INTEGER REAL DOUBLEREAL STRING MAXLEN RANGE TO SELF
-%token INSERT END CHANGE DELETE DECLARE RETURN UNION
-
-%start SQLPProgram
-%%
-SQLPProgram
-    : Query
-        { printf("Input Query\n");
-          cons_cell *n = $1;
-          printf("Printing Tree\n");
-          print_cons_tree(n);
-        }
-    ;
-
-Query
-	: Union_Query
-		{ printf("Union Query\n");
-		  $$ = $1;
-		}
-	;
-
-Select_Query
-	: SELECT Select_List Body
-		{ printf("SQLP Query\n");
-		  $$ = create_proj_operator($2, $3);
-		}
-	;
-
-Body
-	: FROM TablePath
-		{ printf("Body 1\n");
-		  $$ =  $2;
-		}
-	| FROM TablePath WHERE Bool
-		{ printf("Body 2\n");
-		  $$ = create_eval_operator($4, $2);
-        }
-    | FROM TablePath WHERE Pred
-		{ printf("Body 3\n");
-		  $$ = create_eval_operator($4, $2);
-        }
-	;
-
-TablePath
-    : TableIdentifier VarIdentifier
-        { printf("last table path\n");
-          $$ = create_rename_operator($1, $2);
-        }
-    | TableIdentifier VarIdentifier ',' TablePath
-        { printf("table path2\n");
-          $$ = create_cross_operator(create_rename_operator($1, $2), $4);
-    	}
-    ;
-
-Union_Query
-   : Select_Query
-        { printf("union query 1\n");
-          $$ = $1;
-      	}
-   | Union_Query UNION Select_Query
-   		{ printf("union query 2\n");
-   		  $$ = create_union_all_operator($1, $3);
-        }
-   ;
-
-Select_List
-	: STAR
-		{ printf("star\n");
-		  //$$ = new_node(1, Select_List);
-		  //$$->children[0] = new_node(0, STAR);
-		}
-	| Col
-		{ printf("select list attr path\n");
-		  $$ = create_rename_operator($1, NULL);
-      	}
-	| Col ',' Select_List
-		{ printf("Select list\n");
-		  $$ = create_rename_operator($1, $2);
-		}
-	;
-
-Col
-    : VarIdentifier '.' AttrPath
-        {
-            printf("col\n");
-            $$ = create_spcol($1, $3);
-        }
-
-AttrPath
-	: AttrIdentifier
-		{ printf("path id\n");
-		  $$ = create_pf($1, NULL);
-		}
-	| AttrIdentifier '.' AttrPath
-		{ printf("Path Function\n");
-		  $$ = create_pf($1, $3);
-		}
-	;
-
-VarIdentifier
-		: IDENTIFIER
-				{
-				  printf("|%s| ", yytext);
-					$$ = create_var(yytext);
-				}
-
-TableIdentifier
-		: IDENTIFIER
-				{
-				  printf("|%s| ", yytext);
-					$$ = create_table(yytext);
-				}
-
-AttrIdentifier
-		: IDENTIFIER
-			{
-				printf("|%s| ", yytext);
-				$$ = create_attr(yytext);
-			}
-
-Operator
-	: EQ
-		{
-			$$ = create_op(yytext);
-		}
-	| NE
-		{
-			$$ = create_op(yytext);
-		}
-	| LE
-		{
-			$$ = create_op(yytext);
-		}
-	| GE
-		{
-			$$ = create_op(yytext);
-		}
-	| LT
-		{
-			$$ = create_op(yytext);
-		}
-	| GT
-		{
-			$$ = create_op(yytext);
-		}
-	;
-
-Bool
-	: Col Operator Col
-		{ printf("Col op Col\n");
-			cons_cell* first_term = create_term($1);
-			cons_cell* second_term = create_term($3);
-		  $$ = create_comp_operator($2, first_term, second_term, NULL);
-		}
-	| Col Operator Constant
-		{ printf("Col op Constant\n");
-			cons_cell* first_term = create_term($1);
-		  $$ = create_comp_operator($2, first_term, $3, NULL);
-		}
-	;
-
-Pred
-	: Bool AND Pred
-		{ printf("pred and pred\n");
-          $$ = $1;
-          $$->cdr->cdr->cdr->cdr->car = $3;
-		}
-	| NOT Pred
-		{ printf("Not Pred\n");
-		  $$ = create_not_operator($1, NULL);
-		}
-	| EXIST '(' Query ')'
-		{ printf("Exist query\n");
-		  $$ = create_atom("INPROG");
-		  //$$->children[0] = new_node(0, EXIST);
-		  //$$->children[1] = $3;
-		}
-	;
-
-Constant
-	: INTEGER
-		{ printf("|%s|", yytext);
-			$$ = create_constant(yytext);
-		}
-	| REAL
-		{ printf("|%s|", yytext);
-			$$ = create_constant(yytext);
-		}
-	| STRING
-		{ printf("|%s|", yytext);
-			$$ = create_constant(yytext);
-		}
-
diff --git a/SQLPParser b/SQLPParser
deleted file mode 100755
index a4d2f770e38db4efe0f1f921965421492ccf52e2..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 42128
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

diff --git a/SQLPParser.c b/SQLPParser.c
deleted file mode 100644
index 53f170b..0000000
--- a/SQLPParser.c
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (C) 1989, G. E. Weddell.
- *
- * This file is part of RDM.
- *
- * RDM is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * RDM is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with RDM.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include <stdio.h>
-#include "util.h"
-#include "lex.yy.c"
-#include "SQLPGrammar.tab.c"
-
-int main()
-{
-  int Result;  
-  strcpy(LineBuffer, "");
-  printf("(\n");
-  Result = yyparse();
-  if (Result)
-    printf("**error**");
-  else
-    fprintf(stderr, "checking semantics.\n");
-  printf(")\n");
-  return (Result);
-}
diff --git a/SQLPScanner.l b/SQLPScanner.l
deleted file mode 100644
index cfb2b22..0000000
--- a/SQLPScanner.l
+++ /dev/null
@@ -1,165 +0,0 @@
-%{
-/*
- * Copyright (C) 1989, G. E. Weddell.
- *
- * This file is part of RDM.
- *
- * RDM is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * RDM is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with RDM.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include "SQLPGrammar_new.tab.h"
-#include <stdio.h>
-#include <ctype.h>
-
-int LineNumber = 1;
-char LineBuffer[200];
-%}
-
-%p 3000
-
-D			[0-9]
-L			[a-zA-Z_]
-E			[Ee][+-]?{D}+
-
-%%
-
-\%.*\n			{ LineNumber++; }
-\n			{ LineNumber++; strcpy(LineBuffer, ""); }
-"all"			{ strcat(LineBuffer, yytext); return(ALL); }
-"and"			{ strcat(LineBuffer, yytext); return(AND); }
-"array"			{ strcat(LineBuffer, yytext); return(ARRAY); }
-"as"			{ strcat(LineBuffer, yytext); return(AS); }
-"asc"			{ strcat(LineBuffer, yytext); return(ASC); }
-"binary"		{ strcat(LineBuffer, yytext); return(BINARY); }
-"by"			{ strcat(LineBuffer, yytext); return(BY); }
-"change"		{ strcat(LineBuffer, yytext); return(CHANGE); }
-"class"			{ strcat(LineBuffer, yytext); return(CLASS); }
-"constraints"		{ strcat(LineBuffer, yytext); return(CONSTRAINTS); }
-"cover"			{ strcat(LineBuffer, yytext); return(COVER); }
-"declare"		{ strcat(LineBuffer, yytext); return(DECLARE); }
-"delete"		{ strcat(LineBuffer, yytext); return(DELETE); }
-"desc"			{ strcat(LineBuffer, yytext); return(DESC); }
-"union"			{ strcat(LineBuffer, yytext); return(UNION); }
-"determined"		{ strcat(LineBuffer, yytext); return(DETERMINED); }
-"distributed"		{ strcat(LineBuffer, yytext); return(DISTRIBUTED); }
-"dynamic"		{ strcat(LineBuffer, yytext); return(DYNAMIC); }
-"exist"			{ strcat(LineBuffer, yytext); return(EXIST); }
-"for"			{ strcat(LineBuffer, yytext); return(FOR); }
-"frequency"		{ strcat(LineBuffer, yytext); return(FREQUENCY); }
-"from"			{ strcat(LineBuffer, yytext); return(FROM); }
-"given"			{ strcat(LineBuffer, yytext); return(GIVEN); }
-"has"			{ strcat(LineBuffer, yytext); return(HAS); }
-"implies"		{ strcat(LineBuffer, yytext); return(IMPLIES); }
-"index"			{ strcat(LineBuffer, yytext); return(INDEX); }
-"insert"		{ strcat(LineBuffer, yytext); return(INSERT); }
-"Integer"		{ strcat(LineBuffer, yytext); return(INTCLASS); }
-"isa"			{ strcat(LineBuffer, yytext); return(ISA); }
-"list"			{ strcat(LineBuffer, yytext); return(LIST); }
-"max"			{ strcat(LineBuffer, yytext); return(MAX); }
-"maxlen"		{ strcat(LineBuffer, yytext); return(MAXLEN); }
-"min"			{ strcat(LineBuffer, yytext); return(MIN); }
-"mod"			{ strcat(LineBuffer, yytext); return(MOD); }
-"not"			{ strcat(LineBuffer, yytext); return(NOT); }
-"of"			{ strcat(LineBuffer, yytext); return(OF); }
-"on"			{ strcat(LineBuffer, yytext); return(ON); }
-"one"			{ strcat(LineBuffer, yytext); return(ONE); }
-"or"			{ strcat(LineBuffer, yytext); return(OR); }
-"order"			{ strcat(LineBuffer, yytext); return(ORDER); }
-"ordered"		{ strcat(LineBuffer, yytext); return(ORDERED); }
-"overlap"		{ strcat(LineBuffer, yytext); return(OVERLAP); }
-"pointer"		{ strcat(LineBuffer, yytext); return(POINTER); }
-"precomputed"		{ strcat(LineBuffer, yytext); return(PRECOMPUTED); }
-"property"		{ strcat(LineBuffer, yytext); return(PROPERTY); }
-"properties"		{ strcat(LineBuffer, yytext); return(PROPERTIES); }
-"query"			{ strcat(LineBuffer, yytext); return(QUERY); }
-"range"			{ strcat(LineBuffer, yytext); return(RANGE); }
-"return"		{ strcat(LineBuffer, yytext); return(RETURN); }
-"schema"		{ strcat(LineBuffer, yytext); return(SCHEMA); }
-"select"		{ strcat(LineBuffer, yytext); return(SELECT); }
-"selectivity"		{ strcat(LineBuffer, yytext); return(SELECTIVITY); }
-"size"			{ strcat(LineBuffer, yytext); return(SIZE); }
-"space"			{ strcat(LineBuffer, yytext); return(SPACE); }
-"static"		{ strcat(LineBuffer, yytext); return(STATIC); }
-"store"			{ strcat(LineBuffer, yytext); return(STORE); }
-"storing"		{ strcat(LineBuffer, yytext); return(STORING); }
-"String"		{ strcat(LineBuffer, yytext); return(STRCLASS); }
-"time"			{ strcat(LineBuffer, yytext); return(TIME); }
-"to"			{ strcat(LineBuffer, yytext); return(TO); }
-"transaction"		{ strcat(LineBuffer, yytext); return(TRANSACTION); }
-"tree"			{ strcat(LineBuffer, yytext); return(TREE); }
-"type"			{ strcat(LineBuffer, yytext); return(TYPE); }
-"unit"			{ strcat(LineBuffer, yytext); return(UNIT); }
-"where"			{ strcat(LineBuffer, yytext); return(WHERE); }
-"->"           { strcat(LineBuffer, yytext); return(REF); }
-
-{L}({L}|{D})*		{ strcat(LineBuffer, yytext); return(IDENTIFIER); }
-
-{D}+			{ strcat(LineBuffer, yytext); return(INTEGER); }
-{D}+{E}			{ strcat(LineBuffer, yytext); return(REAL); }
-{D}*"."{D}+({E})?	{ strcat(LineBuffer, yytext); return(REAL); }
-{D}+"."{D}*({E})?	{ strcat(LineBuffer, yytext); return(REAL); }
-
-\"(\\.|[^\\"])*\"	{ strcat(LineBuffer, yytext); return(STRING); }
-
-":="			{ strcat(LineBuffer, yytext); return(ASSIGN); }
-"<="			{ strcat(LineBuffer, yytext); return(LE); }
-">="			{ strcat(LineBuffer, yytext); return(GE); }
-"<>"			{ strcat(LineBuffer, yytext); return(NE); }
-";"			{ strcat(LineBuffer, yytext); return(';'); }
-"{"			{ strcat(LineBuffer, yytext); return('{'); }
-"}"			{ strcat(LineBuffer, yytext); return('}'); }
-","			{ strcat(LineBuffer, yytext); return(','); }
-"="			{ strcat(LineBuffer, yytext); return(EQ); }
-"("			{ strcat(LineBuffer, yytext); return('('); }
-")"			{ strcat(LineBuffer, yytext); return(')'); }
-"["			{ strcat(LineBuffer, yytext); return('['); }
-"]"			{ strcat(LineBuffer, yytext); return(']'); }
-"."			{ strcat(LineBuffer, yytext); return('.'); }
-"-"			{ strcat(LineBuffer, yytext); return('-'); }
-"+"			{ strcat(LineBuffer, yytext); return('+'); }
-"*"			{ strcat(LineBuffer, yytext); return(STAR); }
-"/"			{ strcat(LineBuffer, yytext); return('/'); }
-"<"			{ strcat(LineBuffer, yytext); return('<'); }
-">"			{ strcat(LineBuffer, yytext); return('>'); }
-
-" "			{ strcat(LineBuffer, yytext); }
-"\r"			{ strcat(LineBuffer, yytext); }
-.			{ strcat(LineBuffer, yytext);
-			  yyerror("illegal character"); }
-%%
-
-yyerror(s)
-char *s;
-{
-   int i;
-   char c;
-   fprintf( stderr, "\n%s", LineBuffer );
-   c = input();
-   while ( c != '\n'  &&  c != 0 ) {
-      putc(c, stderr);
-      c = input();
-   }
-   putc('\n', stderr);
-   for (i=1; i <= strlen( LineBuffer ) - strlen( yytext ); i++)
-      putc(' ', stderr);
-   for (i=1; i <= strlen( yytext ); i++)
-      putc('^', stderr);
-   putc('\n', stderr);
-   fprintf ( stderr, "** error: %s found in line %d.\n\n", s, LineNumber );
-}
-
-yywrap()
-{
-   return(1);
-}
\ No newline at end of file
diff --git a/SQLPSchema b/SQLPSchema
index b566414ba5a94ea8d426141915fb5cdf5d135367..3c8d9a3cff83f239469c1b9ab583ab4af4acf6ac 100755
GIT binary patch
literal 65120
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
Vt^2&%?N9~Luj^#Ut{3!wgMWY>Z7%=-

literal 65248
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
Q|6)Y)pN9(a8+oz#3keZn6951J

diff --git a/old b/old
deleted file mode 100644
index 1588df7..0000000
--- a/old
+++ /dev/null
@@ -1,205 +0,0 @@
-%{
-	#include "util.h"
-%}
-
-// %union {
-// 	struct node *n;
-//}
-
-%define api.value.type {struct node *}
-%token IMPLIES OR AND NOT LE GE LT GT NE HAS MAX MIN AS ASC DESC MOD ASSIGN EQ STAR COMMA DOT
-
-%token SIZE SELECTIVITY OVERLAP
-%token FREQUENCY UNIT TIME SPACE
-
-%token IDENTIFIER CONSTANT STRING_LITERAL SIZEOF
-
-%token STORE STORING DYNAMIC STATIC OF TYPE ORDERED BY
-%token INDEX LIST ARRAY BINARY TREE DISTRIBUTED POINTER
-
-%token SCHEMA  CLASS ISA PROPERTIES CONSTRAINTS PROPERTY
-%token ON DETERMINED COVER QUERY GIVEN FROM SELECT WHERE ORDER
-%token PRECOMPUTED ONE EXIST FOR ALL TRANSACTION INTCLASS STRCLASS
-%token INTEGER REAL DOUBLEREAL STRING MAXLEN RANGE TO
-%token INSERT END CHANGE DELETE DECLARE RETURN UNION
-
-%start SQLPProgram
-%%
-SQLPProgram
-    : Query
-        { printf("Input Query\n"); 
-          struct node *n = new_node(1, SQLPProgram);
-          n->children[0] = $1;
-          printf("Printing Tree\n");
-          print_tree(n, 0);
-          struct linked_node *linked_tree = malloc(sizeof(struct linked_node));
-          translate(linked_tree, n);
-          print_linked_tree(linked_tree, 0);
-        }
-    ;
-
-Identifier
-	: IDENTIFIER
-		{ printf("|%s| ", yytext);
-		  $$ = new_node(1, Identifier);
-		  $$->children[0] = new_node(0, IDENTIFIER); 
-		}
-	;
- 
-Query
-	: Union_Query
-		{ printf("Union Query\n");
-		  $$ = new_node(1, Query);
-		  $$->children[0] = $1;
-		}
-	;
-
-Select_Query
-	: SELECT Select_List Body
-		{ printf("SQLP Query\n");
-		  $$ = new_node(3, Select_Query);
-		  $$->children[0] = new_node(0, SELECT);
-		  $$->children[1] = $2;
-		  $$->children[2] = $3;
-		}
-	;
-
-Body
-	: FROM TablePath
-		{ printf("Body 1\n");
-		  $$ = new_node(2, Body);
-		  $$->children[0] = new_node(0, FROM);
-		  $$->children[1] = $2;}
-	| FROM TablePath WHERE Bool
-		{ printf("Body 2\n"); 
-		  $$ = new_node(4, Body);
-		  $$->children[0] = new_node(0, FROM);
-		  $$->children[1] = $2;
-		  $$->children[2] = new_node(0, WHERE);
-		  $$->children[3] = $4;
-        }
-    | FROM TablePath WHERE Pred
-		{ printf("Body 3\n"); 
-		  $$ = new_node(4, Body);
-		  $$->children[0] = new_node(0, FROM);
-		  $$->children[1] = $2;
-		  $$->children[2] = new_node(0, WHERE);
-		  $$->children[3] = $4;
-        }
-	;
-
-TablePath
-    : Identifier Identifier
-        { printf("table path1\n");
-          $$ = new_node(2, TablePath);
-					$$->children[0] = $1;
-					$$->children[1] = $2;
-				}	
-    | Identifier Identifier ',' TablePath
-        { printf("table path2\n");
-          $$ = new_node(4, TablePath);
-          $$->children[0] = $1;
-          $$->children[1] = $2;
-          $$->children[2] = new_node(0, COMMA);
-          $$->children[3] = $4;
-    	}
-    ;
-
-Union_Query
-   : Select_Query
-        { printf("union query 1\n");
-          $$ = new_node(1, Union_Query);
-          $$->children[0] = $1;
-      	}
-   | Union_Query UNION Select_Query
-   		{ printf("union query 2\n");
-   		  $$ = new_node(3, Union_Query);
-          $$->children[0] = $1;
-          $$->children[1] = new_node(0, UNION);
-          $$->children[2] = $3;
-        }
-   ;
-
-Select_List
-	: STAR 
-		{ printf("star\n");
-		  $$ = new_node(1, Select_List);
-		  $$->children[0] = new_node(0, STAR);
-		}
-	| AttrPath
-		{ printf("select list attr path\n");
-		  $$ = new_node(1, Select_List);
-          $$->children[0] = $1;
-      	}
-	| AttrPath ',' Select_List
-		{ printf("Select list\n"); 
-		  $$ = new_node(3, Select_List);
-		  $$->children[0] = $1;
-		  $$->children[1] = new_node(0, COMMA);
-		  $$->children[2] = $3;
-		}
-	;
-
-AttrPath 
-	: Identifier
-		{ printf("path id\n");
-		  $$ = new_node(1, AttrPath);
-		  $$->children[0] = $1;
-		}
-	| Identifier '.' AttrPath
-		{ printf("Path Function\n");
-		  $$ = new_node(3, AttrPath);
-		  $$->children[0] = $1;
-		  $$->children[1] = new_node(0, DOT);
-		  $$->children[2] = $3;
-		}
-	;
-Operator
-	: EQ
-	| NE
-	| LE
-	| GE
-	| LT
-	| GT
-	;
-
-Bool
-	: AttrPath Operator AttrPath
-		{ printf("AttrPath op AttrPath\n");
-		  $$ = new_node(3, Bool);
-		  $$->children[0] = $1;
-		  $$->children[1] = $2;
-		  $$->children[2] = $3;
-		}
-	| AttrPath Operator CONSTANT
-		{ printf("AttrPath op Constant\n");
-		  $$ = new_node(3, Bool);
-		  $$->children[0] = $1;
-		  $$->children[1] = $2;
-		  $$->children[2] = new_node(0, CONSTANT);
-		}
-	;
-
-Pred
-	: Bool AND Pred
-		{ printf("pred and pred\n");
-		  $$ = new_node(3, Pred);
-		  $$->children[0] = $1;
-		  $$->children[1] = new_node(0, AND);
-		  $$->children[2] = $3;
-
-		}
-	| NOT Pred
-		{ printf("Not Pred\n");
-		  $$ = new_node(2, Pred);
-		  $$->children[0] = new_node(0, NOT);
-		  $$->children[1] = $2;
-
-		}
-	| EXIST '(' Query ')'
-		{ printf("Exist query\n");
-		  $$ = new_node(2, Pred);
-		  $$->children[0] = new_node(0, EXIST);
-		  $$->children[1] = $3;
-		} 
-	;
\ No newline at end of file
diff --git a/parser.c b/parser.c
deleted file mode 100644
index 276c7e6..0000000
--- a/parser.c
+++ /dev/null
@@ -1,86 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <stdbool.h>
-#include <string.h>
-#include "parser.h"
-
-cons_cell* parse(char* input, int size) {
-    if (input[0] == NULL) {
-        assert(size == 0);
-        return NULL;
-    }
-    if (input[0] == '(') {
-        // Nested case
-        int count_bracket = 1;
-        int it = 0;
-        // Find where the brackets enclose
-        while (count_bracket > 0) {
-            it++;
-            if (input[it] == '(') {
-                count_bracket++;
-            } else if (input[it] == ')') {
-                count_bracket--;
-            }
-        }
-        char buffer[it];
-        strncpy(buffer, &input[1], it - 1);
-        buffer[it - 1] = '\0';
-
-        // Recurse on what is enclosed by the brackets
-        cons_cell* car_cons = parse(buffer, it - 1);
-
-        // Copy everything after the brackets
-        int next_char = it + 1;
-        while (input[next_char] == ' ' && input[next_char] != NULL) {
-            next_char++;
-        }
-        char buffer_next[500];
-        strncpy(buffer_next, &input[next_char], size - next_char + 1);
-
-        // Recurse on everything after the brackets
-        cons_cell* cdr_cons = parse(buffer_next, size - next_char);
-
-        return create_cons_cell(car_cons, cdr_cons);
-    } else {
-        // Not nested case
-
-        // Copy the first term
-		int first_space_idx = 0;
-	    while (input[first_space_idx] != ' ' && input[first_space_idx] != NULL) {
-			first_space_idx++;
-        }	
-		char buff_first[500];
-		strncpy(buff_first, input, first_space_idx);
-        buff_first[first_space_idx] = '\0';
-
-        // Create cons_cell for first term
-		cons_cell* car_cons = create_cons_cell_w_atom(buff_first, NULL);
-		char buff_other[500];
-		int next_char = first_space_idx;
-	    while (input[next_char] == ' ' && input[next_char] != NULL) {
-            next_char++;
-        }
-
-        // Copy everything after the first term
-		strncpy(buff_other, &input[next_char], size - next_char + 1);
-        // Recurse on everything after the first term
-		cons_cell* cdr_cons = parse(buff_other, size - next_char);
-		car_cons->cdr = cdr_cons;
-		return car_cons;
-	}
-}
-
-int main() {
-	char str[500];
-	printf("Enter the json-string to parse: \n");
-	scanf("%[^\n]s", str);
-
-	printf("You entered: %s\n", str);
-    int size = 0;
-    while (str[size] != NULL) {
-        size++;
-    }
-    cons_cell* cons = parse(str, size);
-    print_cons_tree(cons);
-    return 0;
-}
diff --git a/parser.h b/parser.h
deleted file mode 100644
index 4af3e17..0000000
--- a/parser.h
+++ /dev/null
@@ -1,8 +0,0 @@
-#ifndef PARSER_H
-#define PARSER_H
-
-#include "util.h"
-
-cons_cell* parse(char* input, int size);
-
-#endif
\ No newline at end of file
diff --git a/util.c b/util.c
deleted file mode 100644
index b4f3f7f..0000000
--- a/util.c
+++ /dev/null
@@ -1,231 +0,0 @@
-#include "util.h"
-
-cons_cell* create_cons_cell(void* car, cons_cell* cdr) {
-	cons_cell* new_cons = malloc(sizeof(cons_cell));
-	new_cons->car = car;
-	new_cons->cdr = cdr;
-	new_cons->is_atom = false;
-	return new_cons;
-}
-
-
-atom* create_atom(char* val) {
-	printf("create_atom: %s\n", val);
-	atom* new_atom = malloc(sizeof(atom));
-	new_atom->val = malloc(sizeof(char) * (strlen(val) + 1));
-	strcpy(new_atom->val, val);
-	return new_atom;
-}
-
-
-cons_cell* create_cons_cell_w_atom(char* val, cons_cell* cdr) {
-	atom* new_atom = create_atom(val);
-	cons_cell* new_cons = malloc(sizeof(cons_cell));
-	new_cons->car = new_atom;
-	new_cons->cdr = cdr;
-	new_cons->is_atom = true;
-	return new_cons;
-}
-
-cons_cell* create_spcol(cons_cell* var, cons_cell* pf) {
-	cons_cell* var_cons = create_cons_cell(var, pf);
-	char operator[6] = "SPCOL\0";
-	cons_cell* operator_cons = create_cons_cell_w_atom(operator, var_cons);
-	return operator_cons;
-}
-
-cons_cell* create_pf(cons_cell* attr, cons_cell* next_attr) {
-	cons_cell* attr_cons = create_cons_cell(attr, next_attr);
-	char operator[3] = "PF\0";
-	cons_cell* operator_cons = create_cons_cell_w_atom(operator, attr_cons);
-	return operator_cons;
-}
-
-cons_cell* create_table(char *table) {
-	cons_cell* table_cons = create_cons_cell_w_atom(table, NULL);
-	char operator[6] = "TABLE\0";
-	return create_cons_cell_w_atom(operator, table_cons);
-}
-
-cons_cell* create_term(cons_cell* term) {
-	cons_cell* term_cons = create_cons_cell(term, NULL);
-	char operator[5] = "TERM\0";
-	return create_cons_cell_w_atom(operator, term_cons);
-}
-
-cons_cell* create_constant(char* constant) {
-	cons_cell* constant_cons = create_cons_cell_w_atom(constant, NULL);
-	char operator[6] = "CONST\0";
-	return create_cons_cell_w_atom(operator, constant_cons);
-}
-
-cons_cell* create_col(char *col) {
-	cons_cell* col_cons = create_cons_cell_w_atom(col, NULL);
-	char operator[4] = "COL\0";
-	return create_cons_cell_w_atom(operator, col_cons);
-}
-
-cons_cell* create_attr(char *attr) {
-	cons_cell* attr_cons = create_cons_cell_w_atom(attr, NULL);
-	char operator[5] = "ATTR\0";
-	return create_cons_cell_w_atom(operator, attr_cons);
-}
-
-cons_cell* create_var(char *var) {
-	cons_cell* var_cons = create_cons_cell_w_atom(var, NULL);
-	char operator[4] = "VAR\0";
-	return create_cons_cell_w_atom(operator, var_cons);
-}
-
-cons_cell* create_op(char *op) {
-	cons_cell* op_cons = create_cons_cell_w_atom(op, NULL);
-	char operator[3] = "OP\0";
-	return create_cons_cell_w_atom(operator, op_cons);
-}
-
-// todo: why need ra
-cons_cell* create_comp_operator(cons_cell* op, cons_cell* term1, cons_cell* term2, cons_cell* ra) {
-	cons_cell* ra_cons = create_cons_cell(ra, NULL);
-	cons_cell* term2_cons = create_cons_cell(term2, ra_cons);
-	cons_cell* term1_cons = create_cons_cell(term1, term2_cons);
-	cons_cell* op_cons = create_cons_cell(op, term1_cons);
-	char operator[5] = "COMP\0";
-	cons_cell* operator_cons = create_cons_cell_w_atom(operator, op_cons);
-	return operator_cons;
-}
-
-
-cons_cell* create_atom_operator(cons_cell* table, cons_cell* var) {
-	cons_cell* var_cons = create_cons_cell(var, NULL);
-	cons_cell* tab_name_cons = create_cons_cell(table, var_cons);
-	char operator[5] = "ATOM\0";
-	cons_cell* operator_cons = create_cons_cell_w_atom(operator, tab_name_cons);
-	return operator_cons;
-}
-
-// todo: why pass NULL
-cons_cell* create_union_all_operator(cons_cell* ra1, cons_cell* ra2) {
-	cons_cell* ra2_cons = create_cons_cell(ra2, NULL);
-	cons_cell* ra1_cons = create_cons_cell(ra1, ra2_cons);
-	char operator[10] = "UNION_ALL\0";
-	cons_cell* operator_cons = create_cons_cell_w_atom(operator, ra1_cons);
-	return operator_cons;
-}
-
-cons_cell* create_union_operator(cons_cell* ra1, cons_cell* ra2) {
-	cons_cell* ra2_cons = create_cons_cell(ra2, NULL);
-	cons_cell* ra1_cons = create_cons_cell(ra1, ra2_cons);
-	char operator[6] = "UNION\0";
-	cons_cell* operator_cons = create_cons_cell_w_atom(operator, ra1_cons);
-	return operator_cons;
-}
-
-cons_cell* create_and_operator(cons_cell* ra1, cons_cell* ra2) {
-	cons_cell* ra2_cons = create_cons_cell(ra2, NULL);
-	cons_cell* ra1_cons = create_cons_cell(ra1, ra2_cons);
-	char operator[4] = "AND\0";
-	cons_cell* operator_cons = create_cons_cell_w_atom(operator, ra1_cons);
-	return operator_cons;
-}
-
-cons_cell* create_or_operator(cons_cell* ra1, cons_cell* ra2) {
-	cons_cell* ra2_cons = create_cons_cell(ra2, NULL);
-	cons_cell* ra1_cons = create_cons_cell(ra1, ra2_cons);
-	char operator[3] = "OR\0";
-	cons_cell* operator_cons = create_cons_cell_w_atom(operator, ra1_cons);
-	return operator_cons;
-}
-
-cons_cell* create_njoin_operator(cons_cell* ra1, cons_cell* ra2) {
-	cons_cell* ra2_cons = create_cons_cell(ra2, NULL);
-	cons_cell* ra1_cons = create_cons_cell(ra1, ra2_cons);
-	char operator[6] = "NJOIN\0";
-	cons_cell* operator_cons = create_cons_cell_w_atom(operator, ra1_cons);
-	return operator_cons;
-}
-
-cons_cell* create_cross_operator(cons_cell* ra1, cons_cell* ra2) {
-	cons_cell* ra2_cons = create_cons_cell(ra2, NULL);
-	cons_cell* ra1_cons = create_cons_cell(ra1, ra2_cons);
-	char operator[6] = "CROSS\0";
-	cons_cell* operator_cons = create_cons_cell_w_atom(operator, ra1_cons);
-	return operator_cons;
-}
-
-// For when you want to assign column names to another name
-cons_cell* create_rename_operator(cons_cell* table, cons_cell* var) {
-	cons_cell* original_cons = create_cons_cell(table, var);
-	char operator[7] = "RENAME\0";
-	cons_cell* operator_cons = create_cons_cell_w_atom(operator, original_cons);
-	return operator_cons;
-}
-
-cons_cell* create_proj_operator(cons_cell* assign, cons_cell* ra) {
-	cons_cell* ra_cons = create_cons_cell(ra, NULL);
-	cons_cell* assign_cons = create_cons_cell(assign, ra_cons);
-	char operator[5] = "PROJ\0";
-	cons_cell* operator_cons = create_cons_cell_w_atom(operator, assign_cons);
-	return operator_cons;
-}
-
-// todo: ra2?
-cons_cell* create_not_operator(cons_cell* ra1, cons_cell* ra2) {
-	cons_cell* ra2_cons = create_cons_cell(ra2, NULL);
-	cons_cell* ra1_cons = create_cons_cell(ra1, ra2_cons);
-	char operator[4] = "NOT\0";
-	cons_cell* operator_cons = create_cons_cell_w_atom(operator, ra1_cons);
-	return operator_cons;
-}
-
-cons_cell* create_exist_operator(cons_cell* ra1) {
-	cons_cell* ra1_cons = create_cons_cell(ra1, NULL);
-	char operator[6] = "EXIST\0";
-	cons_cell* operator_cons = create_cons_cell_w_atom(operator, ra1_cons);
-	return create_cons_cell_w_atom(operator, ra1_cons);
-}
-
-
-cons_cell* create_limit_operator(cons_cell* ra1, cons_cell* ra2) {
-	cons_cell* ra2_cons = create_cons_cell(ra2, NULL);
-	cons_cell* ra1_cons = create_cons_cell(ra1, ra2_cons);
-	char operator[6] = "LIMIT\0";
-	cons_cell* operator_cons = create_cons_cell_w_atom(operator, ra1_cons);
-	return operator_cons;
-}
-
-cons_cell* create_elim_operator(cons_cell* ra1) {
-	cons_cell* ra1_cons = create_cons_cell(ra1, NULL);
-	char operator[5] = "ELIM\0";
-	cons_cell* operator_cons = create_cons_cell_w_atom(operator, ra1_cons);
-	return operator_cons;
-}
-
-cons_cell* create_eval_operator(cons_cell* logic, cons_cell* cross) {
-	cons_cell* var_cons = create_cons_cell(logic, cross);
-	char operator[5] = "EVAL\0";
-	return create_cons_cell_w_atom(operator, var_cons);
-}
-
-void print_cons_tree(cons_cell *root) {
-	print_cons_tree_helper(root, 0);
-}
-
-void print_cons_tree_helper(cons_cell *root, int indent) {
-	if (root == NULL) {
-		return;
-	}
-
-	if (root->is_atom) {
-		for (int i = 0; i < indent; i++) {
-			printf("  ");
-		}
-		printf("%s", ((atom*)root->car)->val);
-		printf("\n");
-
-		print_cons_tree_helper(root->cdr, indent+1);
-	} else {
-		print_cons_tree_helper((cons_cell*)root->car, indent);
-		print_cons_tree_helper(root->cdr, indent);
-	}
-}
-
diff --git a/util.h b/util.h
deleted file mode 100644
index a32e998..0000000
--- a/util.h
+++ /dev/null
@@ -1,92 +0,0 @@
-#ifndef UTIL_H
-#define UTIL_H
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <stdbool.h>
-#include <string.h>
-#include <assert.h>
-
-// Basic building blocks that contain char values
-typedef struct atom {
-	char* val;
-} atom;
-
-// A linked list like structure
-// car points to element the node is holding
-// cdr points to next cons cell in list or null
-// is_atom determines if car is an atom
-typedef struct cons_cell {
-    void* car;
-    struct cons_cell* cdr;
-	bool is_atom;
-} cons_cell;
-
-// Creates a cons_cell
-cons_cell* create_cons_cell(void* car, cons_cell* cdr);
-// Creates an atom
-atom* create_atom(char* val);
-// Creates a cons_cell that has an atom as its car
-cons_cell* create_cons_cell_w_atom(char* val, cons_cell* cdr);
-
-/*
-
-Below comment block are functions that implement the following relational
-algebra expressions for SQL queries:
-
-<ra> := (comp <op> <term> <term> <ra>)
-        | (atom <table> <var>)
-        | (union-all <ra> <ra>)
-        | (cross <ra> <ra>)
-        | (proj ((rename <col> <col>)) <ra>)
-        | (not <ra> <ra>)
-        | (elim <ra>)
-        | (limit n <ra> <ra>)
-        | (eval <ra> <ra>)
-
-<term> := <col> | <const>
-<col> := <spcol> | <scol>
-<spcol> := <var> "." <pf>   // for SQLP
-<scol> := <var> "." <attr>  // for SQL
-<pf> := <attr> <attr>
-<var> := identifier
-<attr> := identifier
-<table> := identifier
-<term> := identifier
-<const> := identifier
-<op> := [GT, GE, EQ, LE, LT]
-
-*/
-
-// The following are all helper functions to create the
-// various relational algebra expressions
-cons_cell* create_spcol(cons_cell* var, cons_cell* pf);
-cons_cell* create_pf(cons_cell* attr, cons_cell* next_attr);
-cons_cell* create_table(char *table);
-cons_cell* create_term(cons_cell *term);
-cons_cell* create_constant(char* constant);
-cons_cell* create_col(char *col);
-cons_cell* create_attr(char *attr);
-cons_cell* create_var(char *var);
-cons_cell* create_op(char *op);
-cons_cell* create_comp_operator(cons_cell* op, cons_cell* term1, cons_cell* term2, cons_cell* ra);
-cons_cell* create_atom_operator(cons_cell* table, cons_cell* var);
-cons_cell* create_union_all_operator(cons_cell* ra1, cons_cell* ra2);
-cons_cell* create_union_operator(cons_cell* ra1, cons_cell* ra2);
-cons_cell* create_cross_operator(cons_cell* ra1, cons_cell* ra2);
-cons_cell* create_rename_operator(cons_cell* table, cons_cell* var);
-cons_cell* create_proj_operator(cons_cell* assign, cons_cell* ra);
-cons_cell* create_not_operator(cons_cell* ra1, cons_cell* ra2);
-cons_cell* create_exist_operator(cons_cell* ra1);
-cons_cell* create_limit_operator(cons_cell* ra1, cons_cell* ra2);
-cons_cell* create_elim_operator(cons_cell* ra1);
-cons_cell* create_eval_operator(cons_cell* logic, cons_cell* cross);
-
-// Prints an in order traversal of the tree
-void print_cons_tree(cons_cell *root);
-
-void print_cons_tree_helper(cons_cell *root, int indent);
-#endif
-
-
-
-- 
GitLab