From 1dc6358e4b34757e8a2746c646a948a6be64f4f3 Mon Sep 17 00:00:00 2001 From: Veit Heller Date: Fri, 25 Jul 2014 02:55:30 +0200 Subject: [PATCH] Updated interpreter --- nbfi/Makefile | 37 +++++++++++++++++++++++++++++++++++++ nbfi/helloworld.bf | 42 ------------------------------------------ nbfi/hw.bf | 1 - nbfi/main.c | 6 ------ nbfi/nbfi | Bin 8988 -> 0 bytes nbfi/{ => src}/nbfi.c | 6 +++--- 6 files changed, 40 insertions(+), 52 deletions(-) create mode 100644 nbfi/Makefile delete mode 100644 nbfi/helloworld.bf delete mode 100644 nbfi/hw.bf delete mode 100644 nbfi/main.c delete mode 100755 nbfi/nbfi rename nbfi/{ => src}/nbfi.c (94%) diff --git a/nbfi/Makefile b/nbfi/Makefile new file mode 100644 index 0000000..4cd7fa8 --- /dev/null +++ b/nbfi/Makefile @@ -0,0 +1,37 @@ +override CFLAGS+=-Werror -Wall -g -fPIC -O2 -DNDEBUG -std=c99 -ftrapv -Wfloat-equal -Wundef -Wwrite-strings -Wconversion -Wuninitialized +PREFIX=/usr/bin +BUILDDIR=bin/ +CC=gcc-mp-4.9 + +TARGET=nbfi +SOURCES=$(wildcard src/*.c) + +#Makes everything +all: + mkdir $(BUILDDIR) 2> /dev/null || true + $(CC) $(CFLAGS) $(SOURCES) -o $(BUILDDIR)$(TARGET) + @echo Running tests + ./test.sh + +#Uses picky extensions and makes everything(Extensions may break compiling) +dev: + make all CFLAGS+=-Wshadow -Wunreachable-code -Wswitch-enum -Wswitch-default -Wcast-align -Winit-self -Wpointer-arith -Weffc++ + +#Cleans directory(no uninstall!) +clean: + rm -rf bin + +#Installs into specified(or default) directory +install: + install -d $(PREFIX)/NBFI + install $(BUILDDIR)$(TARGET) $(PREFIX)/NBFI + +#Uninstalls from specified(or default)directory +uninstall: + rm -rf $(PREFIX)/NBFI + +#Checks for bad functions +BADFUNCS='[^_.>a-zA-Z0-9](str(n?cpy|n?cat|xfrm|n?dup|str|pbrk|tok|_)|stpn?cpy|a?sn?printf|byte_)' +check: + @echo Files with potentially dangerous functions: + @grep $(BADFUNCS) $(SOURCES) || echo None diff --git a/nbfi/helloworld.bf b/nbfi/helloworld.bf deleted file mode 100644 index f079b46..0000000 --- a/nbfi/helloworld.bf +++ /dev/null @@ -1,42 +0,0 @@ -++++++++++ -[ - > - +++++++ - > - ++++++++++ - > - +++ - > - + - <<<< - - -] -> -++ -. -> -+ -. -+++++++ -.. -+++ -. -> -++ -. -<< -+++++++++++++++ -. -> -. -+++ -. ------- -. --------- -. -> -+ -. -> -. diff --git a/nbfi/hw.bf b/nbfi/hw.bf deleted file mode 100644 index 265e751..0000000 --- a/nbfi/hw.bf +++ /dev/null @@ -1 +0,0 @@ -++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>. diff --git a/nbfi/main.c b/nbfi/main.c deleted file mode 100644 index fc073e0..0000000 --- a/nbfi/main.c +++ /dev/null @@ -1,6 +0,0 @@ -#include - -int main(){ - printf("Hello, world!\n"); - return 0; -} diff --git a/nbfi/nbfi b/nbfi/nbfi deleted file mode 100755 index 86346afec8afcd1f529ef1a58dc83bb09642584f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8988 zcmeHNU2Ggz6~43CO$=Fkoi>1hR+^Ru9Fp2;X&Zy6u-j}pQ6q2@hnBuf_Gi}KdUs|u zJJZCdrcO6byKG!6)CVL4ic|?`0Pzy3Nc_}LAvX$w5DC;E1O`E~qcv5;Ls*62;X8Nk z?9c2rQpE#2?2+%>bME=M=bm%!?C!n(_4U7RY++2=#MnZJF}4luYJ{;xCIe&agJ=qx zs!mQk5`Qv&=yNpM4pKYWl_EQDLQqww;!jMqi*WtH_Aw@C_{QK4ZzQ3rmUi4C%!8o4 zbF>(+)<_9JG_9)vVYbk~fv9THvXjNeP|)5>{hqy#3kje075ap|&0@f_r_N}(f@WeY zXm3T>`@E1R`sV(nik6wxryKU$<2N+m`S%aOCmOkIK$~rhs;V}lX3Ruh^F)IF4aPis zSA_+lTkSOr3#6IXeG^j?EnMV}=k@4iZ_v+gOJ2#YNE7^;Hd@jOy1TtTe+t-X^^4+9 zwc>-S>N&MImroiwwP2YY_WFc>zFR~G?KS3tQB}<)Zf0*t*c%fL5Z!8ze0#6&9JiM& z79VI11lPMD?CqZt@q?&eW2D7n+f;{tuy=2BAZYK6^kuFSZi=+kUCD2QeBG#}OL5Zdq^ z-n-}-7&rrZE7~L)0jBTFWtBQn_oTg+;1k6#k(+$)L>F%6OG;roTf1V*0w-;G3@JBpn0e^h(~Lbr0-)1 zQgd$1e|WBFY59?dM&L&_2_XRKjidQ`UUZ>n6s*ylkxJya=a8RHr3gi*7Dw*!ZG05E zaJ4#-q`a$09js9mbNdF zy0R3x1zjZ^Qc@Q|zywpIi|$%fVl0QY8|@(4X{f#1whm*Y^GngcTmAn^Uikbr`q-=S z4drVsOP<9WEVCL8NzD0PH~yo7A7akwZv0(>zlk}yZv3r+A7&24u4Dch-tshmggLvr z@h=GeX68h@@xLqhTUaG><;lzJ!H=9h$n0&(()~N}!g&oUtooyWyKW_N9^9o#sre$Wm}6s^<0~9j zD)B0|LG?UUGzxsa?#32x;VxhL0H(a;F$D^2vQo-2y*ZJl-vA*Ws zgCW{GtMU33cZk*cv41kFC*v~vmCINuUzac$vmNKDZrSPQ-iNWQl~TPg_WVu=we7g= z6mfsYp;Wvbmst)&@Gg*dqtVv}`Z%WVm#5Lrpj|>M#p{w&B?MkLe*yyEVy}9>A=Bh( z`6ceD^Rpn=ZRNh)&V{##Wf?9wWpJu<YGsc~zKGDbfkUPD4y^`Fu(`hu~V}ft_y-P z$LskUWDkv1zYTjL&82m@Jim@t>so1kJ;W=eDfcYoP+e3tRL{S>Lh2i;2(gF_pbgrij!mKUw3zW2}^W$Eb!-Z{CSc;Px0pq{P|@( z@%~-9{Q!`O!|skxqFtmN3)BPsxX^L~2&f7Uhhc%Z$?6C@qR;BaFD z=e4|H&W*qY4v(9LJ}v8ZKB<|qk&zSTw4K*c?#L;H_F`r;ub9Uqhiqg(oxk;dH^yAADR9pM4&B_RUZm~3G1R49ysWBquo zakvl9gJ=~Y{~&P*g7V=pa4?C-Wu$i!ZTVl`JXgp(L5JR7z-ia}F~mNDG9p;yO5OAp zFxb@d#e)4s@jLbRqW`Pt-xhsc^da&4Gb;L^ogUqbKraHl2=pS*i$E^|y$JLo(2GDX z0=)?IBG8LKF9QGj2yDA^=yCF5+qg7{44>lUW_(Y?uElt(g2#hq|i z&Cg&KEoEC8?$Q%9{U=gJzJTK!wpTFNr}K%d&L-#_Y!j=+@c7RA@%RcIcb$vv{mJGl zo7nX~MseiI_Mwp+0UhJ;Qx))t9u_nm-H^=Ima90Bum~W=0JQx7FQB8@0bD#T;PQ-& z(H)vck8_$1_6Bf3=HI*0ePT=^DNlZs(~Q+%i1fz?F2L`3y_K@@o5{&cO=mTx z7QC}ThHAq>Ai4ssvpWkw^$WnS45sn|XenH;GX0tq)!3**uLAj#img#~9hHtX5c~&B CWWF>2 diff --git a/nbfi/nbfi.c b/nbfi/src/nbfi.c similarity index 94% rename from nbfi/nbfi.c rename to nbfi/src/nbfi.c index 9ec8aee..1809e4b 100644 --- a/nbfi/nbfi.c +++ b/nbfi/src/nbfi.c @@ -20,8 +20,8 @@ #define STACK_EMPTY() (sp == 0) #define STACK_FULL() (sp == MAX_SIZE) -static inline void die(int code, char* message){ - fprintf(stderr, message); +static inline void die(int code, const char* message){ + fprintf(stderr, "%s", message); exit(code); } @@ -83,7 +83,7 @@ void execute(){ case OP_INC_VAL: data[ptr]++; break; case OP_DEC_VAL: data[ptr]--; break; case OP_OUT: putchar(data[ptr]); break; - case OP_IN: data[ptr] = (unsigned int)getchar(); break; + case OP_IN: data[ptr] = (short unsigned int)getchar(); break; case OP_JMP_FWD: if(!data[ptr]) { pc = program[pc].operand; } break; case OP_JMP_BCK: if(data[ptr]) { pc = program[pc].operand; } break; default: die(2, "Unknown instruction.");