projects
/
matthijs
/
master-project
/
cλash.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
0de2751
)
Strip adjacent underscores from VHDLIds.
author
Matthijs Kooijman
<m.kooijman@student.utwente.nl>
Thu, 5 Mar 2009 11:59:34 +0000
(12:59 +0100)
committer
Matthijs Kooijman
<m.kooijman@student.utwente.nl>
Thu, 5 Mar 2009 11:59:34 +0000
(12:59 +0100)
VHDL.hs
patch
|
blob
|
history
diff --git
a/VHDL.hs
b/VHDL.hs
index f5ab7cd25cd23046d6e95887036c6f50d3e51331..338aa1df889005824ca15bb3407c7517a11882c0 100644
(file)
--- a/
VHDL.hs
+++ b/
VHDL.hs
@@
-4,6
+4,7
@@
module VHDL where
import qualified Data.Foldable as Foldable
module VHDL where
import qualified Data.Foldable as Foldable
+import qualified Data.List as List
import qualified Maybe
import qualified Control.Monad as Monad
import qualified Control.Arrow as Arrow
import qualified Maybe
import qualified Control.Monad as Monad
import qualified Control.Arrow as Arrow
@@
-371,7
+372,13
@@
vhdl_ty_maybe ty =
-- Shortcut
mkVHDLId :: String -> AST.VHDLId
mkVHDLId s =
-- Shortcut
mkVHDLId :: String -> AST.VHDLId
mkVHDLId s =
- AST.unsafeVHDLBasicId
s'
+ AST.unsafeVHDLBasicId
$ (strip_multiscore . strip_invalid) s
where
-- Strip invalid characters.
where
-- Strip invalid characters.
- s' = filter (`elem` ['A'..'Z'] ++ ['a'..'z'] ++ ['0'..'9'] ++ "_.") s
+ strip_invalid = filter (`elem` ['A'..'Z'] ++ ['a'..'z'] ++ ['0'..'9'] ++ "_.")
+ -- Strip multiple adjacent underscores
+ strip_multiscore = concat . map (\cs ->
+ case cs of
+ ('_':_) -> "_"
+ _ -> cs
+ ) . List.group