From 4933c08dfd7240763f70b4b6da8e8b68170e84c0 Mon Sep 17 00:00:00 2001 From: expan <expan@student.cs.uwaterloo.ca> Date: Thu, 28 Mar 2019 21:26:03 -0400 Subject: [PATCH] Changed naming for select statements to be RENAME and for table assignment to be AS, also in-prog work for hash table (can't get glib to work for the life of me) --- Makefile | 7 ++++--- SQLPGrammar.y | 8 ++++---- SQLPParser | Bin 42800 -> 42384 bytes util.c | 21 ++++++++++++++++++--- util.h | 4 +++- util.o | Bin 9400 -> 10152 bytes 6 files changed, 29 insertions(+), 11 deletions(-) diff --git a/Makefile b/Makefile index 65ae0d6..b5708ad 100644 --- a/Makefile +++ b/Makefile @@ -1,8 +1,8 @@ .PHONY: all clean - +#CFLAGS = `pkg-config --cflags glib-2.0` +#LDLIBS = `pkg-config --libs glib-2.0` all: SQLPParser - SQLPParser: SQLPParser.c SQLPGrammar.y SQLPScanner.l util.o bison --verbose -d SQLPGrammar.y flex SQLPScanner.l @@ -11,7 +11,8 @@ SQLPParser: SQLPParser.c SQLPGrammar.y SQLPScanner.l util.o util.o: util.c util.h gcc -c util.c - +# gcc `pkg-config --cflags --libs glib-2.0` util.c + #gcc -c util.c clean: rm -f lex.yy.c *.tab.c *.tab.h *.fasl util.o diff --git a/SQLPGrammar.y b/SQLPGrammar.y index f49c44a..f3f82a7 100644 --- a/SQLPGrammar.y +++ b/SQLPGrammar.y @@ -62,11 +62,11 @@ Body TablePath : TableIdentifier VarIdentifier { printf("last table path\n"); - $$ = create_atom_operator($1, $2); + $$ = create_assign_operator($1, $2); } | TableIdentifier VarIdentifier ',' TablePath { printf("table path2\n"); - $$ = create_cross_operator(create_atom_operator($1, $2), $4); + $$ = create_cross_operator(create_assign_operator($1, $2), $4); } ; @@ -89,11 +89,11 @@ Select_List } | Col { printf("select list attr path\n"); - $$ = create_assign_operator($1, NULL); + $$ = create_rename_operator($1, $1, NULL); } | Col ',' Select_List { printf("Select list\n"); - $$ = create_assign_operator($1, $2); + $$ = create_rename_operator($1, $1, $2); } ; diff --git a/SQLPParser b/SQLPParser index 324f5065f28f4d5a24995f15369ba5904c853ead..7f6390ffbfe91602bd2fb9c51bca1de56eff417d 100755 GIT binary patch literal 42384 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 literal 42800 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 diff --git a/util.c b/util.c index da4c089..f1e3d37 100644 --- a/util.c +++ b/util.c @@ -121,10 +121,25 @@ cons_cell* create_cross_operator(cons_cell* ra1, cons_cell* ra2) { } // For when you want to assign column names to another name -cons_cell* create_assign_operator(cons_cell* spcol, cons_cell* next) { - cons_cell* sp_col_cons = create_cons_cell(spcol, next); +cons_cell* create_rename_operator(cons_cell* column, cons_cell* var, cons_cell* next) { + cons_cell* new_name_cons = create_cons_cell(var, next); + cons_cell* original_cons = create_cons_cell(column, new_name_cons); + char operator[7] = "RENAME\0"; + cons_cell* operator_cons = create_cons_cell_w_atom(operator, original_cons); + return operator_cons; +} + +// For when you want to assign a var to a table +cons_cell* create_assign_operator(cons_cell* table, cons_cell* var) { + // cdr to get to cons atom, car to get atom itself +// if(hash == NULL) +// hash = g_hash_table_new(g_str_hash, g_str_equal); + +// printf("test %s", ((atom*)table->cdr->car)->val); + cons_cell* new_name_cons = create_cons_cell(var, NULL); + cons_cell* original_cons = create_cons_cell(table, new_name_cons); char operator[3] = "AS\0"; - cons_cell* operator_cons = create_cons_cell_w_atom(operator, sp_col_cons); + cons_cell* operator_cons = create_cons_cell_w_atom(operator, original_cons); return operator_cons; } diff --git a/util.h b/util.h index 546116d..ee3c774 100644 --- a/util.h +++ b/util.h @@ -6,7 +6,7 @@ #include <stdbool.h> #include <string.h> #include <assert.h> - +//#include <glib.h> // Basic building blocks that contain char values typedef struct atom { @@ -23,6 +23,8 @@ typedef struct cons_cell { bool is_atom; } cons_cell; +//static GHashTable* hash = NULL; + // Creates a cons_cell cons_cell* create_cons_cell(void* car, cons_cell* cdr); // Creates an atom diff --git a/util.o b/util.o index c13b8e103a91124d826e280bcb56ed9e3d096e7a..2fa3d8121cfea077faf3006291a71d604cddae08 100644 GIT binary patch literal 10152 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 AM*si- literal 9400 zcmcIqeQaCR6~AfI5Li+hM);8MYQClnXh}zrplvjV#`Lv|8`H#m4%x0_H=(X=Vh2(- zk06(=uWugx1C40{Ez&lDCfK6EA4O#%q0mIyN`uyo47$ytR5&G+3<3?Tl>N@V=e>OR zxs;Aw_4)VCJ->VIJ?Gwg-hD4U@acOe&k~|yp}-HWN?iU0_;KSxxfs_NDaw?KE>MaT zwLvju*c5avqDqutFca;~sCy;1dv9-_k<Gh5)~GwOM`PJ>kr1+3rRXy`gu!4Wo$2mM zZ05>faIQVm&PmoUb?^-X57(*;20Ox;uqDENb5ncMj67JY?n7MF;8f$QzeETg@(dYw z7+-R0DjdlKdlL6|B|3t^mgd<6_hKdWQQ%Q_!5-c2fIa-9GG~avV6-zB>ke;?D&>5C z`_EPNy%aPQ=lRN>l7#r05S`{d;T5>hr4Y5}(68(ap%$GkAyxpNazhVWXea!*s1Tnn zP{dMPG{0ZA1T_7KmYZ<yCPVs=o;{)WOl$gqA{o+j@1z0I@J{LtM$ZX(ld8;RPYB0P zX>?k|dqNv3EY$R2)xgM3YWmu0B5Jvpop<kL`|jOD*M~Gc3+p`~Sv?d%Mi;)KrdP;z z^0tX=6!&?Yf)KXcckgv9@d(qNmS1!dv5@v?i2Cq=kVAOBnmRh5dnYUxG$T8$gxp{S zhKp7_+~Jo#N6`!#P?hTZ21v{{0;u*DG=0>jf721u_Vd!g187h*J1)qf8$GbV#_9HE z@~i;Q$lHRl99!mCvK`|Vrhg5~2WJIKj_<gpziL|Mn9;D=lYI6K8mm$F3D%Ducq7(q zETW|sYu3I0gi8gp=_q<7e;Ve*v%#7eIo~vk*-=eDj+UdUWj=d^e2W>iPoRgG?mM!x zj&{V3z&jvWK99ltm}$P*^2ZH-_NmD-=OUjy3WJkIt)E8hI~p_U<bd_SF&Lawy~=ry z#Y*C1YwulUuS(i`cc(PBBk+EywbQi6<J)ugS2Vr}HNJbLy@`3laxCdXG|l-xm4DaE z_FsX2Jf5S~<lh;L=RNWV3*s3Vz=C+sTo5)9pTEBS%LkkEL2J?J0qlMs_6sikK#RUl z&AyJMM7!VU8M79;j@3)q1q*Xl-3aQCM0!T7x_ovIhBw%3)SipsHS4}T&1yw7?+CmI z=AhZd0GbY9#rkPOnDIZ&{fALo`|nM3hyC{yvalX_vw5f7e$6|)|3YVWyD#QgGP6Gr z5A1iNj+TICoTuplq_ix80nd#9ynlVx?xz4CR<i<-&mKeX2*RRe=pMJnX#c}+x&J?= zz?kk1qA@P{_|%NEVSQS=@ijEr?RXd)2fcfDt7ym;oNvz{9-NP!tfF}QKl9Od(ZiR` zM;>eG<+78)@i0BDwS413nBwP%?)|gOS%wd}aQ?%p$7bUHgrn6LPrT>uy+~&z`Rokh zdkAxe^>&Bs_E4Ecw(EbMzt51A&tU%MJ-@J;XP#gA>|u<(Xw*F^Z6BW5E9D*~rSY=n zZ{~T0T|&>RF}2doPHNXuC%(hx<6u@7@*zmGQ92)Pvak0{X}Rn)mIs}h$DdNWWBOw} zx*gklAq{&c@hgyyR(Yo!`6WciH#VX}YY|OAiBks><@jIesF82H6l!cTWGg@e6H#A7 z<MbBI3hCDms}0{&Zm2?kRrkJK48g$oWz>mkZeV=KKkMWXh79&rqpEl#$$Vfk^O>DL zzhz4~oKe}u$53VOR3{F@mQ%$Nr*457M=~_W;C$0s1c_zE2saq^PLKjF7+ySPeABC% zDjoT&C6|Wnsn#O&{8>F>1g3H?Rp@^!df@}eGIA5+uUH<L>)A>3GwhuryM}klGJ5%3 zqfo3KDUL{EQ_|Sf_<k}*0W?#$Jg3e-e_88G<p;R{7UI1NEhmj?YOmApq@h*f*_q2u z;6!{WI#=ghekjo4QKo7-^saS|(~Ai;)rN7dHSY}%obiqgdk?}qoH@A4JK@ML!~Gmv zMi%Q^o~*}Y#Lxs>>C?gSeKJ7VG2z(GeT<=x>e4<&sR{=`*~fLb$JrS6=y@t<0gsjy zBgNw<Wr${VG%7n99UoFNArFszWQ+5QoR4|?<#uTv-sXCp7}z&S%r`ElAgYx@>(^W? z=bMWKJ4J?w7xUxhY#F^y@N@erin<yDUM?ct(Qqaj3}=#CSGuoEpCj7*Yg$``|7OwN zbW@90w0k%D#G2L(ZSDAN5l!vw8^x_n8%3)hvd@o-R-XuLSl7BC*woS@)@*ETYZFav z;<omig@0q~da<FkU9_z8t!o!vfbibh)FM*d$<2806I~tR-kxapHj$3Tqj;}W!lq=$ zHjxQ$ibvh4aHdoAB)XCb)+wSp-j&XXa3<3&3CUEn8xC}fP03^&#-km=?G{(2#W^Cg zEfrOM#iRE{<GAg(#ywL>;TPZL_u!R`jf`s;{fq&|5M!LNm+>LSos5q#%1-bTQa7|j z=adjjEecEY1FZi+8GQq{xV4Oa7wh9?^yXXnU1jtkers<oqaR@XO=a}*BLH;e+WV3C zsNATa#Q$BaFK55-1?}B<Do`oce~R@_C|XJXPMMR1xTlQ1kM;d!^lqGpsFaKUF4mWe z|0L^k%1p`l`uL+ou#CRI`f~mIWs(!3-1-?{{ViqeJMl6_Wxs-w@fBEqpp1Ti&dey3 z>`+SDJL!WB%D0rJMDM9l`mBNyJw6-BQt`k>QPJzHaMqkvO?%=B)Y5k;&oN{}l#pcM zr)jbCM+?@}a@Zx0)=n?;T28^E822-e_p7bFN5PwB9>?95_X2ng@2m0g{Mqu}2CtWS zypC*nHSl|YdE}EUHvX;vZ;W}o?`-XTkD@)P#&;@v+rg`69`AEodryPsVcx0wr3ZcI zY1lgfUf*eq?}`QZKFB=I1GeL90nhz!<uB(0TV4jdPUiKiDBJQL2d}`qQ_b(o;MISi z`aRYBPJkC;9_I_&e$PkF9AO^k4O`x7%B>%M@%rlkPh;Mx*7Hxm>ti106We~D18+C; zIIr094uKb%Qsd+NV#}+n6r%bg#p66<%ew|V5A!(R*z(%J(>_-AIPaA3@-;YH;Incs zupXb7?*(Fd>VA!UwjA}hGoD2LYk(XA5`P1b_-ld0zn1IkS$-7xlz2OVq|dS3&GMZr zx3PR2`TIif-v#1N2Clb&)b1eg0@Ods`X2-F3E!1veUkMnS$_=>M;h0qtp7UeKgaWh z?Cb|pKSMyW|18)4k}=Hsb|6CGS`Q@NYSz~?)&a@C#jO835;57`4@AgZdx6yMIUx1> z0PEvGgvb?UeH-h)!*~gBDgJ$e=QZ998jk|W?jayT<r)Q&-60^^eTMN7An`ka#J>v& z*Il;&iN6L&{A(HigSA1tV?emzIt(P<K_Kx48J}kSIpdu`YPSK1p}LxZ)b4t&cQ7vG z`j4>oi9f>l0uV!RJqx6Ezv21^8Pi-JWqBpzQXovaE@yom*B4=g>>mQ6%Jml@*?k2+ z<i{_7q|d8*S59GF57)0_Yy=_=yRKtB<yvZg6qV9G5XJQx5URSpK+^x7F#x3f;su@y zybyRT@Dntm`f(uM!<HUmneqj#pFKdb_kFHk&q#m&llxEUtNe@_qlfVZM(j<pQ&rFC zX1s{e$%r)}c>swa1Pw#2@-Vs?DVS7WfKkFh#(u^=#t@^2(ak6r3ur9cGxjs~F@_jD zjBZB3Sim@OTQ$ho&)CNpV)QV&83D50&oGX~xL(C(rt&+M53;<M<=0t$kmY}{>_F$# z{w<cTVtIn)dzk+b%Q@Chv-}FnpRv4%`3sPwsBB_=4a>h``8<}_Gyh_in^=Dt%STwQ zXZb4TFJ*Z<`XC?7^E=Hi$pf-?As%PF`Tp<?lMf!1Rm?Zve-fyp_U8M@TGoe%jB*ys z=KCI~l27Z2%5Au)z4^ZJ2bRtA{b82P^Sp;;^Znpzmiv&jsJsJzr9C7EDi3l0wEn2j z{v*BlenNSKWb=LVF_uHj|CH^S?~5bc-h6+0ll29(qeA(M?3wQe<18z!5a;2>fjaZ= z*e|l)d><KQ*?d2syh!%U_YpdakZitR+yNP)RX&_2Z<!|_o+no!PP5x@o2UN({>|2l zAb)&`BopaOIFS*-M6x3qq|Xy+OG#fjEFqE11g)<fX7hO0)-IdsNOv-wE@ji-@JnmM z>2%lTgiSrZ3zgPJ(Pe3^`c4y$$4gbw`@%N0_zZN<47bJf#|+0Z%Tr55!LX^G8vz@_ z+*sHVW=F+FKQBIZjM<U0(a(vQjlMK`Hl#Umw9(IrsEt0EvZ>5OySLg@r&Ez++@?Mi zv#FGy>t^cBsk|>dvv!jy5yby*iANLGa;Bawfu=neiDLQOFF!|G3i>u_3361Hgb~iV z=l1xID(EO2*%FL&ZVAT1UEokncO<oqszfk_|7DYjSuInz&2)zo={P=xTD8(85$uSf yWpWz`QRrmLIrnndvz76##Fl6Wb7HbpB6`2v+H*&?xhLG+A%a`6W0DbMo&N#?Hus|d -- GitLab