-- This corresponds to src/comp/Lex.hs in bsc. module Language.Bluespec.Lex ( isIdChar , isSym ) where import Data.Char (isAlphaNum) import Language.Bluespec.Prelude isSym :: Char -> Bool isSym '!' = True; isSym '@' = True; isSym '#' = True; isSym '$' = True isSym '%' = True; isSym '&' = True; isSym '*' = True; isSym '+' = True isSym '.' = True; isSym '/' = True; isSym '<' = True; isSym '=' = True isSym '>' = True; isSym '?' = True; isSym '\\' = True; isSym '^' = True isSym '|' = True; isSym ':' = True; isSym '-' = True; isSym '~' = True isSym ',' = True isSym c | c >= '\x80' = c `elem` ['\162', '\163', '\164', '\165', '\166', '\167', '\168', '\169', '\170', '\171', '\172', '\173', '\174', '\175', '\176', '\177', '\178', '\179', '\180', '\181', '\183', '\184', '\185', '\186', '\187', '\188', '\189', '\190', '\191', '\215', '\247' ] --isSym c | c >= '\x80' = isSymbol c isSym _ = False isIdChar :: Char -> Bool isIdChar '\'' = True isIdChar '_' = True -- \176 (hexB0) (octal 0260) is the degree symbol isIdChar '\176' = True -- \180 (hexB4) (octal 0264) is the prime (acute accent) symbol isIdChar '\180' = True isIdChar c = isAlphaNum c