--- /dev/null
+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
+++ /dev/null
-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;;;;;;;;;;;;;;;;;;;;