From: Lukáš Jiřiště Date: Wed, 18 Mar 2026 20:17:04 +0000 (+0100) Subject: Add grammar and generate parsing table X-Git-Url: https://git.ljiriste.work/?a=commitdiff_plain;h=4aaf3a83675f7e65f83357a85b00410ba7e389b3;p=KyciFTA Add grammar and generate parsing table --- diff --git a/grammar b/grammar new file mode 100644 index 0000000..b4e61bf --- /dev/null +++ b/grammar @@ -0,0 +1,33 @@ +fault_tree -> statement fault_tree +fault_tree -> statement +statement -> atom +statement -> system +statement -> instantiation +instantiation -> INSTANTIATE classname objectname +system -> SYSTEM classname LEFT_PARA system_def RIGHT_PARA +system_def -> instantiation system_def +system_def -> fta_logic +fta_logic -> fta_sum +fta_sum -> fta_product PLUS fta_sum +fta_sum -> fta_product +fta_product -> name TIMES fta_product +fta_product -> name +fta_product -> LEFT_PARA fta_logic RIGHT_PARA +fta_product -> N_OUT_OF_K LEFT_PARA INT COMMA list RIGHT_PARA +list -> fta_logic COMMA list +list -> fta_logic +atom -> ATOM classname LEFT_PARA probability RIGHT_PARA +atom -> ATOM classname LEFT_PARA function_name FROM dynamic_library RIGHT_PARA +probability -> value +value -> mantisa +value -> mantisa exponent +mantisa -> INT +mantisa -> INT DOT INT +exponent -> EXP INT +classname -> name +objectname -> name +function_name -> name +dynamic_library -> path +path -> WORD path +path -> WORD +name -> WORD diff --git a/parsing_table b/parsing_table new file mode 100644 index 0000000..729b01d --- /dev/null +++ b/parsing_table @@ -0,0 +1,89 @@ +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;;;;;;;;;;;;;;;;;;;;