|
|
|
Description |
Internal state of the compiler.
Used from the renaming pass until code generation.
Needs IdSupply.
|
|
Synopsis |
|
data IntState = IntState Id (Id, PackedString) (Map Id Info) [String] Flags | | dummyIntState :: IntState | | getModuleId :: IntState -> String | | getInfo :: Id -> a -> IntState -> (Info, IntState) | | getIntState :: a -> IntState -> (IntState, IntState) | | addDefaultMethod :: a -> (Id, Id) -> IntState -> IntState | | defaultMethodsIS :: IntState -> Id -> [Id] | | getUnique :: a -> IntState -> (Id, IntState) | | addInstMethod :: TokenId -> TokenId -> TokenId -> NewType -> Id -> a -> IntState -> (Id, IntState) | | updInstMethodNT :: TokenId -> TokenId -> Id -> NewType -> Id -> a -> IntState -> IntState | | addInstance :: Id -> Id -> PackedString -> [Id] -> [(Id, Id)] -> a -> IntState -> IntState | | addNewLetBound :: Id -> TokenId -> a -> IntState -> IntState | | updVarNT :: Pos -> Id -> NewType -> Reduce IntState IntState | | updVarArity :: Pos -> Id -> Int -> Reduce IntState IntState | | addIS :: Id -> Info -> IntState -> IntState | | lookupIS :: IntState -> Id -> Maybe Info | | updateIS :: IntState -> Id -> (Info -> Info) -> IntState | | uniqueIS :: IntState -> (Id, IntState) | | uniqueISs :: IntState -> [a] -> ([(a, Id)], IntState) | | strIS :: IntState -> Id -> String | | tidIS :: IntState -> Id -> TokenId | | getErrors :: IntState -> (IntState, [String]) | | getErrorsIS :: IntState -> Either [String] IntState | | addError :: IntState -> [Char] -> IntState | | getSymbolTable :: IntState -> Map Id Info | | mrpsIS :: IntState -> PackedString | | miIS :: IntState -> Id | | getFlags :: IntState -> Flags | | getIndDataIS :: IntState -> Info -> Id | | globalIS :: IntState -> Id -> Bool | | arityIS :: IntState -> Id -> Int | | checkNT :: Pos -> (Id -> String) -> NewType -> Maybe String | | module Info |
|
|
Documentation |
|
data IntState |
Shouldn't this be a record? [SamB]
| Constructors | | Instances | |
|
|
dummyIntState :: IntState |
|
getModuleId :: IntState -> String |
|
getInfo :: Id -> a -> IntState -> (Info, IntState) |
|
getIntState :: a -> IntState -> (IntState, IntState) |
|
addDefaultMethod :: a -> (Id, Id) -> IntState -> IntState |
|
defaultMethodsIS :: IntState -> Id -> [Id] |
Return all the default methods of an id, including super class methods
|
|
getUnique :: a -> IntState -> (Id, IntState) |
Do we really need both getUnique and uniqueIS? I vote for taking out uniqueIS. [SamB]
|
|
addInstMethod :: TokenId -> TokenId -> TokenId -> NewType -> Id -> a -> IntState -> (Id, IntState) |
|
updInstMethodNT :: TokenId -> TokenId -> Id -> NewType -> Id -> a -> IntState -> IntState |
|
addInstance :: Id -> Id -> PackedString -> [Id] -> [(Id, Id)] -> a -> IntState -> IntState |
|
addNewLetBound :: Id -> TokenId -> a -> IntState -> IntState |
|
updVarNT :: Pos -> Id -> NewType -> Reduce IntState IntState |
Adds type of variable to symbol table of internal state.
Assumes that variable is already in symbol table.
Adds error message, if there exists already a type for the variable
in the symbol table or type is badly formed (duplicate predicates in context).
|
|
updVarArity :: Pos -> Id -> Int -> Reduce IntState IntState |
Adds arity of variable to symbol table of internal state
(any old arity is overwritten).
Assumes that variable is already in symbol table.
|
|
addIS :: Id -> Info -> IntState -> IntState |
Add new info for identifier to the symbol table
|
|
lookupIS :: IntState -> Id -> Maybe Info |
Lookup identifier in symbol table
|
|
updateIS :: IntState -> Id -> (Info -> Info) -> IntState |
Update info for identifier in symbol table
|
|
uniqueIS :: IntState -> (Id, IntState) |
Obtain a new unique and hence also a new internal state
|
|
uniqueISs :: IntState -> [a] -> ([(a, Id)], IntState) |
Associate new uniques with given list of entities; hence also new internal
state
|
|
strIS :: IntState -> Id -> String |
Give printable string for identifier
|
|
tidIS :: IntState -> Id -> TokenId |
Give token of identifier
|
|
getErrors :: IntState -> (IntState, [String]) |
|
getErrorsIS :: IntState -> Either [String] IntState |
|
addError :: IntState -> [Char] -> IntState |
|
getSymbolTable :: IntState -> Map Id Info |
|
mrpsIS :: IntState -> PackedString |
|
miIS :: IntState -> Id |
|
getFlags :: IntState -> Flags |
|
getIndDataIS :: IntState -> Info -> Id |
|
globalIS :: IntState -> Id -> Bool |
|
arityIS :: IntState -> Id -> Int |
|
checkNT :: Pos -> (Id -> String) -> NewType -> Maybe String |
Tests if context of type has duplicate predicates.
Second argument converts class identifier to string.
*** This module not a good place for this function.
|
|
module Info |
|
Produced by Haddock version 0.8 |