From: Lukas Jiriste Date: Fri, 21 Jun 2024 13:56:52 +0000 (+0200) Subject: Add grammar rules and parsing table for minishell X-Git-Url: https://git.ljiriste.work/?a=commitdiff_plain;h=03f57bbce25de0b53c20575f8a2d4ffdd6def724;p=42%2Fminishell.git Add grammar rules and parsing table for minishell --- diff --git a/shell_parsing_table b/shell_parsing_table new file mode 100644 index 0000000..0e74cc3 --- /dev/null +++ b/shell_parsing_table @@ -0,0 +1,339 @@ +State;AND_IF;OR_IF;PIPE;LPARA;RPARA;WORD;ASSIGNMENT_WORD;IO_NUMBER;DLESS;LESS;GREAT;DGREAT;$;result;program;pipeline;command;comp_command;simple_command;cmd_suffix;cmd_prefix;cmd_word;cmd_name;io_redirect;io_here;here_end;io_file;filename +0;;;;s8;;s11;s10;s13;s18;s15;s16;s17;;;1;2;3;5;4;;6;;7;9;14;;12; +1;s19;s20;;;;;;;;;;;acc;;;;;;;;;;;;;;; +2;r3;r3;s21;;;;;;;;;;r3;;;;;;;;;;;;;;; +3;r4;r4;r4;;;;;;;;;;r4;;;;;;;;;;;;;;; +4;r6;r6;;;;;;;;;;;r6;;;;;;;;;;;;;;; +5;r7;r7;;;;;;;;;;;r7;;;;;;;;;;;;;;; +6;r11;r11;;;;s25;s24;s27;s32;s29;s30;s31;r11;;;;;;;;;22;;23;28;;26; +7;r13;r13;;;;s35;;s37;s42;s39;s40;s41;r13;;;;;;;33;;;;34;38;;36; +8;;;;s50;;s53;s52;s55;s60;s57;s58;s59;;;43;44;45;47;46;;48;;49;51;56;;54; +9;r18;r18;;;;r18;r18;r18;r18;r18;r18;r18;r18;;;;;;;;;;;;;;; +10;r20;r20;;;;r20;r20;r20;r20;r20;r20;r20;r20;;;;;;;;;;;;;;; +11;r23;r23;;;;r23;;r23;r23;r23;r23;r23;r23;;;;;;;;;;;;;;; +12;r24;r24;;;;r24;;;;;;;r24;;;;;;;;;;;;;;; +13;;;;;;;;;s18;s15;s16;s17;;;;;;;;;;;;;62;;61; +14;r26;r26;;;;r26;;;;;;;r26;;;;;;;;;;;;;;; +15;;;;;;s64;;;;;;;;;;;;;;;;;;;;;;63 +16;;;;;;s64;;;;;;;;;;;;;;;;;;;;;;65 +17;;;;;;s64;;;;;;;;;;;;;;;;;;;;;;66 +18;;;;;;s68;;;;;;;;;;;;;;;;;;;;67;; +19;;;;s8;;s11;s10;s13;s18;s15;s16;s17;;;;69;3;5;4;;6;;7;9;14;;12; +20;;;;s8;;s11;s10;s13;s18;s15;s16;s17;;;;70;3;5;4;;6;;7;9;14;;12; +21;;;;s76;;s79;s78;s81;s86;s83;s84;s85;;;;;71;73;72;;74;;75;77;82;;80; +22;r10;r10;;;;s35;;s37;s42;s39;s40;s41;r10;;;;;;;87;;;;34;38;;36; +23;r19;r19;;;;r19;r19;r19;r19;r19;r19;r19;r19;;;;;;;;;;;;;;; +24;r21;r21;;;;r21;r21;r21;r21;r21;r21;r21;r21;;;;;;;;;;;;;;; +25;r22;r22;;;;r22;;r22;r22;r22;r22;r22;r22;;;;;;;;;;;;;;; +26;r24;r24;;;;r24;r24;r24;r24;r24;r24;r24;r24;;;;;;;;;;;;;;; +27;;;;;;;;;s32;s29;s30;s31;;;;;;;;;;;;;89;;88; +28;r26;r26;;;;r26;r26;r26;r26;r26;r26;r26;r26;;;;;;;;;;;;;;; +29;;;;;;s91;;;;;;;;;;;;;;;;;;;;;;90 +30;;;;;;s91;;;;;;;;;;;;;;;;;;;;;;92 +31;;;;;;s91;;;;;;;;;;;;;;;;;;;;;;93 +32;;;;;;s95;;;;;;;;;;;;;;;;;;;;94;; +33;r12;r12;;;;s97;;s99;s104;s101;s102;s103;r12;;;;;;;;;;;96;100;;98; +34;r14;r14;;;;r14;;r14;r14;r14;r14;r14;r14;;;;;;;;;;;;;;; +35;r16;r16;;;;r16;;r16;r16;r16;r16;r16;r16;;;;;;;;;;;;;;; +36;r24;r24;;;;;;;;;;;r24;;;;;;;;;;;;;;; +37;;;;;;;;;s42;s39;s40;s41;;;;;;;;;;;;;106;;105; +38;r26;r26;;;;;;;;;;;r26;;;;;;;;;;;;;;; +39;;;;;;s108;;;;;;;;;;;;;;;;;;;;;;107 +40;;;;;;s108;;;;;;;;;;;;;;;;;;;;;;109 +41;;;;;;s108;;;;;;;;;;;;;;;;;;;;;;110 +42;;;;;;s112;;;;;;;;;;;;;;;;;;;;111;; +43;s114;s115;;;s113;;;;;;;;;;;;;;;;;;;;;;; +44;r3;r3;s116;;r3;;;;;;;;;;;;;;;;;;;;;;; +45;r4;r4;r4;;r4;;;;;;;;;;;;;;;;;;;;;;; +46;r6;r6;;;r6;;;;;;;;;;;;;;;;;;;;;;; +47;r7;r7;;;r7;;;;;;;;;;;;;;;;;;;;;;; +48;r11;r11;;;r11;s120;s119;s122;s127;s124;s125;s126;;;;;;;;;;117;;118;123;;121; +49;r13;r13;;;r13;s130;;s132;s137;s134;s135;s136;;;;;;;;128;;;;129;133;;131; +50;;;;s50;;s53;s52;s55;s60;s57;s58;s59;;;138;44;45;47;46;;48;;49;51;56;;54; +51;r18;r18;;;r18;r18;r18;r18;r18;r18;r18;r18;;;;;;;;;;;;;;;; +52;r20;r20;;;r20;r20;r20;r20;r20;r20;r20;r20;;;;;;;;;;;;;;;; +53;r23;r23;;;r23;r23;;r23;r23;r23;r23;r23;;;;;;;;;;;;;;;; +54;r24;r24;;;r24;r24;;;;;;;;;;;;;;;;;;;;;; +55;;;;;;;;;s60;s57;s58;s59;;;;;;;;;;;;;140;;139; +56;r26;r26;;;r26;r26;;;;;;;;;;;;;;;;;;;;;; +57;;;;;;s142;;;;;;;;;;;;;;;;;;;;;;141 +58;;;;;;s142;;;;;;;;;;;;;;;;;;;;;;143 +59;;;;;;s142;;;;;;;;;;;;;;;;;;;;;;144 +60;;;;;;s146;;;;;;;;;;;;;;;;;;;;145;; +61;r25;r25;;;;r25;;;;;;;r25;;;;;;;;;;;;;;; +62;r27;r27;;;;r27;;;;;;;r27;;;;;;;;;;;;;;; +63;r30;r30;;;;r30;;;;;;;r30;;;;;;;;;;;;;;; +64;r33;r33;;;;r33;;;;;;;r33;;;;;;;;;;;;;;; +65;r31;r31;;;;r31;;;;;;;r31;;;;;;;;;;;;;;; +66;r32;r32;;;;r32;;;;;;;r32;;;;;;;;;;;;;;; +67;r28;r28;;;;r28;;;;;;;r28;;;;;;;;;;;;;;; +68;r29;r29;;;;r29;;;;;;;r29;;;;;;;;;;;;;;; +69;r1;r1;s21;;;;;;;;;;r1;;;;;;;;;;;;;;; +70;r2;r2;s21;;;;;;;;;;r2;;;;;;;;;;;;;;; +71;r5;r5;r5;;;;;;;;;;r5;;;;;;;;;;;;;;; +72;r6;r6;r6;;;;;;;;;;r6;;;;;;;;;;;;;;; +73;r7;r7;r7;;;;;;;;;;r7;;;;;;;;;;;;;;; +74;r11;r11;r11;;;s150;s149;s152;s157;s154;s155;s156;r11;;;;;;;;;147;;148;153;;151; +75;r13;r13;r13;;;s160;;s162;s167;s164;s165;s166;r13;;;;;;;158;;;;159;163;;161; +76;;;;s50;;s53;s52;s55;s60;s57;s58;s59;;;168;44;45;47;46;;48;;49;51;56;;54; +77;r18;r18;r18;;;r18;r18;r18;r18;r18;r18;r18;r18;;;;;;;;;;;;;;; +78;r20;r20;r20;;;r20;r20;r20;r20;r20;r20;r20;r20;;;;;;;;;;;;;;; +79;r23;r23;r23;;;r23;;r23;r23;r23;r23;r23;r23;;;;;;;;;;;;;;; +80;r24;r24;r24;;;r24;;;;;;;r24;;;;;;;;;;;;;;; +81;;;;;;;;;s86;s83;s84;s85;;;;;;;;;;;;;170;;169; +82;r26;r26;r26;;;r26;;;;;;;r26;;;;;;;;;;;;;;; +83;;;;;;s172;;;;;;;;;;;;;;;;;;;;;;171 +84;;;;;;s172;;;;;;;;;;;;;;;;;;;;;;173 +85;;;;;;s172;;;;;;;;;;;;;;;;;;;;;;174 +86;;;;;;s176;;;;;;;;;;;;;;;;;;;;175;; +87;r9;r9;;;;s97;;s99;s104;s101;s102;s103;r9;;;;;;;;;;;96;100;;98; +88;r25;r25;;;;r25;r25;r25;r25;r25;r25;r25;r25;;;;;;;;;;;;;;; +89;r27;r27;;;;r27;r27;r27;r27;r27;r27;r27;r27;;;;;;;;;;;;;;; +90;r30;r30;;;;r30;r30;r30;r30;r30;r30;r30;r30;;;;;;;;;;;;;;; +91;r33;r33;;;;r33;r33;r33;r33;r33;r33;r33;r33;;;;;;;;;;;;;;; +92;r31;r31;;;;r31;r31;r31;r31;r31;r31;r31;r31;;;;;;;;;;;;;;; +93;r32;r32;;;;r32;r32;r32;r32;r32;r32;r32;r32;;;;;;;;;;;;;;; +94;r28;r28;;;;r28;r28;r28;r28;r28;r28;r28;r28;;;;;;;;;;;;;;; +95;r29;r29;;;;r29;r29;r29;r29;r29;r29;r29;r29;;;;;;;;;;;;;;; +96;r15;r15;;;;r15;;r15;r15;r15;r15;r15;r15;;;;;;;;;;;;;;; +97;r17;r17;;;;r17;;r17;r17;r17;r17;r17;r17;;;;;;;;;;;;;;; +98;r24;r24;;;;r24;;r24;r24;r24;r24;r24;r24;;;;;;;;;;;;;;; +99;;;;;;;;;s104;s101;s102;s103;;;;;;;;;;;;;178;;177; +100;r26;r26;;;;r26;;r26;r26;r26;r26;r26;r26;;;;;;;;;;;;;;; +101;;;;;;s180;;;;;;;;;;;;;;;;;;;;;;179 +102;;;;;;s180;;;;;;;;;;;;;;;;;;;;;;181 +103;;;;;;s180;;;;;;;;;;;;;;;;;;;;;;182 +104;;;;;;s184;;;;;;;;;;;;;;;;;;;;183;; +105;r25;r25;;;;;;;;;;;r25;;;;;;;;;;;;;;; +106;r27;r27;;;;;;;;;;;r27;;;;;;;;;;;;;;; +107;r30;r30;;;;;;;;;;;r30;;;;;;;;;;;;;;; +108;r33;r33;;;;;;;;;;;r33;;;;;;;;;;;;;;; +109;r31;r31;;;;;;;;;;;r31;;;;;;;;;;;;;;; +110;r32;r32;;;;;;;;;;;r32;;;;;;;;;;;;;;; +111;r28;r28;;;;;;;;;;;r28;;;;;;;;;;;;;;; +112;r29;r29;;;;;;;;;;;r29;;;;;;;;;;;;;;; +113;r8;r8;;;;;;;;;;;r8;;;;;;;;;;;;;;; +114;;;;s50;;s53;s52;s55;s60;s57;s58;s59;;;;185;45;47;46;;48;;49;51;56;;54; +115;;;;s50;;s53;s52;s55;s60;s57;s58;s59;;;;186;45;47;46;;48;;49;51;56;;54; +116;;;;s192;;s195;s194;s197;s202;s199;s200;s201;;;;;187;189;188;;190;;191;193;198;;196; +117;r10;r10;;;r10;s130;;s132;s137;s134;s135;s136;;;;;;;;203;;;;129;133;;131; +118;r19;r19;;;r19;r19;r19;r19;r19;r19;r19;r19;;;;;;;;;;;;;;;; +119;r21;r21;;;r21;r21;r21;r21;r21;r21;r21;r21;;;;;;;;;;;;;;;; +120;r22;r22;;;r22;r22;;r22;r22;r22;r22;r22;;;;;;;;;;;;;;;; +121;r24;r24;;;r24;r24;r24;r24;r24;r24;r24;r24;;;;;;;;;;;;;;;; +122;;;;;;;;;s127;s124;s125;s126;;;;;;;;;;;;;205;;204; +123;r26;r26;;;r26;r26;r26;r26;r26;r26;r26;r26;;;;;;;;;;;;;;;; +124;;;;;;s207;;;;;;;;;;;;;;;;;;;;;;206 +125;;;;;;s207;;;;;;;;;;;;;;;;;;;;;;208 +126;;;;;;s207;;;;;;;;;;;;;;;;;;;;;;209 +127;;;;;;s211;;;;;;;;;;;;;;;;;;;;210;; +128;r12;r12;;;r12;s213;;s215;s220;s217;s218;s219;;;;;;;;;;;;212;216;;214; +129;r14;r14;;;r14;r14;;r14;r14;r14;r14;r14;;;;;;;;;;;;;;;; +130;r16;r16;;;r16;r16;;r16;r16;r16;r16;r16;;;;;;;;;;;;;;;; +131;r24;r24;;;r24;;;;;;;;;;;;;;;;;;;;;;; +132;;;;;;;;;s137;s134;s135;s136;;;;;;;;;;;;;222;;221; +133;r26;r26;;;r26;;;;;;;;;;;;;;;;;;;;;;; +134;;;;;;s224;;;;;;;;;;;;;;;;;;;;;;223 +135;;;;;;s224;;;;;;;;;;;;;;;;;;;;;;225 +136;;;;;;s224;;;;;;;;;;;;;;;;;;;;;;226 +137;;;;;;s228;;;;;;;;;;;;;;;;;;;;227;; +138;s114;s115;;;s229;;;;;;;;;;;;;;;;;;;;;;; +139;r25;r25;;;r25;r25;;;;;;;;;;;;;;;;;;;;;; +140;r27;r27;;;r27;r27;;;;;;;;;;;;;;;;;;;;;; +141;r30;r30;;;r30;r30;;;;;;;;;;;;;;;;;;;;;; +142;r33;r33;;;r33;r33;;;;;;;;;;;;;;;;;;;;;; +143;r31;r31;;;r31;r31;;;;;;;;;;;;;;;;;;;;;; +144;r32;r32;;;r32;r32;;;;;;;;;;;;;;;;;;;;;; +145;r28;r28;;;r28;r28;;;;;;;;;;;;;;;;;;;;;; +146;r29;r29;;;r29;r29;;;;;;;;;;;;;;;;;;;;;; +147;r10;r10;r10;;;s160;;s162;s167;s164;s165;s166;r10;;;;;;;230;;;;159;163;;161; +148;r19;r19;r19;;;r19;r19;r19;r19;r19;r19;r19;r19;;;;;;;;;;;;;;; +149;r21;r21;r21;;;r21;r21;r21;r21;r21;r21;r21;r21;;;;;;;;;;;;;;; +150;r22;r22;r22;;;r22;;r22;r22;r22;r22;r22;r22;;;;;;;;;;;;;;; +151;r24;r24;r24;;;r24;r24;r24;r24;r24;r24;r24;r24;;;;;;;;;;;;;;; +152;;;;;;;;;s157;s154;s155;s156;;;;;;;;;;;;;232;;231; +153;r26;r26;r26;;;r26;r26;r26;r26;r26;r26;r26;r26;;;;;;;;;;;;;;; +154;;;;;;s234;;;;;;;;;;;;;;;;;;;;;;233 +155;;;;;;s234;;;;;;;;;;;;;;;;;;;;;;235 +156;;;;;;s234;;;;;;;;;;;;;;;;;;;;;;236 +157;;;;;;s238;;;;;;;;;;;;;;;;;;;;237;; +158;r12;r12;r12;;;s240;;s242;s247;s244;s245;s246;r12;;;;;;;;;;;239;243;;241; +159;r14;r14;r14;;;r14;;r14;r14;r14;r14;r14;r14;;;;;;;;;;;;;;; +160;r16;r16;r16;;;r16;;r16;r16;r16;r16;r16;r16;;;;;;;;;;;;;;; +161;r24;r24;r24;;;;;;;;;;r24;;;;;;;;;;;;;;; +162;;;;;;;;;s167;s164;s165;s166;;;;;;;;;;;;;249;;248; +163;r26;r26;r26;;;;;;;;;;r26;;;;;;;;;;;;;;; +164;;;;;;s251;;;;;;;;;;;;;;;;;;;;;;250 +165;;;;;;s251;;;;;;;;;;;;;;;;;;;;;;252 +166;;;;;;s251;;;;;;;;;;;;;;;;;;;;;;253 +167;;;;;;s255;;;;;;;;;;;;;;;;;;;;254;; +168;s114;s115;;;s256;;;;;;;;;;;;;;;;;;;;;;; +169;r25;r25;r25;;;r25;;;;;;;r25;;;;;;;;;;;;;;; +170;r27;r27;r27;;;r27;;;;;;;r27;;;;;;;;;;;;;;; +171;r30;r30;r30;;;r30;;;;;;;r30;;;;;;;;;;;;;;; +172;r33;r33;r33;;;r33;;;;;;;r33;;;;;;;;;;;;;;; +173;r31;r31;r31;;;r31;;;;;;;r31;;;;;;;;;;;;;;; +174;r32;r32;r32;;;r32;;;;;;;r32;;;;;;;;;;;;;;; +175;r28;r28;r28;;;r28;;;;;;;r28;;;;;;;;;;;;;;; +176;r29;r29;r29;;;r29;;;;;;;r29;;;;;;;;;;;;;;; +177;r25;r25;;;;r25;;r25;r25;r25;r25;r25;r25;;;;;;;;;;;;;;; +178;r27;r27;;;;r27;;r27;r27;r27;r27;r27;r27;;;;;;;;;;;;;;; +179;r30;r30;;;;r30;;r30;r30;r30;r30;r30;r30;;;;;;;;;;;;;;; +180;r33;r33;;;;r33;;r33;r33;r33;r33;r33;r33;;;;;;;;;;;;;;; +181;r31;r31;;;;r31;;r31;r31;r31;r31;r31;r31;;;;;;;;;;;;;;; +182;r32;r32;;;;r32;;r32;r32;r32;r32;r32;r32;;;;;;;;;;;;;;; +183;r28;r28;;;;r28;;r28;r28;r28;r28;r28;r28;;;;;;;;;;;;;;; +184;r29;r29;;;;r29;;r29;r29;r29;r29;r29;r29;;;;;;;;;;;;;;; +185;r1;r1;s116;;r1;;;;;;;;;;;;;;;;;;;;;;; +186;r2;r2;s116;;r2;;;;;;;;;;;;;;;;;;;;;;; +187;r5;r5;r5;;r5;;;;;;;;;;;;;;;;;;;;;;; +188;r6;r6;r6;;r6;;;;;;;;;;;;;;;;;;;;;;; +189;r7;r7;r7;;r7;;;;;;;;;;;;;;;;;;;;;;; +190;r11;r11;r11;;r11;s260;s259;s262;s267;s264;s265;s266;;;;;;;;;;257;;258;263;;261; +191;r13;r13;r13;;r13;s270;;s272;s277;s274;s275;s276;;;;;;;;268;;;;269;273;;271; +192;;;;s50;;s53;s52;s55;s60;s57;s58;s59;;;278;44;45;47;46;;48;;49;51;56;;54; +193;r18;r18;r18;;r18;r18;r18;r18;r18;r18;r18;r18;;;;;;;;;;;;;;;; +194;r20;r20;r20;;r20;r20;r20;r20;r20;r20;r20;r20;;;;;;;;;;;;;;;; +195;r23;r23;r23;;r23;r23;;r23;r23;r23;r23;r23;;;;;;;;;;;;;;;; +196;r24;r24;r24;;r24;r24;;;;;;;;;;;;;;;;;;;;;; +197;;;;;;;;;s202;s199;s200;s201;;;;;;;;;;;;;280;;279; +198;r26;r26;r26;;r26;r26;;;;;;;;;;;;;;;;;;;;;; +199;;;;;;s282;;;;;;;;;;;;;;;;;;;;;;281 +200;;;;;;s282;;;;;;;;;;;;;;;;;;;;;;283 +201;;;;;;s282;;;;;;;;;;;;;;;;;;;;;;284 +202;;;;;;s286;;;;;;;;;;;;;;;;;;;;285;; +203;r9;r9;;;r9;s213;;s215;s220;s217;s218;s219;;;;;;;;;;;;212;216;;214; +204;r25;r25;;;r25;r25;r25;r25;r25;r25;r25;r25;;;;;;;;;;;;;;;; +205;r27;r27;;;r27;r27;r27;r27;r27;r27;r27;r27;;;;;;;;;;;;;;;; +206;r30;r30;;;r30;r30;r30;r30;r30;r30;r30;r30;;;;;;;;;;;;;;;; +207;r33;r33;;;r33;r33;r33;r33;r33;r33;r33;r33;;;;;;;;;;;;;;;; +208;r31;r31;;;r31;r31;r31;r31;r31;r31;r31;r31;;;;;;;;;;;;;;;; +209;r32;r32;;;r32;r32;r32;r32;r32;r32;r32;r32;;;;;;;;;;;;;;;; +210;r28;r28;;;r28;r28;r28;r28;r28;r28;r28;r28;;;;;;;;;;;;;;;; +211;r29;r29;;;r29;r29;r29;r29;r29;r29;r29;r29;;;;;;;;;;;;;;;; +212;r15;r15;;;r15;r15;;r15;r15;r15;r15;r15;;;;;;;;;;;;;;;; +213;r17;r17;;;r17;r17;;r17;r17;r17;r17;r17;;;;;;;;;;;;;;;; +214;r24;r24;;;r24;r24;;r24;r24;r24;r24;r24;;;;;;;;;;;;;;;; +215;;;;;;;;;s220;s217;s218;s219;;;;;;;;;;;;;288;;287; +216;r26;r26;;;r26;r26;;r26;r26;r26;r26;r26;;;;;;;;;;;;;;;; +217;;;;;;s290;;;;;;;;;;;;;;;;;;;;;;289 +218;;;;;;s290;;;;;;;;;;;;;;;;;;;;;;291 +219;;;;;;s290;;;;;;;;;;;;;;;;;;;;;;292 +220;;;;;;s294;;;;;;;;;;;;;;;;;;;;293;; +221;r25;r25;;;r25;;;;;;;;;;;;;;;;;;;;;;; +222;r27;r27;;;r27;;;;;;;;;;;;;;;;;;;;;;; +223;r30;r30;;;r30;;;;;;;;;;;;;;;;;;;;;;; +224;r33;r33;;;r33;;;;;;;;;;;;;;;;;;;;;;; +225;r31;r31;;;r31;;;;;;;;;;;;;;;;;;;;;;; +226;r32;r32;;;r32;;;;;;;;;;;;;;;;;;;;;;; +227;r28;r28;;;r28;;;;;;;;;;;;;;;;;;;;;;; +228;r29;r29;;;r29;;;;;;;;;;;;;;;;;;;;;;; +229;r8;r8;;;r8;;;;;;;;;;;;;;;;;;;;;;; +230;r9;r9;r9;;;s240;;s242;s247;s244;s245;s246;r9;;;;;;;;;;;239;243;;241; +231;r25;r25;r25;;;r25;r25;r25;r25;r25;r25;r25;r25;;;;;;;;;;;;;;; +232;r27;r27;r27;;;r27;r27;r27;r27;r27;r27;r27;r27;;;;;;;;;;;;;;; +233;r30;r30;r30;;;r30;r30;r30;r30;r30;r30;r30;r30;;;;;;;;;;;;;;; +234;r33;r33;r33;;;r33;r33;r33;r33;r33;r33;r33;r33;;;;;;;;;;;;;;; +235;r31;r31;r31;;;r31;r31;r31;r31;r31;r31;r31;r31;;;;;;;;;;;;;;; +236;r32;r32;r32;;;r32;r32;r32;r32;r32;r32;r32;r32;;;;;;;;;;;;;;; +237;r28;r28;r28;;;r28;r28;r28;r28;r28;r28;r28;r28;;;;;;;;;;;;;;; +238;r29;r29;r29;;;r29;r29;r29;r29;r29;r29;r29;r29;;;;;;;;;;;;;;; +239;r15;r15;r15;;;r15;;r15;r15;r15;r15;r15;r15;;;;;;;;;;;;;;; +240;r17;r17;r17;;;r17;;r17;r17;r17;r17;r17;r17;;;;;;;;;;;;;;; +241;r24;r24;r24;;;r24;;r24;r24;r24;r24;r24;r24;;;;;;;;;;;;;;; +242;;;;;;;;;s247;s244;s245;s246;;;;;;;;;;;;;296;;295; +243;r26;r26;r26;;;r26;;r26;r26;r26;r26;r26;r26;;;;;;;;;;;;;;; +244;;;;;;s298;;;;;;;;;;;;;;;;;;;;;;297 +245;;;;;;s298;;;;;;;;;;;;;;;;;;;;;;299 +246;;;;;;s298;;;;;;;;;;;;;;;;;;;;;;300 +247;;;;;;s302;;;;;;;;;;;;;;;;;;;;301;; +248;r25;r25;r25;;;;;;;;;;r25;;;;;;;;;;;;;;; +249;r27;r27;r27;;;;;;;;;;r27;;;;;;;;;;;;;;; +250;r30;r30;r30;;;;;;;;;;r30;;;;;;;;;;;;;;; +251;r33;r33;r33;;;;;;;;;;r33;;;;;;;;;;;;;;; +252;r31;r31;r31;;;;;;;;;;r31;;;;;;;;;;;;;;; +253;r32;r32;r32;;;;;;;;;;r32;;;;;;;;;;;;;;; +254;r28;r28;r28;;;;;;;;;;r28;;;;;;;;;;;;;;; +255;r29;r29;r29;;;;;;;;;;r29;;;;;;;;;;;;;;; +256;r8;r8;r8;;;;;;;;;;r8;;;;;;;;;;;;;;; +257;r10;r10;r10;;r10;s270;;s272;s277;s274;s275;s276;;;;;;;;303;;;;269;273;;271; +258;r19;r19;r19;;r19;r19;r19;r19;r19;r19;r19;r19;;;;;;;;;;;;;;;; +259;r21;r21;r21;;r21;r21;r21;r21;r21;r21;r21;r21;;;;;;;;;;;;;;;; +260;r22;r22;r22;;r22;r22;;r22;r22;r22;r22;r22;;;;;;;;;;;;;;;; +261;r24;r24;r24;;r24;r24;r24;r24;r24;r24;r24;r24;;;;;;;;;;;;;;;; +262;;;;;;;;;s267;s264;s265;s266;;;;;;;;;;;;;305;;304; +263;r26;r26;r26;;r26;r26;r26;r26;r26;r26;r26;r26;;;;;;;;;;;;;;;; +264;;;;;;s307;;;;;;;;;;;;;;;;;;;;;;306 +265;;;;;;s307;;;;;;;;;;;;;;;;;;;;;;308 +266;;;;;;s307;;;;;;;;;;;;;;;;;;;;;;309 +267;;;;;;s311;;;;;;;;;;;;;;;;;;;;310;; +268;r12;r12;r12;;r12;s313;;s315;s320;s317;s318;s319;;;;;;;;;;;;312;316;;314; +269;r14;r14;r14;;r14;r14;;r14;r14;r14;r14;r14;;;;;;;;;;;;;;;; +270;r16;r16;r16;;r16;r16;;r16;r16;r16;r16;r16;;;;;;;;;;;;;;;; +271;r24;r24;r24;;r24;;;;;;;;;;;;;;;;;;;;;;; +272;;;;;;;;;s277;s274;s275;s276;;;;;;;;;;;;;322;;321; +273;r26;r26;r26;;r26;;;;;;;;;;;;;;;;;;;;;;; +274;;;;;;s324;;;;;;;;;;;;;;;;;;;;;;323 +275;;;;;;s324;;;;;;;;;;;;;;;;;;;;;;325 +276;;;;;;s324;;;;;;;;;;;;;;;;;;;;;;326 +277;;;;;;s328;;;;;;;;;;;;;;;;;;;;327;; +278;s114;s115;;;s329;;;;;;;;;;;;;;;;;;;;;;; +279;r25;r25;r25;;r25;r25;;;;;;;;;;;;;;;;;;;;;; +280;r27;r27;r27;;r27;r27;;;;;;;;;;;;;;;;;;;;;; +281;r30;r30;r30;;r30;r30;;;;;;;;;;;;;;;;;;;;;; +282;r33;r33;r33;;r33;r33;;;;;;;;;;;;;;;;;;;;;; +283;r31;r31;r31;;r31;r31;;;;;;;;;;;;;;;;;;;;;; +284;r32;r32;r32;;r32;r32;;;;;;;;;;;;;;;;;;;;;; +285;r28;r28;r28;;r28;r28;;;;;;;;;;;;;;;;;;;;;; +286;r29;r29;r29;;r29;r29;;;;;;;;;;;;;;;;;;;;;; +287;r25;r25;;;r25;r25;;r25;r25;r25;r25;r25;;;;;;;;;;;;;;;; +288;r27;r27;;;r27;r27;;r27;r27;r27;r27;r27;;;;;;;;;;;;;;;; +289;r30;r30;;;r30;r30;;r30;r30;r30;r30;r30;;;;;;;;;;;;;;;; +290;r33;r33;;;r33;r33;;r33;r33;r33;r33;r33;;;;;;;;;;;;;;;; +291;r31;r31;;;r31;r31;;r31;r31;r31;r31;r31;;;;;;;;;;;;;;;; +292;r32;r32;;;r32;r32;;r32;r32;r32;r32;r32;;;;;;;;;;;;;;;; +293;r28;r28;;;r28;r28;;r28;r28;r28;r28;r28;;;;;;;;;;;;;;;; +294;r29;r29;;;r29;r29;;r29;r29;r29;r29;r29;;;;;;;;;;;;;;;; +295;r25;r25;r25;;;r25;;r25;r25;r25;r25;r25;r25;;;;;;;;;;;;;;; +296;r27;r27;r27;;;r27;;r27;r27;r27;r27;r27;r27;;;;;;;;;;;;;;; +297;r30;r30;r30;;;r30;;r30;r30;r30;r30;r30;r30;;;;;;;;;;;;;;; +298;r33;r33;r33;;;r33;;r33;r33;r33;r33;r33;r33;;;;;;;;;;;;;;; +299;r31;r31;r31;;;r31;;r31;r31;r31;r31;r31;r31;;;;;;;;;;;;;;; +300;r32;r32;r32;;;r32;;r32;r32;r32;r32;r32;r32;;;;;;;;;;;;;;; +301;r28;r28;r28;;;r28;;r28;r28;r28;r28;r28;r28;;;;;;;;;;;;;;; +302;r29;r29;r29;;;r29;;r29;r29;r29;r29;r29;r29;;;;;;;;;;;;;;; +303;r9;r9;r9;;r9;s313;;s315;s320;s317;s318;s319;;;;;;;;;;;;312;316;;314; +304;r25;r25;r25;;r25;r25;r25;r25;r25;r25;r25;r25;;;;;;;;;;;;;;;; +305;r27;r27;r27;;r27;r27;r27;r27;r27;r27;r27;r27;;;;;;;;;;;;;;;; +306;r30;r30;r30;;r30;r30;r30;r30;r30;r30;r30;r30;;;;;;;;;;;;;;;; +307;r33;r33;r33;;r33;r33;r33;r33;r33;r33;r33;r33;;;;;;;;;;;;;;;; +308;r31;r31;r31;;r31;r31;r31;r31;r31;r31;r31;r31;;;;;;;;;;;;;;;; +309;r32;r32;r32;;r32;r32;r32;r32;r32;r32;r32;r32;;;;;;;;;;;;;;;; +310;r28;r28;r28;;r28;r28;r28;r28;r28;r28;r28;r28;;;;;;;;;;;;;;;; +311;r29;r29;r29;;r29;r29;r29;r29;r29;r29;r29;r29;;;;;;;;;;;;;;;; +312;r15;r15;r15;;r15;r15;;r15;r15;r15;r15;r15;;;;;;;;;;;;;;;; +313;r17;r17;r17;;r17;r17;;r17;r17;r17;r17;r17;;;;;;;;;;;;;;;; +314;r24;r24;r24;;r24;r24;;r24;r24;r24;r24;r24;;;;;;;;;;;;;;;; +315;;;;;;;;;s320;s317;s318;s319;;;;;;;;;;;;;331;;330; +316;r26;r26;r26;;r26;r26;;r26;r26;r26;r26;r26;;;;;;;;;;;;;;;; +317;;;;;;s333;;;;;;;;;;;;;;;;;;;;;;332 +318;;;;;;s333;;;;;;;;;;;;;;;;;;;;;;334 +319;;;;;;s333;;;;;;;;;;;;;;;;;;;;;;335 +320;;;;;;s337;;;;;;;;;;;;;;;;;;;;336;; +321;r25;r25;r25;;r25;;;;;;;;;;;;;;;;;;;;;;; +322;r27;r27;r27;;r27;;;;;;;;;;;;;;;;;;;;;;; +323;r30;r30;r30;;r30;;;;;;;;;;;;;;;;;;;;;;; +324;r33;r33;r33;;r33;;;;;;;;;;;;;;;;;;;;;;; +325;r31;r31;r31;;r31;;;;;;;;;;;;;;;;;;;;;;; +326;r32;r32;r32;;r32;;;;;;;;;;;;;;;;;;;;;;; +327;r28;r28;r28;;r28;;;;;;;;;;;;;;;;;;;;;;; +328;r29;r29;r29;;r29;;;;;;;;;;;;;;;;;;;;;;; +329;r8;r8;r8;;r8;;;;;;;;;;;;;;;;;;;;;;; +330;r25;r25;r25;;r25;r25;;r25;r25;r25;r25;r25;;;;;;;;;;;;;;;; +331;r27;r27;r27;;r27;r27;;r27;r27;r27;r27;r27;;;;;;;;;;;;;;;; +332;r30;r30;r30;;r30;r30;;r30;r30;r30;r30;r30;;;;;;;;;;;;;;;; +333;r33;r33;r33;;r33;r33;;r33;r33;r33;r33;r33;;;;;;;;;;;;;;;; +334;r31;r31;r31;;r31;r31;;r31;r31;r31;r31;r31;;;;;;;;;;;;;;;; +335;r32;r32;r32;;r32;r32;;r32;r32;r32;r32;r32;;;;;;;;;;;;;;;; +336;r28;r28;r28;;r28;r28;;r28;r28;r28;r28;r28;;;;;;;;;;;;;;;; +337;r29;r29;r29;;r29;r29;;r29;r29;r29;r29;r29;;;;;;;;;;;;;;;; diff --git a/shell_rules b/shell_rules new file mode 100644 index 0000000..1120048 --- /dev/null +++ b/shell_rules @@ -0,0 +1,34 @@ +result -> program +program -> program AND_IF pipeline +program -> program OR_IF pipeline +program -> pipeline +pipeline -> command +pipeline -> pipeline PIPE command +command -> simple_command +command -> comp_command +comp_command -> LPARA program RPARA +simple_command -> cmd_prefix cmd_word cmd_suffix +simple_command -> cmd_prefix cmd_word +simple_command -> cmd_prefix +simple_command -> cmd_name cmd_suffix +simple_command -> cmd_name +cmd_suffix -> io_redirect +cmd_suffix -> cmd_suffix io_redirect +cmd_suffix -> WORD +cmd_suffix -> cmd_suffix WORD +cmd_prefix -> io_redirect +cmd_prefix -> cmd_prefix io_redirect +cmd_prefix -> ASSIGNMENT_WORD +cmd_prefix -> cmd_prefix ASSIGNMENT_WORD +cmd_word -> WORD +cmd_name -> WORD +io_redirect -> io_file +io_redirect -> IO_NUMBER io_file +io_redirect -> io_here +io_redirect -> IO_NUMBER io_here +io_here -> DLESS here_end +here_end -> WORD +io_file -> LESS filename +io_file -> GREAT filename +io_file -> DGREAT filename +filename -> WORD