aboutsummaryrefslogtreecommitdiffstats
path: root/psl/psl-nfas.ads
diff options
context:
space:
mode:
Diffstat (limited to 'psl/psl-nfas.ads')
-rw-r--r--psl/psl-nfas.ads108
1 files changed, 0 insertions, 108 deletions
diff --git a/psl/psl-nfas.ads b/psl/psl-nfas.ads
deleted file mode 100644
index 815acf223..000000000
--- a/psl/psl-nfas.ads
+++ /dev/null
@@ -1,108 +0,0 @@
-with Types; use Types;
-with PSL.Nodes; use PSL.Nodes;
-
-package PSL.NFAs is
- -- Represents NFAs for PSL.
- -- These NFAs have the following restrictions:
- -- * 1 start state
- -- * 1 final state (which can be the start state).
- -- * possible epsilon transition between start and final state with the
- -- meaning: A | eps
-
- type NFA_State is new Nat32;
- type NFA_Edge is new Nat32;
-
- No_NFA : constant NFA := 0;
- No_State : constant NFA_State := 0;
- No_Edge : constant NFA_Edge := 0;
-
- -- Create a new NFA.
- function Create_NFA return NFA;
-
- -- Add a new state to an NFA.
- function Add_State (N : NFA) return NFA_State;
-
- -- Add a transition.
- procedure Add_Edge (Src : NFA_State; Dest : NFA_State; Expr : Node);
- function Add_Edge (Src : NFA_State; Dest : NFA_State; Expr : Node)
- return NFA_Edge;
-
- -- Disconnect and free edge E.
- procedure Remove_Edge (E : NFA_Edge);
-
- -- Return TRUE if there is an epsilon edge between start and final.
- function Get_Epsilon_NFA (N : NFA) return Boolean;
- procedure Set_Epsilon_NFA (N : NFA; Flag : Boolean);
-
- -- Each NFA has one start and one final state.
- function Get_Start_State (N : NFA) return NFA_State;
- procedure Set_Start_State (N : NFA; S : NFA_State);
-
- procedure Set_Final_State (N : NFA; S : NFA_State);
- function Get_Final_State (N : NFA) return NFA_State;
-
- -- Iterate on all states.
- function Get_First_State (N : NFA) return NFA_State;
- function Get_Next_State (S : NFA_State) return NFA_State;
-
- -- Per state user flag.
- -- Initialized set to false.
- function Get_State_Flag (S : NFA_State) return Boolean;
- procedure Set_State_Flag (S : NFA_State; Val : Boolean);
-
- -- Per state user link.
- function Get_State_User_Link (S : NFA_State) return NFA_State;
- procedure Set_State_User_Link (S : NFA_State; Link : NFA_State);
-
- -- Edges of a state.
- -- A source edge is an edge whose source is the state.
- function Get_First_Src_Edge (N : NFA_State) return NFA_Edge;
- function Get_Next_Src_Edge (N : NFA_Edge) return NFA_Edge;
-
- -- A dest edge is an edge whose destination is the state.
- function Get_First_Dest_Edge (N : NFA_State) return NFA_Edge;
- function Get_Next_Dest_Edge (N : NFA_Edge) return NFA_Edge;
-
- function Get_State_Label (S : NFA_State) return Int32;
- procedure Set_State_Label (S : NFA_State; Label : Int32);
-
- function Get_Edge_Dest (E: NFA_Edge) return NFA_State;
- function Get_Edge_Src (E : NFA_Edge) return NFA_State;
- function Get_Edge_Expr (E : NFA_Edge) return Node;
-
- -- Move States and edges of R to L.
- procedure Merge_NFA (L, R : NFA);
-
- -- All edges to S are redirected to DEST.
- procedure Redest_Edges (S : NFA_State; Dest : NFA_State);
-
- -- All edges from S are redirected from SRC.
- procedure Resource_Edges (S : NFA_State; Src : NFA_State);
-
- -- Remove a state. The state must be unconnected.
- procedure Remove_Unconnected_State (N : NFA; S : NFA_State);
-
- -- Deconnect and remove state S.
- procedure Remove_State (N : NFA; S : NFA_State);
-
- procedure Delete_Empty_NFA (N : NFA);
-
- -- Set a label on the states of the NFA N.
- -- Start state is has label 0.
- -- Return the number of states.
- procedure Labelize_States (N : NFA; Nbr_States : out Natural);
-
- -- Set state index as state label.
- -- Used to debug an NFA.
- procedure Labelize_States_Debug (N : NFA);
-
- procedure Set_Edge_Expr (E : NFA_Edge; N : Node);
-private
- -- Low level procedures. Shouldn't be used directly.
- procedure Set_First_Dest_Edge (N : NFA_State; T : NFA_Edge);
- procedure Set_Next_Dest_Edge (E : NFA_Edge; N_E : NFA_Edge);
- procedure Set_First_Src_Edge (N : NFA_State; T : NFA_Edge);
- procedure Set_Next_Src_Edge (E : NFA_Edge; N_E : NFA_Edge);
- procedure Set_Edge_Dest (E : NFA_Edge; D : NFA_State);
- procedure Set_Edge_Src (E : NFA_Edge; D : NFA_State);
-end PSL.NFAs;