hets -- a heterogenous Specification (CASL) tool setContentsIndex
Common.Earley
Portability portable
Stability experimental
Maintainer hets@tzi.de
Contents
special tokens for special ids
resolution chart
Description
generic mixfix analysis
Synopsis
varTok :: Token
exprTok :: Token
typeTok :: Token
applId :: Id
parenId :: Id
typeId :: Id
exprId :: Id
varId :: Id
tupleId :: Id
unitId :: Id
unknownId :: Id
isUnknownId :: Id -> Bool
unToken :: Id -> Token
type Knowns = Set String
mkId :: [Token] -> Id
protect :: Id -> Id
listRules :: b -> GlobalAnnos -> [(Id, b, [Token])]
mixRule :: b -> Id -> (Id, b, [Token])
getTokenPlaceList :: Id -> [Token]
endPlace :: Id -> Bool
begPlace :: Id -> Bool
data Chart a b
mixDiags :: [Diagnosis] -> Chart a b -> Chart a b
type ToExpr a b = Id -> b -> [a] -> [Pos] -> a
initChart :: [(Id, b, [Token])] -> Knowns -> Chart a b
nextChart :: (a -> a -> a) -> (b -> b -> Maybe Bool) -> ToExpr a b -> GlobalAnnos -> Chart a b -> (a, Token) -> Chart a b
getResolved :: PosItem a => (a -> ShowS) -> Pos -> ToExpr a b -> Chart a b -> Result a
special tokens for special ids
varTok :: Token
token for a fixed (or recursively resolved) argument expression
exprTok :: Token
token for a fixed (or recursively resolved) operator expression
typeTok :: Token
token for type annotations
applId :: Id
the invisible application rule with two places
parenId :: Id
parenthesis around one place
typeId :: Id
see typeTok
exprId :: Id
see exprTok
varId :: Id
see varTok
tupleId :: Id
id for tuples with at least two arguments
unitId :: Id
id for the emtpy tuple
unknownId :: Id
see unknownTok
isUnknownId :: Id -> Bool
test if an unknownId was matched
unToken :: Id -> Token
get unknown token from an unknownId
type Knowns = Set String
a set of strings that do not match a unknownTok
mkId :: [Token] -> Id
construct an Id from a token list
protect :: Id -> Id
interpret placeholders as literal places
listRules :: b -> GlobalAnnos -> [(Id, b, [Token])]
construct the list rules
mixRule :: b -> Id -> (Id, b, [Token])
construct a rule for a mixfix
getTokenPlaceList :: Id -> [Token]
extract tokens with the non-terminal for places
endPlace :: Id -> Bool
Id ends with a place
begPlace :: Id -> Bool
Id starts with a place
resolution chart
data Chart a b
the whole state for mixfix resolution
Instances
??? a b => Show (Chart a b)
mixDiags :: [Diagnosis] -> Chart a b -> Chart a b
add intermediate diagnostic messages
type ToExpr a b = Id -> b -> [a] -> [Pos] -> a
shortcut for a function that constructs an expression
initChart :: [(Id, b, [Token])] -> Knowns -> Chart a b
create the initial chart
nextChart :: (a -> a -> a) -> (b -> b -> Maybe Bool) -> ToExpr a b -> GlobalAnnos -> Chart a b -> (a, Token) -> Chart a b
make one scan, complete, and predict step. The first function adds a type to the result. The second function filters based on argument and operator info. If filtering yields Nothing further filtering by precedence is applied.
getResolved :: PosItem a => (a -> ShowS) -> Pos -> ToExpr a b -> Chart a b -> Result a
extract resolved result
Produced by Haddock version 0.6