Add a uniqueName function.
authorMatthijs Kooijman <m.kooijman@student.utwente.nl>
Thu, 29 Jan 2009 10:42:50 +0000 (11:42 +0100)
committerMatthijs Kooijman <m.kooijman@student.utwente.nl>
Thu, 29 Jan 2009 10:42:50 +0000 (11:42 +0100)
This function appends a unique number to names to make the names unique.

Translator.hs

index ad4feeb7a0158661a1c2cb8cfc94d25720ad632a..713698c70fea58e8447dfbf291f8634ffb8de77d 100644 (file)
@@ -287,6 +287,15 @@ getHWFunc name = do
     (error $ "Function " ++ name ++ "is unknown? This should not happen!")
     (lookup name fs)
 
+-- Makes the given name unique by appending a unique number.
+-- This does not do any checking against existing names, so it only guarantees
+-- uniqueness with other names generated by uniqueName.
+uniqueName :: String -> VHDLState String
+uniqueName name = do
+  count <- State.gets nameCount -- Get the funcs element from the session
+  State.modify (\s -> s {nameCount = count + 1})
+  return $ name ++ "-" ++ (show count)
+  
 builtin_funcs = 
   [ 
     ("hwxor", HWFunction [Port "a", Port "b"] (Port "o")),