summaryrefslogtreecommitdiff
path: root/psl/psl-optimize.ads
diff options
context:
space:
mode:
authorgingold2010-01-12 03:15:20 +0000
committergingold2010-01-12 03:15:20 +0000
commitfb5957a16dea47ae4021c5d4c57b980cea02ee59 (patch)
treeabdfbed5924f5be4418f74a0afe50b248e41c330 /psl/psl-optimize.ads
parent8cca0b24e2c19eedecffdeec89a8a2898da1e362 (diff)
downloadghdl-fb5957a16dea47ae4021c5d4c57b980cea02ee59.tar.gz
ghdl-fb5957a16dea47ae4021c5d4c57b980cea02ee59.tar.bz2
ghdl-fb5957a16dea47ae4021c5d4c57b980cea02ee59.zip
ghdl 0.29 release.
Diffstat (limited to 'psl/psl-optimize.ads')
-rw-r--r--psl/psl-optimize.ads24
1 files changed, 24 insertions, 0 deletions
diff --git a/psl/psl-optimize.ads b/psl/psl-optimize.ads
new file mode 100644
index 0000000..5f36a07
--- /dev/null
+++ b/psl/psl-optimize.ads
@@ -0,0 +1,24 @@
+with PSL.NFAs; use PSL.NFAs;
+with PSL.Nodes; use PSL.Nodes;
+
+package PSL.Optimize is
+ -- Remove unreachable states, ie
+ -- * states that can't be reach from the start state.
+ -- * states that can't reach the final state.
+ -- O(N) algorithm.
+ procedure Remove_Unreachable_States (N : NFA);
+
+ -- Remove single prefix, ie edges to a state S that is also from start
+ -- to S.
+ -- O(M) algorithm.
+ procedure Remove_Simple_Prefix (N : NFA);
+
+ procedure Merge_Identical_States (N : NFA);
+
+ procedure Merge_Edges (N : NFA);
+
+ procedure Remove_Identical_Src_Edges (S : NFA_State);
+ procedure Remove_Identical_Dest_Edges (S : NFA_State);
+
+ --procedure Find_Partitions (N : NFA; Nbr_States : Natural);
+end PSL.Optimize;