From: Lukáš Jiřiště Date: Sun, 28 Jun 2026 19:47:57 +0000 (+0200) Subject: Add Makefile, remove parsing_table X-Git-Url: https://git.ljiriste.work/?a=commitdiff_plain;h=54a9334714e26a907b05f89ff44267a545093c85;p=KyciFTA Add Makefile, remove parsing_table The Makefile contains rules for creating the parsing_table from grammar using my generator. It also generates a source file from the grammar and parsing_table files. --- diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ab4eaa4 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +src/grammar.c +parsing_table +*.o +kycifta +tags diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..acc2174 --- /dev/null +++ b/Makefile @@ -0,0 +1,85 @@ +CC := gcc +CFLAGS = -std=gnu99 -Wall -Wextra -Werror -Wpedantic + +ifneq ("$(wildcard .debug)","") + CFLAGS += -g +endif + +RM := rm -f + + +SUBPROJECTS := Libft + +INCDIR := inc/ +INCDIR += $(addsuffix /inc, $(SUBPROJECTS)) +INCLUDE := $(addprefix -I, $(INCDIR)) + + +SRCDIR := src/ + +SOURCES := \ + main.c \ + grammar.c \ + +SOURCES := $(addprefix $(SRCDIR), $(SOURCES)) + +OBJECTS := $(SOURCES:.c=.o) + +NAME := kycifta + +all : $(NAME) + +debug : .debug + $(MAKE) -C Libft debug + $(MAKE) all + +nodebug : + $(MAKE) -C Libft nodebug + $(RM) .debug + $(MAKE) shallow_re + +.% : + $(MAKE) shallow_fclean + touch $@ + +$(NAME) : $(OBJECTS) Libft/libft.a + $(CC) $(CFLAGS) -o $@ $^ + +FORCE: ; + +Libft/libft.a : FORCE | Libft/Makefile + $(MAKE) -C Libft + +%.o : %.c | Libft/Makefile + $(CC) $(CFLAGS) -o $@ -c $< $(INCLUDE) + +%/Makefile : + git submodule update --init $($@%/Makefile=%) + +# The parsing_table_generator is available at https://git.ljiriste.work/?p=parsing_table_generator or git://ljiriste.work/parsing_table_generator +parsing_table: grammar + $(RM) $@ + parsing_table_generator $< + +# Option -t of xxd available as of version 9.2.0205 +$(SRCDIR)grammar.c : grammar parsing_table + echo "#include \"grammar.h\"\n" >$@ + xxd -i -t $(word 1, $^) >>$@ + echo -n "\n" >>$@ + xxd -i -t $(word 2, $^) >>$@ + +clean : + $(RM) $(OBJECTS) + +fclean : clean + $(RM) $(NAME) + $(MAKE) -C Libft fclean + +re : fclean + $(MAKE) all + +shallow_fclean : clean + $(RM) $(NAME) + +shallow_re : shallow_fclean + $(MAKE) all diff --git a/parsing_table b/parsing_table deleted file mode 100644 index 729b01d..0000000 --- a/parsing_table +++ /dev/null @@ -1,89 +0,0 @@ -State;WORD;EXP;DOT;FROM;ATOM;COMMA;INT;N_OUT_OF_K;TIMES;PLUS;RIGHT_PARA;LEFT_PARA;SYSTEM;INSTANTIATE;$;fault_tree;statement;atom;system;instantiation;classname;objectname;system_def;fta_logic;fta_sum;fta_product;name;list;probability;function_name;dynamic_library;value;mantisa;exponent;path -0;;;;;s1;;;;;;;;s25;s77;;82;83;85;86;87;;;;;;;;;;;;;;; -1;s2;;;;;;;;;;;;;;;;;;;;3;;;;;;24;;;;;;;; -2;;;;;;;;;;;;r32;;;;;;;;;;;;;;;;;;;;;;; -3;;;;;;;;;;;;s4;;;;;;;;;;;;;;;;;;;;;;; -4;s5;;;;;;s6;;;;;;;;;;;;;;;;;;;;9;;10;12;;19;20;; -5;;;;r32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -6;;r23;s7;;;;;;;;r23;;;;;;;;;;;;;;;;;;;;;;;; -7;;;;;;;s8;;;;;;;;;;;;;;;;;;;;;;;;;;;; -8;;r24;;;;;;;;;r24;;;;;;;;;;;;;;;;;;;;;;;; -9;;;;r28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -10;;;;;;;;;;;s11;;;;;;;;;;;;;;;;;;;;;;;; -11;;;;;r18;;;;;;;;r18;r18;r18;;;;;;;;;;;;;;;;;;;; -12;;;;s13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -13;s14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16;;;;18 -14;s14;;;;;;;;;;r31;;;;;;;;;;;;;;;;;;;;;;;;15 -15;;;;;;;;;;;r30;;;;;;;;;;;;;;;;;;;;;;;; -16;;;;;;;;;;;s17;;;;;;;;;;;;;;;;;;;;;;;; -17;;;;;r19;;;;;;;;r19;r19;r19;;;;;;;;;;;;;;;;;;;; -18;;;;;;;;;;;r29;;;;;;;;;;;;;;;;;;;;;;;; -19;;;;;;;;;;;r20;;;;;;;;;;;;;;;;;;;;;;;; -20;;s21;;;;;;;;;r21;;;;;;;;;;;;;;;;;;;;;;;23; -21;;;;;;;s22;;;;;;;;;;;;;;;;;;;;;;;;;;;; -22;;;;;;;;;;;r25;;;;;;;;;;;;;;;;;;;;;;;; -23;;;;;;;;;;;r22;;;;;;;;;;;;;;;;;;;;;;;; -24;;;;;;;;;;;;r26;;;;;;;;;;;;;;;;;;;;;;; -25;s2;;;;;;;;;;;;;;;;;;;;26;;;;;;24;;;;;;;; -26;;;;;;;;;;;;s27;;;;;;;;;;;;;;;;;;;;;;; -27;s28;;;;;;;s29;;;;s39;;s65;;;;;;72;;;75;74;42;43;46;;;;;;;; -28;;;;;;;;;r32;r32;r32;;;;;;;;;;;;;;;;;;;;;;;; -29;;;;;;;;;;;;s30;;;;;;;;;;;;;;;;;;;;;;; -30;;;;;;;s31;;;;;;;;;;;;;;;;;;;;;;;;;;;; -31;;;;;;s32;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -32;s33;;;;;;;s34;;;;s38;;;;;;;;;;;;51;53;54;57;63;;;;;;; -33;;;;;;r32;;;r32;r32;r32;;;;;;;;;;;;;;;;;;;;;;;; -34;;;;;;;;;;;;s35;;;;;;;;;;;;;;;;;;;;;;; -35;;;;;;;s36;;;;;;;;;;;;;;;;;;;;;;;;;;;; -36;;;;;;s37;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -37;s33;;;;;;;s34;;;;s38;;;;;;;;;;;;51;53;54;57;61;;;;;;; -38;s28;;;;;;;s29;;;;s39;;;;;;;;;;;;49;42;43;46;;;;;;;; -39;s28;;;;;;;s29;;;;s39;;;;;;;;;;;;40;42;43;46;;;;;;;; -40;;;;;;;;;;;s41;;;;;;;;;;;;;;;;;;;;;;;; -41;;;;;;;;;;r14;r14;;;;;;;;;;;;;;;;;;;;;;;; -42;;;;;;;;;;;r9;;;;;;;;;;;;;;;;;;;;;;;; -43;;;;;;;;;;s44;r11;;;;;;;;;;;;;;;;;;;;;;;; -44;s28;;;;;;;s29;;;;s39;;;;;;;;;;;;;45;43;46;;;;;;;; -45;;;;;;;;;;;r10;;;;;;;;;;;;;;;;;;;;;;;; -46;;;;;;;;;s47;r13;r13;;;;;;;;;;;;;;;;;;;;;;;; -47;s28;;;;;;;s29;;;;s39;;;;;;;;;;;;;;48;46;;;;;;;; -48;;;;;;;;;;r12;r12;;;;;;;;;;;;;;;;;;;;;;;; -49;;;;;;;;;;;s50;;;;;;;;;;;;;;;;;;;;;;;; -50;;;;;;r14;;;;r14;r14;;;;;;;;;;;;;;;;;;;;;;;; -51;;;;;;s52;;;;;r17;;;;;;;;;;;;;;;;;;;;;;;; -52;s33;;;;;;;s34;;;;s38;;;;;;;;;;;;51;53;54;57;60;;;;;;; -53;;;;;;r9;;;;;r9;;;;;;;;;;;;;;;;;;;;;;;; -54;;;;;;r11;;;;s55;r11;;;;;;;;;;;;;;;;;;;;;;;; -55;s33;;;;;;;s34;;;;s38;;;;;;;;;;;;;56;54;57;;;;;;;; -56;;;;;;r10;;;;;r10;;;;;;;;;;;;;;;;;;;;;;;; -57;;;;;;r13;;;s58;r13;r13;;;;;;;;;;;;;;;;;;;;;;;; -58;s33;;;;;;;s34;;;;s38;;;;;;;;;;;;;;59;57;;;;;;;; -59;;;;;;r12;;;;r12;r12;;;;;;;;;;;;;;;;;;;;;;;; -60;;;;;;;;;;;r16;;;;;;;;;;;;;;;;;;;;;;;; -61;;;;;;;;;;;s62;;;;;;;;;;;;;;;;;;;;;;;; -62;;;;;;r15;;;;r15;r15;;;;;;;;;;;;;;;;;;;;;;;; -63;;;;;;;;;;;s64;;;;;;;;;;;;;;;;;;;;;;;; -64;;;;;;;;;;r15;r15;;;;;;;;;;;;;;;;;;;;;;;; -65;s66;;;;;;;;;;;;;;;;;;;;67;;;;;;71;;;;;;;; -66;r32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -67;s68;;;;;;;;;;;;;;;;;;;;;69;;;;;70;;;;;;;; -68;r32;;;;;;;r32;;;;r32;;r32;;;;;;;;;;;;;;;;;;;;; -69;r5;;;;;;;r5;;;;r5;;r5;;;;;;;;;;;;;;;;;;;;; -70;r27;;;;;;;r27;;;;r27;;r27;;;;;;;;;;;;;;;;;;;;; -71;r26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -72;s28;;;;;;;s29;;;;s39;;s65;;;;;;72;;;73;74;42;43;46;;;;;;;; -73;;;;;;;;;;;r7;;;;;;;;;;;;;;;;;;;;;;;; -74;;;;;;;;;;;r8;;;;;;;;;;;;;;;;;;;;;;;; -75;;;;;;;;;;;s76;;;;;;;;;;;;;;;;;;;;;;;; -76;;;;;r6;;;;;;;;r6;r6;r6;;;;;;;;;;;;;;;;;;;; -77;s66;;;;;;;;;;;;;;;;;;;;78;;;;;;71;;;;;;;; -78;s79;;;;;;;;;;;;;;;;;;;;;80;;;;;81;;;;;;;; -79;;;;;r32;;;;;;;;r32;r32;r32;;;;;;;;;;;;;;;;;;;; -80;;;;;r5;;;;;;;;r5;r5;r5;;;;;;;;;;;;;;;;;;;; -81;;;;;r27;;;;;;;;r27;r27;r27;;;;;;;;;;;;;;;;;;;; -82;;;;;;;;;;;;;;;acc;;;;;;;;;;;;;;;;;;;; -83;;;;;s1;;;;;;;;s25;s77;r1;84;83;85;86;87;;;;;;;;;;;;;;; -84;;;;;;;;;;;;;;;r0;;;;;;;;;;;;;;;;;;;; -85;;;;;r2;;;;;;;;r2;r2;r2;;;;;;;;;;;;;;;;;;;; -86;;;;;r3;;;;;;;;r3;r3;r3;;;;;;;;;;;;;;;;;;;; -87;;;;;r4;;;;;;;;r4;r4;r4;;;;;;;;;;;;;;;;;;;;