From 45e69a1be56e03ff3b96c37d4fbea7cb53039b6a Mon Sep 17 00:00:00 2001 From: Thomas Walker Lynch Date: Tue, 7 Jan 2025 10:04:28 +0000 Subject: [PATCH] cleaning/refactoring the base SRM --- developer/example/CountingNumber.java | 127 ++++++++++-------- developer/example/Example_* | 2 - .../javac\360\237\226\211/Ariadne_SRM.java" | 71 +++++++--- .../Ariadne_SRMI_Array.java" | 92 ------------- .../Ariadne_SRM_List.java" | 64 ++++----- .../holder/Ariadne_Graph.java" | 0 .../holder/Ariadne_IndexTree_Child_SRM.java" | 29 ++-- .../holder/Ariadne_IndexTree_Graph.java" | 0 .../holder/Ariadne_IndexTree_Node.java" | 0 .../holder/Ariadne_Label.java" | 0 .../holder/Ariadne_Node.java" | 16 +-- .../holder/Ariadne_SRMI.java" | 4 +- .../holder/Ariadne_SRMI_Array.java" | 81 +++++++++++ .../holder/Ariadne_Test.java" | 0 .../holder/Ariadne_Token.java" | 0 .../holder/Ariadne_TokenSet.java" | 0 .../holder/Ariadne_Util.java" | 0 .../holder/DirectedGraph.xjava" | 0 .../javac\360\237\226\211/holder/File.java" | 0 19 files changed, 257 insertions(+), 229 deletions(-) delete mode 100755 developer/example/Example_* delete mode 100644 "developer/javac\360\237\226\211/Ariadne_SRMI_Array.java" rename "developer/javac\360\237\226\211/Ariadne_Graph.java" => "developer/javac\360\237\226\211/holder/Ariadne_Graph.java" (100%) rename "developer/javac\360\237\226\211/Ariadne_IndexTree_Child_SRM.java" => "developer/javac\360\237\226\211/holder/Ariadne_IndexTree_Child_SRM.java" (57%) rename "developer/javac\360\237\226\211/Ariadne_IndexTree_Graph.java" => "developer/javac\360\237\226\211/holder/Ariadne_IndexTree_Graph.java" (100%) rename "developer/javac\360\237\226\211/Ariadne_IndexTree_Node.java" => "developer/javac\360\237\226\211/holder/Ariadne_IndexTree_Node.java" (100%) rename "developer/javac\360\237\226\211/Ariadne_Label.java" => "developer/javac\360\237\226\211/holder/Ariadne_Label.java" (100%) rename "developer/javac\360\237\226\211/Ariadne_Node.java" => "developer/javac\360\237\226\211/holder/Ariadne_Node.java" (90%) rename "developer/javac\360\237\226\211/Ariadne_SRMI.java" => "developer/javac\360\237\226\211/holder/Ariadne_SRMI.java" (97%) create mode 100644 "developer/javac\360\237\226\211/holder/Ariadne_SRMI_Array.java" rename "developer/javac\360\237\226\211/Ariadne_Test.java" => "developer/javac\360\237\226\211/holder/Ariadne_Test.java" (100%) rename "developer/javac\360\237\226\211/Ariadne_Token.java" => "developer/javac\360\237\226\211/holder/Ariadne_Token.java" (100%) rename "developer/javac\360\237\226\211/Ariadne_TokenSet.java" => "developer/javac\360\237\226\211/holder/Ariadne_TokenSet.java" (100%) rename "developer/javac\360\237\226\211/Ariadne_Util.java" => "developer/javac\360\237\226\211/holder/Ariadne_Util.java" (100%) rename "developer/javac\360\237\226\211/DirectedGraph.xjava" => "developer/javac\360\237\226\211/holder/DirectedGraph.xjava" (100%) rename "developer/javac\360\237\226\211/File.java" => "developer/javac\360\237\226\211/holder/File.java" (100%) diff --git a/developer/example/CountingNumber.java b/developer/example/CountingNumber.java index 0536304..cbfc6b9 100644 --- a/developer/example/CountingNumber.java +++ b/developer/example/CountingNumber.java @@ -3,119 +3,138 @@ import java.math.BigInteger; public class CountingNumber extends Ariadne_SRM{ + public static CountingNumber make(BigInteger maximum){ + return new CountingNumber(maximum); + } + + public static CountingNumber make(){ + return new CountingNumber(); + } + private BigInteger i; private BigInteger maximum; - private final State state_null = new State_Null(); - private final State state_segment = new State_Segment(); - private final State state_rightmost = new State_Rightmost(); - private final State state_infinite = new State_Infinite(); + private final TopoIface state_null = new ASRM_Null(); + private final TopoIface state_segment = new ASRM_Segment(); + private final TopoIface state_rightmost = new ASRM_Rightmost(); + private final TopoIface state_infinite = new ASRM_Infinite(); - private CountingNumber(BigInteger maximum){ + public CountingNumber(){ + this.i = BigInteger.ONE; + this.maximum = maximum; + set_topology(state_infinite); + } + + public CountingNumber(BigInteger maximum){ this.i = BigInteger.ONE; this.maximum = maximum; - if( maximum == null ){ - set_state(state_infinite); - }else if( maximum.compareTo(BigInteger.ZERO) <= 0 ){ - set_state(state_null); - }else if( maximum.equals(BigInteger.ONE) ){ - set_state(state_rightmost); - }else{ - set_state(state_segment); + if( maximum.compareTo(BigInteger.ZERO) <= 0 ){ + set_topology( state_null ); + return; } - } - public static CountingNumber make(BigInteger maximum){ - return new CountingNumber(maximum); - } + if( maximum.equals(BigInteger.ONE) ){ + set_topology(state_rightmost); + return; + } - public static CountingNumber make(){ - return new CountingNumber(null); + set_topology(state_segment); } - @Override - public BigInteger read(){ - return i; - } - private class State_Null extends State{ + private class ASRM_Null implements TopoIface{ @Override - boolean can_read(){ + public boolean can_read(){ return false; } @Override - boolean can_step(){ + public BigInteger read(){ + return i; + } + @Override + public boolean can_step(){ return false; } @Override - void step(){ - throw new UnsupportedOperationException("Cannot step from NULL state."); + public void step(){ + throw new UnsupportedOperationException( "Cannot step from NULL state." ); } @Override - MachineState state(){ - return MachineState.NULL; + public Topology topology(){ + return Topology.NULL; } } - private class State_Segment extends State{ + private class ASRM_Segment implements TopoIface{ @Override - boolean can_read(){ + public boolean can_read(){ return true; } @Override - boolean can_step(){ + public BigInteger read(){ + return i; + } + @Override + public boolean can_step(){ return true; } @Override - void step(){ - i = i.add(BigInteger.ONE); - if( i.equals(maximum) ){ - set_state(state_rightmost); + public void step(){ + i = i.add( BigInteger.ONE ); + if( i.equals( maximum ) ){ + set_topology( state_rightmost ); } } @Override - MachineState state(){ - return MachineState.SEGMENT; + public Topology topology(){ + return Topology.SEGMENT; } } - private class State_Rightmost extends State{ + private class ASRM_Rightmost implements TopoIface{ @Override - boolean can_read(){ + public boolean can_read(){ return true; } @Override - boolean can_step(){ + public BigInteger read(){ + return i; + } + @Override + public boolean can_step(){ return false; } @Override - void step(){ - throw new UnsupportedOperationException("Cannot step from RIGHTMOST."); + public void step(){ + throw new UnsupportedOperationException( "Cannot step from RIGHTMOST." ); } @Override - MachineState state(){ - return MachineState.RIGHTMOST; + public Topology topology(){ + return Topology.RIGHTMOST; } } - private class State_Infinite extends State{ + private class ASRM_Infinite implements TopoIface{ @Override - boolean can_read(){ + public boolean can_read(){ return true; } @Override - boolean can_step(){ + public BigInteger read(){ + return i; + } + @Override + public boolean can_step(){ return true; } @Override - void step(){ - i = i.add(BigInteger.ONE); + public void step(){ + i = i.add( BigInteger.ONE ); } @Override - MachineState state(){ - return MachineState.INFINITE; + public Topology topology(){ + return Topology.INFINITE; } } - } diff --git a/developer/example/Example_* b/developer/example/Example_* deleted file mode 100755 index 3c6f542..0000000 --- a/developer/example/Example_* +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/bash -java Example_* diff --git "a/developer/javac\360\237\226\211/Ariadne_SRM.java" "b/developer/javac\360\237\226\211/Ariadne_SRM.java" index 562073d..b5cbd5a 100644 --- "a/developer/javac\360\237\226\211/Ariadne_SRM.java" +++ "b/developer/javac\360\237\226\211/Ariadne_SRM.java" @@ -8,9 +8,9 @@ */ package com.ReasoningTechnology.Ariadne; -public abstract class Ariadne_SRM{ +public class Ariadne_SRM{ - public enum MachineState{ + public enum Topology{ NULL ,CYCLIC ,SEGMENT @@ -19,32 +19,71 @@ public abstract class Ariadne_SRM{ ; } - protected abstract class State{ - abstract boolean can_read(); - abstract boolean can_step(); - abstract void step(); - abstract MachineState state(); + public static Ariadne_SRM make(){ + return new Ariadne_SRM<>(); } - protected State current_state; + protected TopoIface current_topology; + public final TopoIface not_mounted = new NotMounted(); - protected void set_state(State new_state){ - this.current_state = new_state; + protected Ariadne_SRM(){ + set_topology(not_mounted); + } + + public boolean is_mounted(){ + return + current_topology != null + && current_topology != not_mounted; + } + + // Interface for interacting with a tape. + protected interface TopoIface{ + boolean can_read(); + T read(); + boolean can_step(); + void step(); + Topology topology(); + } + + // Initially the tape has not been mounted so it can not be interacted with. + protected class NotMounted implements TopoIface{ + public boolean can_read(){ + return false; + } + public T read(){ + throw new UnsupportedOperationException("Ariadne_SRM::NotMounted::read."); + } + public boolean can_step(){ + return false; + } + public void step(){ + throw new UnsupportedOperationException("Ariadne_SRM::NotMounted::step."); + } + public Topology topology(){ + throw new UnsupportedOperationException("Ariadne_SRM::NotMounted::topology."); + } + } + + // sets the tape access methods to be used + protected void set_topology(TopoIface new_topology){ + current_topology = new_topology; } public boolean can_read(){ - return current_state.can_read(); + return current_topology.can_read(); + } + public T read(){ + return current_topology.read(); } public boolean can_step(){ - return current_state.can_step(); + return current_topology.can_step(); } public void step(){ - current_state.step(); + current_topology.step(); } - public MachineState state(){ - return current_state.state(); + public Topology topology(){ + return current_topology.topology(); } - public abstract T read(); } diff --git "a/developer/javac\360\237\226\211/Ariadne_SRMI_Array.java" "b/developer/javac\360\237\226\211/Ariadne_SRMI_Array.java" deleted file mode 100644 index bccefa0..0000000 --- "a/developer/javac\360\237\226\211/Ariadne_SRMI_Array.java" +++ /dev/null @@ -1,92 +0,0 @@ -package com.ReasoningTechnology.Ariadne; - -import java.math.BigInteger; -import java.util.List; - -public class Ariadne_SRMI_Array extends Ariadne_SRMI { - - private final List array; - - public Ariadne_SRMI_Array(List array) { - super(BigInteger.ZERO, array == null || array.isEmpty() ? BigInteger.ZERO : BigInteger.valueOf(array.size() - 1)); - - if (array == null || array.isEmpty()) { - set_state(state_null); - } else if (array.size() == 1) { - set_state(state_rightmost); - } else { - set_state(state_segment); - } - - this.array = array; - } - - @Override - public TElement read() { - if (!can_read()) { - throw new UnsupportedOperationException("Cannot read from the current state."); - } - return array.get(index().intValueExact()); - } - - private final State state_null = new State() { - @Override - boolean can_read() { - return false; - } - @Override - boolean can_step() { - return false; - } - @Override - void step() { - throw new UnsupportedOperationException("Cannot step from NULL state."); - } - @Override - MachineState state() { - return MachineState.NULL; - } - }; - - private final State state_segment = new State() { - @Override - boolean can_read() { - return true; - } - @Override - boolean can_step() { - return index().compareTo(rightmost_index().subtract(BigInteger.ONE)) < 0; - } - @Override - void step() { - if (can_step()) { - seek(index().add(BigInteger.ONE)); - } else { - set_state(state_rightmost); - } - } - @Override - MachineState state() { - return MachineState.SEGMENT; - } - }; - - private final State state_rightmost = new State() { - @Override - boolean can_read() { - return true; - } - @Override - boolean can_step() { - return false; - } - @Override - void step() { - throw new UnsupportedOperationException("Cannot step from RIGHTMOST state."); - } - @Override - MachineState state() { - return MachineState.RIGHTMOST; - } - }; -} diff --git "a/developer/javac\360\237\226\211/Ariadne_SRM_List.java" "b/developer/javac\360\237\226\211/Ariadne_SRM_List.java" index b884f98..5094b0d 100644 --- "a/developer/javac\360\237\226\211/Ariadne_SRM_List.java" +++ "b/developer/javac\360\237\226\211/Ariadne_SRM_List.java" @@ -23,72 +23,62 @@ public class Ariadne_SRM_List extends Ariadne_SRM{ } } - private final State state_null = new State(){ - @Override - boolean can_read(){ + private final ASRM state_null = new ASRM(){ + @Override public boolean can_read(){ return false; } - @Override - boolean can_step(){ + @Override public void read(){ + throw new UnsupportedOperationException("Cannot read from NULL state."); + } + @Override public boolean can_step(){ return false; } - @Override - void step(){ + @Override public void step(){ throw new UnsupportedOperationException("Cannot step from NULL state."); } - @Override - MachineState state(){ - return MachineState.NULL; + @Override public State state(){ + return State.NULL; } }; - private final State state_segment = new State(){ - @Override - boolean can_read(){ + private final ASRM state_segment = new ASRM(){ + @Override public boolean can_read(){ return true; } - @Override - boolean can_step(){ + @Override public void read(){ + return list.get(current_index); + } + @Override public boolean can_step(){ return current_index < list.size() - 1; } - @Override - void step(){ + @Override public void step(){ if(can_step()){ current_index++; }else{ set_state(state_rightmost); } } - @Override - MachineState state(){ - return MachineState.SEGMENT; + @Override public State state(){ + return State.SEGMENT; } }; - private final State state_rightmost = new State(){ - @Override - boolean can_read(){ + private final ASRM state_rightmost = new ASRM(){ + @Override public boolean can_read(){ return true; } - @Override - boolean can_step(){ + @Override public void read(){ + return list.get(current_index); + } + @Override public boolean can_step(){ return false; } - @Override - void step(){ + @Override public void step(){ throw new UnsupportedOperationException("Cannot step from RIGHTMOST state."); } - @Override - MachineState state(){ - return MachineState.RIGHTMOST; + @Override public State state(){ + return State.RIGHTMOST; } }; - @Override - public T read(){ - if(!can_read()){ - throw new UnsupportedOperationException("Cannot read from NULL state."); - } - return list.get(current_index); - } } diff --git "a/developer/javac\360\237\226\211/Ariadne_Graph.java" "b/developer/javac\360\237\226\211/holder/Ariadne_Graph.java" similarity index 100% rename from "developer/javac\360\237\226\211/Ariadne_Graph.java" rename to "developer/javac\360\237\226\211/holder/Ariadne_Graph.java" diff --git "a/developer/javac\360\237\226\211/Ariadne_IndexTree_Child_SRM.java" "b/developer/javac\360\237\226\211/holder/Ariadne_IndexTree_Child_SRM.java" similarity index 57% rename from "developer/javac\360\237\226\211/Ariadne_IndexTree_Child_SRM.java" rename to "developer/javac\360\237\226\211/holder/Ariadne_IndexTree_Child_SRM.java" index 23fc658..4fb6df8 100644 --- "a/developer/javac\360\237\226\211/Ariadne_IndexTree_Child_SRM.java" +++ "b/developer/javac\360\237\226\211/holder/Ariadne_IndexTree_Child_SRM.java" @@ -19,31 +19,22 @@ public class Ariadne_IndexTree_Child_SRM extends Ariadne_SRMI{ set_state(state_infinite_right); } - private final Ariadne_SRM.State state_infinite_right = new Ariadne_SRM.State(){ - @Override boolean can_read(){ + private final Ariadne_SRM.ASRM state_infinite_right = new Ariadne_SRM.ASRM(){ + @Override public boolean can_read(){ return true; } - @Override boolean can_step(){ + @Override public BigInteger[] read(){ + return label; + } + @Override public boolean can_step(){ return true; } - @Override void step(){ - increment_label(); + @Override public void step(){ + label[label.length - 1] = super.index(); } - @Override Ariadne_SRM.MachineState state(){ - return Ariadne_SRM.MachineState.INFINITE; + @Override public Ariadne_SRM.State state(){ + return Ariadne_SRM.State.INFINITE; } }; - private void increment_label(){ - label[label.length - 1] = super.index(); - } - - @Override public void step(){ - super.step(); - label[label.length - 1] = super.index(); - } - - @Override public BigInteger[] read(){ - return label; - } } diff --git "a/developer/javac\360\237\226\211/Ariadne_IndexTree_Graph.java" "b/developer/javac\360\237\226\211/holder/Ariadne_IndexTree_Graph.java" similarity index 100% rename from "developer/javac\360\237\226\211/Ariadne_IndexTree_Graph.java" rename to "developer/javac\360\237\226\211/holder/Ariadne_IndexTree_Graph.java" diff --git "a/developer/javac\360\237\226\211/Ariadne_IndexTree_Node.java" "b/developer/javac\360\237\226\211/holder/Ariadne_IndexTree_Node.java" similarity index 100% rename from "developer/javac\360\237\226\211/Ariadne_IndexTree_Node.java" rename to "developer/javac\360\237\226\211/holder/Ariadne_IndexTree_Node.java" diff --git "a/developer/javac\360\237\226\211/Ariadne_Label.java" "b/developer/javac\360\237\226\211/holder/Ariadne_Label.java" similarity index 100% rename from "developer/javac\360\237\226\211/Ariadne_Label.java" rename to "developer/javac\360\237\226\211/holder/Ariadne_Label.java" diff --git "a/developer/javac\360\237\226\211/Ariadne_Node.java" "b/developer/javac\360\237\226\211/holder/Ariadne_Node.java" similarity index 90% rename from "developer/javac\360\237\226\211/Ariadne_Node.java" rename to "developer/javac\360\237\226\211/holder/Ariadne_Node.java" index 5384b06..f3a05dd 100644 --- "a/developer/javac\360\237\226\211/Ariadne_Node.java" +++ "b/developer/javac\360\237\226\211/holder/Ariadne_Node.java" @@ -31,10 +31,10 @@ package com.ReasoningTechnology.Ariadne; import java.util.HashMap; import java.util.HashSet; -public class Ariadne_Node extends HashMap { +public class Ariadne_Node extends HashMap{ // Owned by the class - public static Ariadne_Node make(TLabel label) { + public static Ariadne_Node make(TLabel label){ return new Ariadne_Node<>(label); } @@ -44,14 +44,14 @@ public class Ariadne_Node extends HashMap { private static final String NEIGHBOR_PROPERTY_NAME = "neighbor_property"; // Constructors - public Ariadne_Node(TLabel label) { + protected Ariadne_Node(TLabel label){ super(); this.label = label; this.markSet = new HashSet<>(); } // Instance interface - public TLabel label() { + public TLabel label(){ return this.label; } @@ -59,21 +59,21 @@ public class Ariadne_Node extends HashMap { throw new UnsupportedOperationException("Neighbor is not implemented in the base class."); } - public void mark(Ariadne_Token token) { + public void mark(Ariadne_Token token){ markSet.add(token); } - public boolean hasMark(Ariadne_Token token) { + public boolean hasMark(Ariadne_Token token){ return markSet.contains(token); } - public void removeMark(Ariadne_Token token) { + public void removeMark(Ariadne_Token token){ markSet.remove(token); } // Object interface @Override - public String toString() { + public String toString(){ return "Ariadne_Node{" + "label=" + label + " ,markSet=" + markSet diff --git "a/developer/javac\360\237\226\211/Ariadne_SRMI.java" "b/developer/javac\360\237\226\211/holder/Ariadne_SRMI.java" similarity index 97% rename from "developer/javac\360\237\226\211/Ariadne_SRMI.java" rename to "developer/javac\360\237\226\211/holder/Ariadne_SRMI.java" index e7b2e29..fa7e5fc 100644 --- "a/developer/javac\360\237\226\211/Ariadne_SRMI.java" +++ "b/developer/javac\360\237\226\211/holder/Ariadne_SRMI.java" @@ -12,6 +12,8 @@ public abstract class Ariadne_SRMI extends Ariadne_SRM{ private final BigInteger leftmost_index; private final BigInteger rightmost_index; + public static + public Ariadne_SRMI(BigInteger leftmost_index, BigInteger rightmost_index){ if(leftmost_index == null || rightmost_index == null @@ -45,7 +47,7 @@ public abstract class Ariadne_SRMI extends Ariadne_SRM{ @Override public void step(){ - current_state.step(); + super.step(); current_index = current_index.add(BigInteger.ONE); } } diff --git "a/developer/javac\360\237\226\211/holder/Ariadne_SRMI_Array.java" "b/developer/javac\360\237\226\211/holder/Ariadne_SRMI_Array.java" new file mode 100644 index 0000000..c131655 --- /dev/null +++ "b/developer/javac\360\237\226\211/holder/Ariadne_SRMI_Array.java" @@ -0,0 +1,81 @@ +package com.ReasoningTechnology.Ariadne; + +import java.math.BigInteger; +import java.util.List; + +public class Ariadne_SRMI_Array extends Ariadne_SRMI{ + + private final List array; + + public Ariadne_SRMI_Array(List array){ + super(BigInteger.ZERO, array == null || array.isEmpty() ? BigInteger.ZERO : BigInteger.valueOf(array.size() - 1)); + + if (array == null || array.isEmpty()){ + set_state(state_null); + } else if (array.size() == 1){ + set_state(state_rightmost); + } else{ + set_state(state_segment); + } + + this.array = array; + } + + private final ASRM state_null = new ASRM(){ + @Override public boolean can_read(){ + return false; + } + @Override public T read(){ + throw new UnsupportedOperationException("Cannot read from NULL state."); + } + @Override public boolean can_step(){ + return false; + } + @Override public void step(){ + throw new UnsupportedOperationException("Cannot step from NULL state."); + } + @Override public State state(){ + return State.NULL; + } + }; + + private final ASRM state_segment = new ASRM(){ + @Override public boolean can_read(){ + return true; + } + @Override public void read(){ + return array.get(index().intValueExact()); + } + @Override public boolean can_step(){ + return index().compareTo(rightmost_index().subtract(BigInteger.ONE)) < 0; + } + @Override public void step(){ + if (can_step()){ + seek(index().add(BigInteger.ONE)); + } else{ + set_state(state_rightmost); + } + } + @Override public State state(){ + return State.SEGMENT; + } + }; + + private final ASRM state_rightmost = new ASRM(){ + @Override public boolean can_read(){ + return true; + } + @Override public void read(){ + return array.get(index().intValueExact()); + } + @Override public boolean can_step(){ + return false; + } + @Override public void step(){ + throw new UnsupportedOperationException("Cannot step from RIGHTMOST state."); + } + @Override public State state(){ + return State.RIGHTMOST; + } + }; +} diff --git "a/developer/javac\360\237\226\211/Ariadne_Test.java" "b/developer/javac\360\237\226\211/holder/Ariadne_Test.java" similarity index 100% rename from "developer/javac\360\237\226\211/Ariadne_Test.java" rename to "developer/javac\360\237\226\211/holder/Ariadne_Test.java" diff --git "a/developer/javac\360\237\226\211/Ariadne_Token.java" "b/developer/javac\360\237\226\211/holder/Ariadne_Token.java" similarity index 100% rename from "developer/javac\360\237\226\211/Ariadne_Token.java" rename to "developer/javac\360\237\226\211/holder/Ariadne_Token.java" diff --git "a/developer/javac\360\237\226\211/Ariadne_TokenSet.java" "b/developer/javac\360\237\226\211/holder/Ariadne_TokenSet.java" similarity index 100% rename from "developer/javac\360\237\226\211/Ariadne_TokenSet.java" rename to "developer/javac\360\237\226\211/holder/Ariadne_TokenSet.java" diff --git "a/developer/javac\360\237\226\211/Ariadne_Util.java" "b/developer/javac\360\237\226\211/holder/Ariadne_Util.java" similarity index 100% rename from "developer/javac\360\237\226\211/Ariadne_Util.java" rename to "developer/javac\360\237\226\211/holder/Ariadne_Util.java" diff --git "a/developer/javac\360\237\226\211/DirectedGraph.xjava" "b/developer/javac\360\237\226\211/holder/DirectedGraph.xjava" similarity index 100% rename from "developer/javac\360\237\226\211/DirectedGraph.xjava" rename to "developer/javac\360\237\226\211/holder/DirectedGraph.xjava" diff --git "a/developer/javac\360\237\226\211/File.java" "b/developer/javac\360\237\226\211/holder/File.java" similarity index 100% rename from "developer/javac\360\237\226\211/File.java" rename to "developer/javac\360\237\226\211/holder/File.java" -- 2.20.1