Changeset 13927 for src/Pugs/AST.hs
- Timestamp:
- 10/05/06 14:31:33 (2 years ago)
- Files:
-
- 1 modified
-
src/Pugs/AST.hs (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/Pugs/AST.hs
r13923 r13927 263 263 264 264 newType :: String -> Exp 265 newType name = _Sym SGlobal ('&':'&':'*': name) $! Syn ":="266 [ _Var ('&':'*': name)265 newType name = _Sym SGlobal ('&':'&':'*':termName) $! Syn ":=" 266 [ _Var ('&':'*':termName) 267 267 , typeMacro name (Val . VType . mkType $ name) 268 268 ] 269 where 270 termName = "term:" ++ name 271 269 272 270 273 newMetaType :: String -> Exp 271 newMetaType name = _Sym SGlobal ('&':'&':'*': name) $! Syn ":="272 [ _Var ('&':'*': name)274 newMetaType name = _Sym SGlobal ('&':'&':'*':termName) $! Syn ":=" 275 [ _Var ('&':'*':termName) 273 276 , typeMacro name (_Var (':':'*':name)) 274 277 ] 278 where 279 termName = "term:" ++ name 275 280 276 281 typeMacro :: String -> Exp -> Exp 277 282 typeMacro name exp = Syn "sub" . (:[]) . Val . VCode $ MkCode 278 283 { isMulti = True 279 , subName = cast ( '&':name)284 , subName = cast ("&term:" ++ name) 280 285 , subEnv = Nothing 281 286 , subType = SubMacro … … 283 288 , subReturns = typ 284 289 , subLValue = False 285 , subParams = [ defaultHashParam{ paramName = cast "%?" }]290 , subParams = [ defaultArrayParam, defaultHashParam ] 286 291 , subBindings = [] 287 292 , subSlurpLimit = []
