Show
Ignore:
Timestamp:
03.07.2009 18:38:45 (5 months ago)
Author:
maeder
Message:

disallowed explicit pseudo type notation following := (assign)

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/HasCASL/ParseItem.hs

    r11328 r11877  
    127127      <|> typeItemList [p] Plain 
    128128 
    129 -- | several 'typeArg's 
    130 typeArgs :: AParser st ([TypeArg], [Token]) 
    131 typeArgs = do 
    132     l <- many1 typeArg 
    133     return (map fst l, concatMap snd l) 
    134  
    135 pseudoType :: AParser st TypeScheme 
    136 pseudoType = do 
    137     l <- asKey lamS 
    138     (ts, pps) <- typeArgs 
    139     d <- dotT 
    140     t <- pseudoType 
    141     let qs = toRange l pps d 
    142     case t of 
    143       TypeScheme ts1 gt ps -> 
    144           return $ TypeScheme (ts ++ ts1) gt $ appRange qs ps 
    145   <|> do 
    146     st <- parseType 
    147     return $ simpleTypeScheme st 
    148  
    149129pseudoTypeDef :: TypePattern -> Maybe Kind -> [Token] -> AParser st TypeItem 
    150130pseudoTypeDef t k l = do 
    151131    c <- asKey assignS 
    152     p <- pseudoType 
    153     return $ AliasType t k p $ catRange $ l ++ [c] 
     132    p <- parseType 
     133    return $ AliasType t k (simpleTypeScheme p) $ catRange $ l ++ [c] 
    154134 
    155135-- * parsing datatypes