Safe Haskell | None |
---|---|
Language | Haskell98 |
This module contains Haskell variables representing globally visible names. Rather than have strings floating around the system, all constant names should be defined here, and the (exported) variables should be used and manipulated elsewhere.
- data Symbol
- class Symbolic a where
- type LocSymbol = Located Symbol
- type LocText = Located Text
- symbolSafeText :: Symbol -> SafeText
- symbolSafeString :: Symbol -> String
- symbolText :: Symbol -> Text
- symbolString :: Symbol -> String
- isPrefixOfSym :: Symbol -> Symbol -> Bool
- isSuffixOfSym :: Symbol -> Symbol -> Bool
- isNonSymbol :: Symbol -> Bool
- isNontrivialVV :: Symbol -> Bool
- isDummy :: Symbolic a => a -> Bool
- stripPrefix :: Symbol -> Symbol -> Maybe Symbol
- consSym :: Char -> Symbol -> Symbol
- unconsSym :: Symbol -> Maybe (Char, Symbol)
- dropSym :: Int -> Symbol -> Symbol
- headSym :: Symbol -> Char
- lengthSym :: Symbol -> Int
- nonSymbol :: Symbol
- vvCon :: Symbol
- tidySymbol :: Symbol -> Symbol
- anfPrefix :: Symbol
- tempPrefix :: Symbol
- vv :: Maybe Integer -> Symbol
- symChars :: HashSet Char
- dummySymbol :: Symbol
- intSymbol :: Show a => Symbol -> a -> Symbol
- tempSymbol :: Symbol -> Integer -> Symbol
- litSymbol :: Symbol -> Symbol
- renameSymbol :: Symbol -> Int -> Symbol
- kArgSymbol :: Symbol -> Symbol -> Symbol
- existSymbol :: Symbol -> Integer -> Symbol
- suffixSymbol :: Symbol -> Symbol -> Symbol
- unLitSymbol :: Symbol -> Maybe Symbol
- dummyName :: Symbol
- preludeName :: Symbol
- boolConName :: Symbol
- funConName :: Symbol
- listConName :: Symbol
- listLConName :: Symbol
- tupConName :: Symbol
- propConName :: Symbol
- hpropConName :: Symbol
- strConName :: Symbol
- nilName :: Symbol
- consName :: Symbol
- vvName :: Symbol
- size32Name :: Symbol
- size64Name :: Symbol
- bitVecName :: Symbol
- bvAndName :: Symbol
- bvOrName :: Symbol
- prims :: [Symbol]
- mulFuncName :: Symbol
- divFuncName :: Symbol
- setToIntName :: Symbol
- bitVecToIntName :: Symbol
- mapToIntName :: Symbol
- boolToIntName :: Symbol
- realToIntName :: Symbol
- setApplyName :: Int -> Symbol
- bitVecApplyName :: Int -> Symbol
- mapApplyName :: Int -> Symbol
- boolApplyName :: Int -> Symbol
- realApplyName :: Int -> Symbol
- intApplyName :: Int -> Symbol
Symbols
Invariant: a SafeText
is made up of:
- '0'..'9'
- ++ ['a'...'z'] ++ ['A'..'Z'] ++
$
If the original text has ANY other chars, it is represented as:
lq$i
where i is a unique integer (for each text)
Eq Symbol Source | |
Data Symbol Source | |
Ord Symbol Source | |
Show Symbol Source | |
IsString Symbol Source | |
Generic Symbol Source | |
Monoid BindEnv | |
Binary Symbol Source | |
Binary BindEnv | |
NFData Symbol Source | |
NFData BindEnv | |
Hashable Symbol Source | |
Interned Symbol Source | |
Uninternable Symbol Source | |
PPrint Symbol Source | |
Fixpoint Symbol Source | |
Fixpoint BindEnv Source | |
Symbolic Symbol Source | |
Predicate Symbol Source | |
Expression Symbol Source | The symbol may be an encoding of a SymConst. |
SymConsts BindEnv Source | |
Inputable Symbol Source | |
Eq (Description Symbol) Source | |
Hashable (Description Symbol) Source | |
type Rep Symbol Source | |
type Uninterned Symbol = Text Source | |
data Description Symbol = DT Text Source |
Values that can be viewed as Symbols
Symbolic String Source | |
Symbolic Text Source | |
Symbolic Symbol Source | |
Symbolic SymConst Source | String Constants ----------------------------------------- Replace all symbol-representations-of-string-literals with string-literal Used to transform parsed output from fixpoint back into fq. |
Symbolic a => Symbolic (Located a) Source |
type LocSymbol = Located Symbol Source
Located Symbols -----------------------------------------------------
Conversion to/from Text
symbolSafeText :: Symbol -> SafeText Source
symbolSafeString :: Symbol -> String Source
symbolText :: Symbol -> Text Source
Decoding Symbols -----------------------------------------------------
symbolString :: Symbol -> String Source
isPrefixOfSym :: Symbol -> Symbol -> Bool Source
isSuffixOfSym :: Symbol -> Symbol -> Bool Source
isNonSymbol :: Symbol -> Bool Source
isNontrivialVV :: Symbol -> Bool Source
Destructors
Transforms
tidySymbol :: Symbol -> Symbol Source
Widely used prefixes
Creating Symbols
tempSymbol :: Symbol -> Integer -> Symbol Source
Wrapping Symbols
renameSymbol :: Symbol -> Int -> Symbol Source
kArgSymbol :: Symbol -> Symbol -> Symbol Source
existSymbol :: Symbol -> Integer -> Symbol Source
suffixSymbol :: Symbol -> Symbol -> Symbol Source
Use this **EXCLUSIVELY** when you want to add stuff in front of a Symbol
Unwrapping Symbols
unLitSymbol :: Symbol -> Maybe Symbol Source
Hardwired global names
Casting function names
setApplyName :: Int -> Symbol Source
bitVecApplyName :: Int -> Symbol Source
mapApplyName :: Int -> Symbol Source
boolApplyName :: Int -> Symbol Source
realApplyName :: Int -> Symbol Source
intApplyName :: Int -> Symbol Source