From 22af20169edff28bbb1dd12e1d5917ed2bef9adc Mon Sep 17 00:00:00 2001 From: Thomas Walker Lynch Date: Fri, 8 Nov 2024 16:02:26 +0000 Subject: [PATCH] .gitignore was missing in scratchpad, now added --- .../javac/#Ariadne_GraphDirectedAcyclic.java# | 214 +++++++++++++ developer/scratchpad/.gitignore | 2 + .../Ariadne/Ariadne_File.class | Bin 4576 -> 0 bytes .../Ariadne/Ariadne_Graph.class | Bin 3058 -> 0 bytes .../Ariadne_GraphDirectedAcyclic$1.class | Bin 864 -> 0 bytes .../Ariadne_GraphDirectedAcyclic$2.class | Bin 896 -> 0 bytes .../Ariadne_GraphDirectedAcyclic.class | Bin 9044 -> 0 bytes .../Ariadne/Ariadne_Label.class | Bin 1062 -> 0 bytes .../Ariadne/Ariadne_LabelList.class | Bin 877 -> 0 bytes .../Ariadne/Ariadne_Node.class | Bin 1573 -> 0 bytes .../Ariadne/Ariadne_NodeList.class | Bin 436 -> 0 bytes .../Ariadne/Ariadne_Production.class | Bin 349 -> 0 bytes .../Ariadne/Ariadne_ProductionList.class | Bin 460 -> 0 bytes .../Ariadne/Ariadne_Token.class | Bin 972 -> 0 bytes .../Ariadne/Ariadne_TokenSet.class | Bin 433 -> 0 bytes .../Ariadne/Ariadne_Util.class | Bin 1697 -> 0 bytes .../ReasoningTechnology/Ariadne/File.class | Bin 4552 -> 0 bytes .../com/ReasoningTechnology/Ariadne/File.java | 76 ----- .../ReasoningTechnology/Ariadne/Graph.class | Bin 2889 -> 0 bytes .../ReasoningTechnology/Ariadne/Graph.java | 63 ---- .../Ariadne/GraphDirectedAcyclic$1.class | Bin 816 -> 0 bytes .../Ariadne/GraphDirectedAcyclic$2.class | Bin 848 -> 0 bytes .../Ariadne/GraphDirectedAcyclic.class | Bin 8778 -> 0 bytes .../Ariadne/GraphDirectedAcyclic.java | 282 ------------------ .../ReasoningTechnology/Ariadne/Label.class | Bin 1038 -> 0 bytes .../ReasoningTechnology/Ariadne/Label.java | 42 --- .../Ariadne/LabelList.class | Bin 829 -> 0 bytes .../Ariadne/LabelList.java | 18 -- .../ReasoningTechnology/Ariadne/Node.class | Bin 1493 -> 0 bytes .../com/ReasoningTechnology/Ariadne/Node.java | 34 --- .../Ariadne/NodeList.class | Bin 404 -> 0 bytes .../ReasoningTechnology/Ariadne/NodeList.java | 10 - .../Ariadne/Production.class | Bin 317 -> 0 bytes .../Ariadne/Production.java | 5 - .../Ariadne/ProductionList.class | Bin 428 -> 0 bytes .../Ariadne/ProductionList.java | 10 - .../ReasoningTechnology/Ariadne/Token.class | Bin 948 -> 0 bytes .../ReasoningTechnology/Ariadne/Token.java | 35 --- .../Ariadne/TokenSet.class | Bin 401 -> 0 bytes .../ReasoningTechnology/Ariadne/TokenSet.java | 10 - .../ReasoningTechnology/Ariadne/Util.class | Bin 1673 -> 0 bytes .../com/ReasoningTechnology/Ariadne/Util.java | 25 -- tester/scratchpad/.gitignore | 2 + tester/scratchpad/Test_File_0$TestSuite.class | Bin 4975 -> 0 bytes tester/scratchpad/Test_File_0.class | Bin 902 -> 0 bytes .../scratchpad/Test_Graph_0$TestSuite.class | Bin 3307 -> 0 bytes tester/scratchpad/Test_Graph_0.class | Bin 752 -> 0 bytes .../Test_LabelList_0$TestSuite.class | Bin 1948 -> 0 bytes tester/scratchpad/Test_LabelList_0.class | Bin 776 -> 0 bytes .../scratchpad/Test_Label_0$TestSuite.class | Bin 1541 -> 0 bytes tester/scratchpad/Test_Label_0.class | Bin 752 -> 0 bytes .../Test_NodeList_0$TestSuite.class | Bin 1506 -> 0 bytes tester/scratchpad/Test_NodeList_0.class | Bin 770 -> 0 bytes tester/scratchpad/Test_Node_0$TestSuite.class | Bin 3041 -> 0 bytes tester/scratchpad/Test_Node_0.class | Bin 746 -> 0 bytes .../Test_TokenSet_0$TestSuite.class | Bin 1912 -> 0 bytes tester/scratchpad/Test_TokenSet_0.class | Bin 770 -> 0 bytes .../scratchpad/Test_Token_0$TestSuite.class | Bin 1815 -> 0 bytes tester/scratchpad/Test_Token_0.class | Bin 752 -> 0 bytes tester/scratchpad/Test_Util_0$TestSuite.class | Bin 1975 -> 0 bytes tester/scratchpad/Test_Util_0.class | Bin 746 -> 0 bytes 61 files changed, 218 insertions(+), 610 deletions(-) create mode 100644 developer/javac/#Ariadne_GraphDirectedAcyclic.java# create mode 100644 developer/scratchpad/.gitignore delete mode 100644 developer/scratchpad/com/ReasoningTechnology/Ariadne/Ariadne_File.class delete mode 100644 developer/scratchpad/com/ReasoningTechnology/Ariadne/Ariadne_Graph.class delete mode 100644 developer/scratchpad/com/ReasoningTechnology/Ariadne/Ariadne_GraphDirectedAcyclic$1.class delete mode 100644 developer/scratchpad/com/ReasoningTechnology/Ariadne/Ariadne_GraphDirectedAcyclic$2.class delete mode 100644 developer/scratchpad/com/ReasoningTechnology/Ariadne/Ariadne_GraphDirectedAcyclic.class delete mode 100644 developer/scratchpad/com/ReasoningTechnology/Ariadne/Ariadne_Label.class delete mode 100644 developer/scratchpad/com/ReasoningTechnology/Ariadne/Ariadne_LabelList.class delete mode 100644 developer/scratchpad/com/ReasoningTechnology/Ariadne/Ariadne_Node.class delete mode 100644 developer/scratchpad/com/ReasoningTechnology/Ariadne/Ariadne_NodeList.class delete mode 100644 developer/scratchpad/com/ReasoningTechnology/Ariadne/Ariadne_Production.class delete mode 100644 developer/scratchpad/com/ReasoningTechnology/Ariadne/Ariadne_ProductionList.class delete mode 100644 developer/scratchpad/com/ReasoningTechnology/Ariadne/Ariadne_Token.class delete mode 100644 developer/scratchpad/com/ReasoningTechnology/Ariadne/Ariadne_TokenSet.class delete mode 100644 developer/scratchpad/com/ReasoningTechnology/Ariadne/Ariadne_Util.class delete mode 100644 developer/scratchpad/com/ReasoningTechnology/Ariadne/File.class delete mode 100644 developer/scratchpad/com/ReasoningTechnology/Ariadne/File.java delete mode 100644 developer/scratchpad/com/ReasoningTechnology/Ariadne/Graph.class delete mode 100644 developer/scratchpad/com/ReasoningTechnology/Ariadne/Graph.java delete mode 100644 developer/scratchpad/com/ReasoningTechnology/Ariadne/GraphDirectedAcyclic$1.class delete mode 100644 developer/scratchpad/com/ReasoningTechnology/Ariadne/GraphDirectedAcyclic$2.class delete mode 100644 developer/scratchpad/com/ReasoningTechnology/Ariadne/GraphDirectedAcyclic.class delete mode 100644 developer/scratchpad/com/ReasoningTechnology/Ariadne/GraphDirectedAcyclic.java delete mode 100644 developer/scratchpad/com/ReasoningTechnology/Ariadne/Label.class delete mode 100644 developer/scratchpad/com/ReasoningTechnology/Ariadne/Label.java delete mode 100644 developer/scratchpad/com/ReasoningTechnology/Ariadne/LabelList.class delete mode 100644 developer/scratchpad/com/ReasoningTechnology/Ariadne/LabelList.java delete mode 100644 developer/scratchpad/com/ReasoningTechnology/Ariadne/Node.class delete mode 100644 developer/scratchpad/com/ReasoningTechnology/Ariadne/Node.java delete mode 100644 developer/scratchpad/com/ReasoningTechnology/Ariadne/NodeList.class delete mode 100644 developer/scratchpad/com/ReasoningTechnology/Ariadne/NodeList.java delete mode 100644 developer/scratchpad/com/ReasoningTechnology/Ariadne/Production.class delete mode 100644 developer/scratchpad/com/ReasoningTechnology/Ariadne/Production.java delete mode 100644 developer/scratchpad/com/ReasoningTechnology/Ariadne/ProductionList.class delete mode 100644 developer/scratchpad/com/ReasoningTechnology/Ariadne/ProductionList.java delete mode 100644 developer/scratchpad/com/ReasoningTechnology/Ariadne/Token.class delete mode 100644 developer/scratchpad/com/ReasoningTechnology/Ariadne/Token.java delete mode 100644 developer/scratchpad/com/ReasoningTechnology/Ariadne/TokenSet.class delete mode 100644 developer/scratchpad/com/ReasoningTechnology/Ariadne/TokenSet.java delete mode 100644 developer/scratchpad/com/ReasoningTechnology/Ariadne/Util.class delete mode 100644 developer/scratchpad/com/ReasoningTechnology/Ariadne/Util.java create mode 100644 tester/scratchpad/.gitignore delete mode 100644 tester/scratchpad/Test_File_0$TestSuite.class delete mode 100644 tester/scratchpad/Test_File_0.class delete mode 100644 tester/scratchpad/Test_Graph_0$TestSuite.class delete mode 100644 tester/scratchpad/Test_Graph_0.class delete mode 100644 tester/scratchpad/Test_LabelList_0$TestSuite.class delete mode 100644 tester/scratchpad/Test_LabelList_0.class delete mode 100644 tester/scratchpad/Test_Label_0$TestSuite.class delete mode 100644 tester/scratchpad/Test_Label_0.class delete mode 100644 tester/scratchpad/Test_NodeList_0$TestSuite.class delete mode 100644 tester/scratchpad/Test_NodeList_0.class delete mode 100644 tester/scratchpad/Test_Node_0$TestSuite.class delete mode 100644 tester/scratchpad/Test_Node_0.class delete mode 100644 tester/scratchpad/Test_TokenSet_0$TestSuite.class delete mode 100644 tester/scratchpad/Test_TokenSet_0.class delete mode 100644 tester/scratchpad/Test_Token_0$TestSuite.class delete mode 100644 tester/scratchpad/Test_Token_0.class delete mode 100644 tester/scratchpad/Test_Util_0$TestSuite.class delete mode 100644 tester/scratchpad/Test_Util_0.class diff --git a/developer/javac/#Ariadne_GraphDirectedAcyclic.java# b/developer/javac/#Ariadne_GraphDirectedAcyclic.java# new file mode 100644 index 0000000..26d01b2 --- /dev/null +++ b/developer/javac/#Ariadne_GraphDirectedAcyclic.java# @@ -0,0 +1,214 @@ +xopackage com.ReasoningTechnology.Ariadne; + +import java.util.HashMap; +import java.util.Map; +import java.util.List; +import java.util.ArrayList; + +public class Ariadne_GraphDirectedAcyclic extends Ariadne_Graph { + + /*-------------------------------------------------------------------------------- + Constructors + */ + + public Ariadne_GraphDirectedAcyclic(Map node_map, Ariadne_ProductionList recognizer_f_list, Ariadne_LabelList root_node_list, int max_depth, boolean verbose) { + super(node_map, recognizer_f_list); + Ariadne_TokenSet cycle_detection_result = graph_mark_cycles(root_node_list, max_depth, verbose); + } + + public Ariadne_GraphDirectedAcyclic(Map node_map, Ariadne_ProductionList recognizer_f_list, Ariadne_LabelList root_node_list) { + super(node_map, recognizer_f_list); + Ariadne_TokenSet cycle_detection_result = graph_mark_cycles(root_node_list); + } + + /*-------------------------------------------------------------------------------- + Instance Data Extension + */ + + private static boolean debug = true; + + /*-------------------------------------------------------------------------------- + Interface + */ + + private List path_find_cycle(Ariadne_LabelList path) { + if (path.size() <= 1) return null; + + int rightmost_index = path.size() - 1; + Ariadne_Label rightmost_node_label = path.get(rightmost_index); + + int cycle_leftmost_index = path.indexOf(rightmost_node_label); + Boolean has_cycle = cycle_leftmost_index < rightmost_index; + if (!has_cycle) return null; + + List result = new ArrayList<>(); + result.add(cycle_leftmost_index); + result.add(rightmost_index); + return result; + } + + private boolean graph_descend_cycle_case(Ariadne_LabelList left_path, List path_stack, boolean verbose) { + + List cycle_index_interval = path_find_cycle(left_path); + if (cycle_index_interval == null) { + return false; + } + + int cycle_i0 = cycle_index_interval.get(0); + int cycle_n = cycle_index_interval.get(1); + + if (verbose) Ariadne_Util.print_list( + "Found cycle:", + left_path.subList(cycle_i0, cycle_n + 1) + ); + + Ariadne_LabelList undefined_node_list = new Ariadne_LabelList(); + for (int i = cycle_i0; i <= cycle_n; i++) { + Ariadne_Label node_label = left_path.get(i); + Ariadne_Node node = super.lookup(node_label); + if (node != null) { + node.mark(new Ariadne_Token("cycle_member")); + } else { + undefined_node_list.add(node_label); + } + } + + if (verbose) Ariadne_Util.print_list( + "Each undefined node could not be marked as a cycle member:", + undefined_node_list + ); + + path_stack.subList(cycle_i0 + 1, cycle_n + 1).clear(); + + return true; + } + + private static Ariadne_TokenSet graph_descend_set = new Ariadne_TokenSet() {{ + add(new Ariadne_Token("empty_path_stack")); + add(new Ariadne_Token("cycle_found")); + add(new Ariadne_Token("undefined_node")); + add(new Ariadne_Token("leaf")); + add(new Ariadne_Token("max_depth_reached")); + }}; + + private Ariadne_TokenSet graph_descend(List path_stack, int max_depth, boolean verbose) { + Ariadne_TokenSet ret_value = new Ariadne_TokenSet(); + + if (path_stack.isEmpty()) { + ret_value.add(new Ariadne_Token("empty_path_stack")); + return ret_value; + } + + Ariadne_LabelList left_path = new Ariadne_LabelList(); + for (Ariadne_LabelList neighbor_list : path_stack) { + left_path.add(neighbor_list.get(0)); + } + + do { + + if (graph_descend_cycle_case(left_path, path_stack, verbose)) { + ret_value.add(new Ariadne_Token("cycle_found")); + return ret_value; + } + + Ariadne_Label it_node_label = path_stack.get(path_stack.size() - 1).get(0); + Ariadne_Node it_node = super.lookup(it_node_label); + if (it_node == null) { + ret_value.add(new Ariadne_Token("undefined_node")); + return ret_value; + } + + Ariadne_LabelList neighbor_list = it_node.neighbor_LabelList(); + if (neighbor_list.isEmpty()) { + ret_value.add(new Ariadne_Token("leaf")); + return ret_value; + } + + path_stack.add(new Ariadne_LabelList(neighbor_list)); + Ariadne_Label it_next_label = neighbor_list.get(0); + left_path.add(it_next_label); + + if (max_depth > 0) { + max_depth--; + if (max_depth == 0) { + if (verbose) { + Ariadne_Util.print_list("GraphDirectedAcyclic.GraphDescend:: max_depth reached, ending descent:", path_stack); + } + ret_value.add(new Ariadne_Token("max_depth_reached")); + return ret_value; + } + } + + } while (true); + } + + public static Ariadne_TokenSet graph_mark_cycles_set = new Ariadne_TokenSet() {{ + add(new Ariadne_Token("empty_root_label_list")); + add(new Ariadne_Token("cycle_exists")); + add(new Ariadne_Token("undefined_node_exists")); + add(new Ariadne_Token("bad_descent_termination")); + add(new Ariadne_Token("max_depth_reached")); + }}; + + public Ariadne_TokenSet graph_mark_cycles(Ariadne_LabelList root_node_LabelList, int max_depth, boolean verbose) { + Ariadne_TokenSet ret_value = new Ariadne_TokenSet(); + boolean exists_malformed = false; + Ariadne_TokenSet result; + + if (root_node_LabelList.isEmpty()) { + ret_value.add(new Ariadne_Token("empty_root_label_list")); + return ret_value; + } + + List path_stack = new ArrayList<>(); + path_stack.add(new Ariadne_LabelList(root_node_LabelList)); + + do { + result = graph_descend(path_stack, max_depth, verbose); + if (result.contains(new Ariadne_Token("cycle_found"))) ret_value.add(new Ariadne_Token("cycle_exists")); + if (result.contains(new Ariadne_Token("undefined_node"))) ret_value.add(new Ariadne_Token("undefined_node_exists")); + if (result.contains(new Ariadne_Token("max_depth_reached"))) ret_value.add(new Ariadne_Token("max_depth_reached")); + if (!result.contains(new Ariadne_Token("leaf")) && !result.contains(new Ariadne_Token("cycle_found"))) ret_value.add(new Ariadne_Token("bad_descent_termination")); + + Ariadne_LabelList top_list = path_stack.get(path_stack.size() - 1); + top_list.remove(0); + if (top_list.isEmpty()) path_stack.remove(path_stack.size() - 1); + + } while (!path_stack.isEmpty()); + + if (verbose) { + if (ret_value.contains("bad_descent_termination")) { + System.out.println("GraphDirectedAcyclic.graph_mark_cycles:: terminated with unexpected condition."); + } + if (ret_value.contains("cycle_exists")) { + System.out.println("GraphDirectedAcyclic.graph_mark_cycles:: One or more cycles detected."); + } + if (ret_value.contains("undefined_node_exists")) { + System.out.println("GraphDirectedAcyclic.graph_mark_cycles:: Undefined nodes exist."); + } + } + + return ret_value; + } + + public Ariadne_TokenSet graph_mark_cycles(Ariadne_LabelList root_node_LabelList) { + return graph_mark_cycles(root_node_LabelList, this.debug ? 40 : -1, this.debug); + } + + @Override + public Ariadne_Node lookup(Ariadne_Label node_label, boolean verbose) { + Ariadne_Node node = super.lookup(node_label, verbose); + if (node != null && node.has_mark(new Ariadne_Token("cycle_member"))) { + if (verbose) { + System.out.println("GraphDirectedAcyclic.lookup:: Node is part of a cycle, not returned: " + node_label); + } + return null; + } + return node; + } + + public Ariadne_Node lookup(Ariadne_Label node_label) { + return lookup(node_label, this.debug); + } + +} diff --git a/developer/scratchpad/.gitignore b/developer/scratchpad/.gitignore new file mode 100644 index 0000000..120f485 --- /dev/null +++ b/developer/scratchpad/.gitignore @@ -0,0 +1,2 @@ +* +!/.gitignore diff --git a/developer/scratchpad/com/ReasoningTechnology/Ariadne/Ariadne_File.class b/developer/scratchpad/com/ReasoningTechnology/Ariadne/Ariadne_File.class deleted file mode 100644 index 4b98d4991f981f6d89eef0f37f8fa130fe05b9d2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4576 zcmcIn`Fj)B6+I)#8c8055!jAna3DC;D+Ww9n-Z2lF_o8MHx$xVjHQu1Sej9!5wY7e zNmsfrY1$^VfhJu@TDMI|W58+BJxxQprF;JtzNY8B8ObB8Ce05ud^7Le_wIf7o_p?n zqgVdD^df*;@vj)RAQ{C?I1z=8sW_#X7^X3!!i*t|lj1QOK{kdqLY`M9R+fA2IZzZJE~eq>-Aj?5sUK z-@ljJ)0R6m0HHoYYV0{aM|b?w@c9v@_J@ib{@| z?H|$eR8*x#CNKP1v7O$FWd*C;HPi0*&Wq;tf?+wyG!;D)mIBQ+W+kWeBDLzvQ)A9i z5Xy|CZ8ZFk(Q0v?X zETSze^^Y^1j9`^z+-nq)&Wvs)^(;}lsfJx2ItiXX)Wvfe9lbD3sC~!9(?;H4Cal!F z5NElS`>s{4QZ0Me>RFT7%-Lx(V;bqCW9EpWa#%sfHCAfCwtGm$S4fBhb15V5n6^d6 z-~Q&o)U+f5Y{}}mskGiv4N%861%0VoHz!6&X6AcJgjEiya9W0eR5 z!+g4;o+7(aS+5hsChSrnWgL{Xw8kr8S-M*V@ilazTf^JXsp6{|zJ^DL{65=u$PPU} zVmLE)y0|)wMbK*JOGmWFR*K*M)%AcF4- z)$`Adt>$cpA@elwpCZnR0E1IbvBy za6y=TmJUm8AI>U%tl>EjAKa*r#5sM|*l$}Y-8pJH zGaMBi-EvqOTWXYs*T{WvlYtdbe5W&KdErZz*{j)zctu6o9mZupXJK^KG_9J&1G&62 zFK;!`yNU*H0Nt?*Bsx1uQTR-fD2(K`8vfR(!j&TWN>4_0(Msw?`3;N9Vl2aJsB^fB zH%7Ernksk9=FZ{any!YkhBYmm;r&aUCaTstDwr1;tMb()!H{paC-EEbL^bp2U1&0& zs&Mf?v#dkT571s)6I(KIc3mp4}=ND=mxOL(5_JT2ipXGhVIc znXd?!OI6+^Yw1^lc^UEA{-o^s6K~m+8${(4-60%PCC89o7s4q0-&kFFEBBCijy+;# zd3niP^X^%-T)pD}~2i z?7=PVWJ*>_++Y3U1tV>;a)sk9%T83CLw|W~kLXT{+}z}0_TS8O9ar%O(OLhj;x8Kh zioa=iH(0A3(z>jB(>i6(8s4X!+c^&EDVF5CihnTngl*53*u%A9%Q6c4Sx`kmfk*tb z@@%+w%pu)MlO-LlqQ4G^l;Eq6d{v5*{66z9dfPoVNoUJ|t~9Zqs7#m=x*JynmykC* z-P1E}XzUC*|LoQOe>86xYSp3(pdX2I*i77tuHvY6^!=^etk|6KLoY<3+>= zdDhxv7qMo{JGIRCZrhhi_9@OCug9cV>@`^PAqzy{oncAUTsFtHI1@xGskpC;xH5%0%{_)|pt zIl}ca!4z;FaUsJF3~<)Q@2Z`+nGpBl9B!d3Kdng$|IDQq)D#CkJv|U9TpRe-_m2V2=Q^@$A6u63E zmA`}cQ89r1%=4W%K$C(bhbam09q$glfVN9mpXlLW!zHvY$lZc5F}Y(q^>)ZGn_UeY zq#J@YQ37{}_M#Z3y`Z%FB;R#h-C4Ff((BnhgSy~?H@RUE8~62G#wIq*CEN&H#^wOT z$!?QwZ#c^q>c$^d-QZaY8&!FUkPAyWYiJduTHP zMdEja@Qc&fcs+b38)KpqQzG!W!nH8p1Hxm0&uE`N4sRmjxHZ(?9D4XH)X;f^f(xU; z1qo9Vi>ia%>X+}Jyb;{m!|{5A+_0{qCA3F*ouWX9B!HsQiwNFZ=?)thp!ll`K8t|p4uYm` v3lW41;(eS2@P53;cZ{ol#NY8J7D$Tob~=-$%#hE#e0~U@rq*ZhS$yt4JAc8` diff --git a/developer/scratchpad/com/ReasoningTechnology/Ariadne/Ariadne_Graph.class b/developer/scratchpad/com/ReasoningTechnology/Ariadne/Ariadne_Graph.class deleted file mode 100644 index 62d332436b32b9b5df8d8cf8e0f4cdce950803e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3058 zcmcImZF3V<6n<`!X47;_OAAHiZNWnG(l#K9*wi9aN`X+2RuE9bCb>5B~Yi6$LTXycUSsU^8NtRa}*LJJxxig++Rvh{ITP&C*Y3I8ZU!Xtv85-Z|$+BB@tnZ~) zTrS#H!xuQ!HOy7dtu)KNoa52>xN%yY3ftkK85SyjDiaN`Y3(Z=FU*TEt~drlVot++Kl-tRzo1ybrk14v%W&-M>^5g>#q^}7k#t5%4`J|G<+fO z;~Vk)-B2t(#d4s%lbQb{z+CLc=v3i&zpU zc1TPaXMDrv4fhS#k%qf$j0F_3S&SJe)?C_fJ!9;xYsy1)=h8;4N!5}x>Ylr1Rb*vS z!8>oZ5B6^|N7gz-7S|iTtO-P==Lzf% zd!6Oxu6mZ^FZ!M|YiuaP0YK+AYrL+6Y=?TSCK6bs7F&Ei=y&ovi}quw3u@JMB*7&j zzSTIVn5K8BG=Dx(w@I*QRdPJqZZV8ApANlm3!VSMW$@QEvXRzhx9L=Zv`!g9U{B3l zm9wr>HvJoxzrtC=Hyxi{_iXpqPbId)c#8pn(G9z*kZ9I7LI;*vML}-~yqN9YR@h(K zBW)Seu%b$b&1!VB04!(CU6r{|Bn)%TEc>pvu7PQb7h3&Pzu-91o3+hGLo)Us+R1HU zgw;B4Iu%YCX`6h7S zzvXa9Y7+fFX>Q8D!`8}O^3Xy$*;qez3 zc!u z?7{%u8Ag_~89MnsPmRzdMsb8I8gIF(X3EJ3j&fJ0qv6>;&c-;OL(eOMMK$c!kka@H z#60J(_%>|Yi-gCQ{_Ui`WXL5ie;q#&3b~CbLhV-^0#*_t5tc{X;v*g?Nzp z8Hwz#7>M8x3@-5O@WgWr@qFSLb^?^Suc+(KJ_BE%TuwY7UKEOz4ATNe+sDWT7|R}{ z8S?~ZIeKu6<8iWc0vGv|RSac9Up5#jV4Tv5j{+u1L4=w|sCA6^iWwa}eSP9DjA|I{ z3*tK7iYrfv2qm;kHueO=%B4u)Qapg04$O^&A{*wkmbnBzpi?11`vZBPC-w-tRK7(U h%wAggFo6CDtNbQ;YN3X^jPg9!J7{2@dl!Q7(m&(YL!gr4LtFXsG=%&(jt*4r3J~_tS7NsXE(APL_UI# z;e|>d@d11kV(f;8NO{OgJF{nY=XQ4f{QdbGz*AHTDB`+}8xC$3ki)G43b^fH)xjMH zYYx_J+_iB}V6GnMAlVVfS2o)M)}HZ5V4)FcIvDml6t!e0WJ|eWlnmQ43Q{~aT8SUT z0;M-vQ?wV#I3|YA8p`ymA4tYV2fEiH$qr?U4f;( z{OWo%;0O^(Rz>(M9gz79hbcH zxS@&L_ni~|&f4ZN)_CTMJdS|i%|F0;o=@LkWtMkaXAoPzkUJ{p&tUz)g~M|+H-YR4 zK8WAvTF=CHtW6*kK@r#M6zAGwGlY~vVpe8O9N#vmN$`gr4dR7|L={!J6N*HlB6zVj>mlCa>_+wmH6OtP z_wV3^N+9t8d=z4G0Vz@+V#zZ;GoH(tncshY`~q+rl|1Hg*26g;=kv(mLLPZs^s(gQ zl8wZkv*pY{zUVHms8Iu1xe0PmDPi z=~STb$QVktW0|JJ@J>V7ZuL3I)EaF%EmD!OvF!}1TO1u4`lo{jiR?vpbwbKfxTOXv z)@t=uO(5U2{Y24yJuJO42|M)njXn8Ra>MtGifzi}o|21f=wVgB-=Wk!w5cngfMWtT zX6>tG-;fa~QMcy?L1L{7V%erRi1j$x)dH^JIx`>kOabk)otc;VCZyLqx-c+2$N%9pk%i(R?To}P<>grtfn6xf`#&BMnhaC6oKBc4ri0`*x#4y(z; zD~;hEsRN@0B$_e*q|O^YH)x diff --git a/developer/scratchpad/com/ReasoningTechnology/Ariadne/Ariadne_GraphDirectedAcyclic.class b/developer/scratchpad/com/ReasoningTechnology/Ariadne/Ariadne_GraphDirectedAcyclic.class deleted file mode 100644 index ea917874e4e2b4c3a088765c0f4028b58d39a215..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9044 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 diff --git a/developer/scratchpad/com/ReasoningTechnology/Ariadne/Ariadne_LabelList.class b/developer/scratchpad/com/ReasoningTechnology/Ariadne/Ariadne_LabelList.class deleted file mode 100644 index 079acaf861698d54db304d99a813e55108faaf74..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 877 zcmb7CO>fgc5Ph4tF)?nEwh$dx-D zLU7`TMxmM5%)Fgk4orTg2acZ2#HZSw>)eVxcLv3U9V;9rslV*JGkWYZn~ly)dXahO zN7GJ^>BG$2=#PmW7?;>_(N);mNj~Xo-I)~DbxNNQs5wa?XlpsD(Egvp^y-F3Zz=a^ zHA3BE(pm2pI{o}cUzNRuc%o46+fk;ANzVRXFSA|!4r%Z77Smpy>!~!pI+Q}x_mey| zr&gBJp3iwP-vb$Kj5X9^JjFAGmn*M`8(Qq=A6JFO!YkytGCdsjoKx7oJ);xvoJkAo zv+nK(yx^M)_y&Orl+dCKX&q84>b1RZP+!XM9m78{uG4PtYn71gS=k(t0E{;X-DJ(|I`OpV*${ZBKMYqw VR6{}nTRauq4N4xYq_zMdC*(d-2 diff --git a/developer/scratchpad/com/ReasoningTechnology/Ariadne/Ariadne_Node.class b/developer/scratchpad/com/ReasoningTechnology/Ariadne/Ariadne_Node.class deleted file mode 100644 index e03285e0bc5d795898f7651dafe77b1102ed48ce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1573 zcmbVMT~8B16g|_HcG)f>6^ei;enAVB0*V4{h{lBYP%yCsqc3DyHtj;Y+ibTc{1ktI zFFvRwkVs;9(!}3njAyn>CBj4TWoPEjz2}_!vGeoy*KYuxAg`kz>0VsHbPO{(!bs~p zWR&HB+Ret0)uAb~hB@__*D$JKA%=%BJQ7IMrMtJ?aGi$fdi&e9teZ3zcI7*ntx3C* zEqbnHS8@VL+q5dxlH>mC9nD*|<*f>YQ|T>%$a80h82tsyHaA-JlId>BQq4zo%Cfd4 zT}zz8Fq}w#hRokgKmHq59y6@QL>AJl^bgGFc-2w}#t^+rn zJ=4x9g*~3y3S=)CE6`W;WO;90HUjlpRW`T(SIJw-znp@i=`r<0rx68NGHV5^=?N^R z(p_V9!U(42%eA0=y+x~HORwd!SIg}QXn9sG`$9IWOgVpkD9%`3mUhjums=&IUUXV+ z*<7Qy1;s4Khb$ZYCh0(wKGUjwir5^}% zCzKoIE63rF@>RX5wDMH2)v0yu8Sa!i7;$Div6aj86V)4^Zp;5luj-NnA=(1hyKXFS z^3RSqL%`RppWx5Yj2%|DjRxA6?+_av1c(@8W?+wvT}B{b8=F|g%mMZrOmNWf;Sae! BaH{|S diff --git a/developer/scratchpad/com/ReasoningTechnology/Ariadne/Ariadne_Production.class b/developer/scratchpad/com/ReasoningTechnology/Ariadne/Ariadne_Production.class deleted file mode 100644 index 776a9af807e59bbd15b7e50f3d9dd0463532f92d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 349 zcmX^0Z`VEs1_pBmZgvI^b_Py%1};Vh&fv`Syu^~yqEtqPKA)__vPAuy#JqHU|D>$c zRdl4@;d&B(wNoL^d$oa&aD19Y7@)YSNZqWqLnuv7Fv?qy^! sBGw%Uos0|u=ze8nkOm83_beMD10w?y5HkaVkO9bI0h6o@Y+#xl0OG4|>;M1& diff --git a/developer/scratchpad/com/ReasoningTechnology/Ariadne/Ariadne_ProductionList.class b/developer/scratchpad/com/ReasoningTechnology/Ariadne/Ariadne_ProductionList.class deleted file mode 100644 index c02c0d13698aebb48942e3de49d62c60d7052b92..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 460 zcmbVI!AiqG6r4@d#>QxCJ$mw{9?U^dp`}m+F9s1?dX;Umq)*aa*lY^@EKh<5KfsR? zUqZczr|!ZG^O*PE?0$WJd;++^AVdqj0Q~?*0-X_Qa$|wk+4)?+zcZN<=q04pW3^f+ zJClooD}%(OvY1OtwcZwex1>_wHc8DYepa$Hnsh!>=~A1*Oky;*AR)0>+RT*kfat5s28vCRQP{hy4a4 I95j6R1Cyb9M*si- diff --git a/developer/scratchpad/com/ReasoningTechnology/Ariadne/Ariadne_Token.class b/developer/scratchpad/com/ReasoningTechnology/Ariadne/Ariadne_Token.class deleted file mode 100644 index 79242712b7531e4835660babd3fb94f3285af238..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 972 zcmb7C%Wl&^6g?Biwd=ZRDJhh;fre-70G8OWC_+M&Dj}sHk*EtcXyRIlTi1rfslrkFZFOqT3Yo~)S?rjUqJqY74eJHTnID72u3zT<~0~Rl}!Z>&` zI_?I8j_gKRyTq5#z8r)qE;h?)KO72pEk8N-o&|E4#Kh?Yem_p4r1#o;#PowW_&vYq zBu7C^9$GI*1*#3_EDHfMO>)BI8@w9Hh!8V;pLP!eKizho3y5S^X>mjwQUxWj*iNN? zv?pH{l+C^z_H&V1!+9)VwUg1n4|c;$WkEP6dRIAU!@^A)CgyG2LPOxre~C5V*r;OF z#yU0xmj7HzPL*CXl<_7V*@@(kTF=kel5Ntmsmk0P)cFbwz6v^^=y9cUZDE0<&1e@T zet_kEhH#soQ2M~Aghh@OXzGL=7FcOB1}@~;Si&+Rb*j43W1J&G-qXusBDo(?de5Z1 z-5j^ULe<93)_T!~a{jHj`qyGQS0KM3l;Z5T&3Dktdy3X= z{uAh9CTp4470LuI(X4f>VFNX6W?)-+!&AWyEx1Uy8a1rZgc56%shUwyF7N^iF84Sq Y!KQ+nU`|0z8&RLqVxAhYnPt^}0r*I-Pyhe` diff --git a/developer/scratchpad/com/ReasoningTechnology/Ariadne/Ariadne_TokenSet.class b/developer/scratchpad/com/ReasoningTechnology/Ariadne/Ariadne_TokenSet.class deleted file mode 100644 index c623bdce0534efbe3f2f2bbac8da8abc8324ff14..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 433 zcmb7A!AiqG6r7i)jg8UTf*;^bJs8o0hn9j=#6$34La(w-mt-~Fg=ACkvpfkN`~W|y z_!6oYPu+zX<}u7X-uLG73&0IVJ~|k9IPx$g^d?FxJ0)~Z&*lVoW|opLh?JI(^=cu@ zL@WxPj3SeYVlGP6=B5x_;4aJlQk zgyFvxaRP@=**xOU!Hhjt*R2M+=O3VV9ystAeP&>fjeSNSU>loQ`OFUXTMTf}^5GBj Cg>P;E diff --git a/developer/scratchpad/com/ReasoningTechnology/Ariadne/Ariadne_Util.class b/developer/scratchpad/com/ReasoningTechnology/Ariadne/Ariadne_Util.class deleted file mode 100644 index cd8d2d7dd9a08483f045ba1b0f9751027a435381..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1697 zcmb7ETXWM!7(MHoVnuNhhg;ilOB3SQA*Q#`)=3H&(xi2O;t*Px4x`wMvqY9Wmdwx}XXwBKk38@<`a60#D+zE&rk#4m+THJ_bH4AaUi|g+8G!S+VETzR$E-j>}>d)uKUU-KHavt@UcKF7vXu%mo|g<8XFmv2bh_gv++ zHf3YS^&GF&FJEMM)0HpRyEg;nR0PaUSGmDmNBM!kOrdt)eqfg!+ijKW0X?lsWa%-w zTw_p0L(6o!@}BxmL)jNEkX3&RF`kj|_Cf>+fDy|UhNIkF{ zyBl^VCY`OTmTL#SF1u3rZ|u5=hCj5_aN<^*b+6ZL$W^5qJ0ABa?9GB^W?>w81Irdx z@R@-N1}<8-gsOqd7Or5`!sl4Cu#PVT#x8kY;0Im1vmt{Wuj!9w@Z}I{7B+Bo2-nDX z!NPT&G>S2S`TsL1mVe#pYuoo_gX7ADrdOj8FqD6#-3j`kgs7;2oM@VRO?{t(VyxF= zvBOcvl~=y56~TCEx7qWF@FjcA)NLpmW*yM=P`tkSo*kuK7E&=LX~wk*JvX z3O6YBQ?p`L;Aq?4l~vDe*ugCo>~QA?wi{5`X9iys=MI*O)kTgRyl&sXH`I5{^LBe30c+iLWw+|szAp*l$3YNrjcC|ww%c^1 zKOH5;muCMp3N3pQH>vpp!td*-%Q`5P<^TMRTc&BC*^B~ZW?SCigNe2tr=@d3{{dOoD>qwsnDAJtEm A9smFU diff --git a/developer/scratchpad/com/ReasoningTechnology/Ariadne/File.class b/developer/scratchpad/com/ReasoningTechnology/Ariadne/File.class deleted file mode 100644 index ff433cb8ae06dca762491708aed6793ba9d6eb51..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4552 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 diff --git a/developer/scratchpad/com/ReasoningTechnology/Ariadne/File.java b/developer/scratchpad/com/ReasoningTechnology/Ariadne/File.java deleted file mode 100644 index 825b499..0000000 --- a/developer/scratchpad/com/ReasoningTechnology/Ariadne/File.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.ReasoningTechnology.Ariadne; - -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.Paths; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -public class Ariadne_File { - static boolean debug = false; - - public static Map unpack_file_path(String file_fp) { - if (debug) System.out.println("unpack_file_path::file_fp: " + file_fp); - - // Use java.io.File explicitly to avoid conflict with the custom Ariadne_File class - java.io.File file = new java.io.File(file_fp); - String parent_dp = (file.getParent() != null) ? file.getParent() : ""; - - if (!parent_dp.isEmpty() && !parent_dp.endsWith(java.io.File.separator)) { - parent_dp += java.io.File.separator; - } - - String file_fn = file.getName(); - String file_fn_base = file_fn; - String file_fn_ext = ""; - - int last_index = file_fn.lastIndexOf('.'); - if (last_index > 0) { - file_fn_base = file_fn.substring(0, last_index); - if (last_index + 1 < file_fn.length()) { - file_fn_ext = file_fn.substring(last_index + 1); - } - } - - Map ret_val = new HashMap<>(); - ret_val.put("dp", parent_dp); - ret_val.put("fn", file_fn); - ret_val.put("fn_base", file_fn_base); - ret_val.put("fn_ext", file_fn_ext); - - if (debug) System.out.println("unpack_file_path::ret_val: " + ret_val); - - return ret_val; - } - - public static boolean file_exists_q(String fp_string) { - Path fp_object = Paths.get(fp_string); - return Files.exists(fp_object); - } - - /* - Given a target_fp and a list of dependency_fp. - - Returns false if the target is newer than all dependencies or if a file is missing; - otherwise, returns true. - */ - public static boolean newer_than_all(String target_fp_string, List dependency_fp_list) throws IOException { - Path target_fp_object = Paths.get(target_fp_string); - if (!Files.exists(target_fp_object)) return false; - - long target_last_modified_time = Files.getLastModifiedTime(target_fp_object).toMillis(); - - return dependency_fp_list.stream().allMatch(dependency_fp -> { - try { - Path dependency_fp_object = Paths.get(dependency_fp); - if (!Files.exists(dependency_fp_object)) return false; - long dependency_last_modified_time = Files.getLastModifiedTime(dependency_fp_object).toMillis(); - return target_last_modified_time > dependency_last_modified_time; - } catch (IOException e) { - return false; - } - }); - } -} diff --git a/developer/scratchpad/com/ReasoningTechnology/Ariadne/Graph.class b/developer/scratchpad/com/ReasoningTechnology/Ariadne/Graph.class deleted file mode 100644 index 36d600164c1c57b111e5654ac874773fdb240966..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2889 zcmb_eTUQfT7~LlcOc(}1P;BdMv?#d%(b_AaSfnCqL@HFPw$e#*2qTl3tjUB``Y-xc ze}S*oR&DKCU47EE{5yT^s@-QMg+yt?LtoCE^PTUyzssB#e?9#Tzz3-57{>cO+-~v*Lj%I@Uf0=b+aGS8qVtIi4LFWn87(EFq_1uy-4A_hPgp1yEF)af=+=eN@_vF zRSk;*U1eEpR0PB=fu!q|PV=8r$p3l2>u7Joy5iXN zK;TqI@kQS&H%fu+xdlp4P4|@T+QGEIxm3Hyon3iFSNgg@VwUbHXlz$5G^$1EFIz>2 zl)-{mvYhJ{gXOtNOayCoU0}4M*B5-Nwnk@%+qG=g{?XL86j-HoW+Bw9;WL5nUWw=b z&Ok?}cYvqc@x1j0YiBXlQ9P=LTj`FBVMPe&VP!h1igp8Oq+USVkbcptGerrdK;YzV z4PM=C47&~?IaP9+)fi8ya?+Q)hF_9%wkjb#tbz&EbOw&%jD~9lmaxoTYxYpcFlo*N zro%=HOwX03w`z`t$gpQe%@j){ZF;^r`dat!Qnf_dtTrfGlxEHMHte!2PiXkuz;)a( z@C9zN@wVH3-m0%rqk%W^mcT@(7H_Wz1BY=$!z}~1@uh*UR3zD`Kqe>6ioGFSb33P| zT{qo^<0$84wH9nn7`THKfssyD7s9j-ob$Y(9}(i@^JFc8AwSZ*bEwRl&SIEMPR5h6NmEK8g9Kvo6f()R`SMF70LBvtEDKud^+;FC1n0`R>42S@K*X(y@p#3(>G}ffdf@*UCw%L$qH`R z!5Vkv>7pTzhzGq3e5#(WO$WT5{`nBA(RHOi>sa-=WUSw}g4xs&RpY$nmK|9i zi3Ia405{!ep|lAu^B=GS`|TF~9kSL`F>5)_k{!sr29M?PT6{bCCUE4x`EZPHhhaV^ z;?PwmaTinbfp3e0;rHbXDz?lQEnm)u5x%-68Hqxt~MVODcnp!z|xGErC&}xF;0^`-Qk73-y-b44$`w)GDdx(X2kogJ8>@Vn#;dcxy z@b38dGYs;6{3-SV&rd`A9g&BKcK!i6e<~}1&p?rk@Yi{14uLGaqe>T;1t)> zMCS}H@r9@m%0#|wAymK^xfLD-Ob~(?B~MW56!j})40QGOia#-;VW2mR>vS`&JUL?I z&@$P?V+<*mVxddjp}MKi+;GIQWln3FOX3|m6#;ZO node_map ,ProductionList recognizer_f_list){ - if(node_map == null && recognizer_f_list == null){ - System.err.println("AriadneGraph: At least one of 'node_map' (Map) or 'recognizer_f_list' (List) must be provided."); - System.exit(1); - } - - // Initialize each of node_map and recognizer_f_list to empty collections if null - this.node_map = (node_map != null) ? node_map : new HashMap