Changeset 16333
- Timestamp:
- 05/17/07 23:13:29 (18 months ago)
- Location:
- src/Pugs
- Files:
-
- 4 modified
-
AST/Internals.hs (modified) (3 diffs)
-
AST/Internals/Instances.hs (modified) (2 diffs)
-
AST/Pad.hs (modified) (1 diff)
-
Parser.hs (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
src/Pugs/AST/Internals.hs
r16331 r16333 17 17 SlurpLimit, -- VInt, Exp 18 18 19 emptyPad, 20 19 21 VRef(..), -- uses IVar 20 22 VOpaque(..), -- uses Value … … 1042 1044 , subBody :: !Exp -- ^ Body of the closure 1043 1045 , subCont :: !(Maybe (TVar VThunk)) -- ^ Coroutine re-entry point 1046 , subStarted :: !(Maybe (TVar Bool)) -- ^ Whether START was run 1044 1047 , subTraitBlocks :: !TraitBlocks 1045 1048 } … … 1411 1414 newtype Pad = MkPad { padEntries :: Map Var PadEntry } 1412 1415 deriving (Eq, Ord, Typeable) 1416 1417 {-| 1418 An empty Pad with no symbols. 1419 -} 1420 1421 emptyPad :: Pad 1422 emptyPad = MkPad Map.empty 1413 1423 1414 1424 newtype EntryFlags = MkEntryFlags { ef_isContext :: Bool } -
src/Pugs/AST/Internals/Instances.hs
r16331 r16333 513 513 fromYAML MkNode{n_tag=Just t, n_elem=e} | 't':'a':'g':':':'h':'s':':':tag <- unpackBuf t = case tag of 514 514 "MkCode" -> do 515 let liftM1 3 f m1 m2 m3 m4 m5 m6 m7 m8 m9 m10 m11 m12 m13= do516 {x1 <- m1; x2 <- m2; x3 <- m3; x4 <- m4; x5 <- m5; x6 <- m6; x7 <- m7; x8 <- m8; x9 <- m9; x10 <- m10; x11 <- m11; x12 <- m12; x13 <- m13; return (f x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13)}517 let ESeq [aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am ] = e518 liftM1 3 MkCode (fromYAML aa) (fromYAML ab) (fromYAML ac) (fromYAML ad) (fromYAML ae) (fromYAML af) (fromYAML ag) (fromYAML ah) (fromYAML ai) (fromYAML aj) (fromYAML ak) (fromYAML al) (fromYAML am)515 let liftM16 f m1 m2 m3 m4 m5 m6 m7 m8 m9 m10 m11 m12 m13 m14 m15 m16 = do 516 {x1 <- m1; x2 <- m2; x3 <- m3; x4 <- m4; x5 <- m5; x6 <- m6; x7 <- m7; x8 <- m8; x9 <- m9; x10 <- m10; x11 <- m11; x12 <- m12; x13 <- m13; x14 <- m14; x15 <- m15; x16 <- m16; return (f x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16)} 517 let ESeq [aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap] = e 518 liftM16 MkCode (fromYAML aa) (fromYAML ab) (fromYAML ac) (fromYAML ad) (fromYAML ae) (fromYAML af) (fromYAML ag) (fromYAML ah) (fromYAML ai) (fromYAML aj) (fromYAML ak) (fromYAML al) (fromYAML am) (fromYAML an) (fromYAML ao) (fromYAML ap) 519 519 _ -> fail $ "unhandled tag: " ++ show t ++ ", expecting " ++ show ["MkCode"] ++ " in node " ++ show e 520 520 fromYAML _ = fail "no tag found" 521 asYAML (MkCode aa ab ac ad ae af ag ah ai aj ak al am ) =521 asYAML (MkCode aa ab ac ad ae af ag ah ai aj ak al am an ao ap) = 522 522 asYAMLseq "MkCode" 523 523 [asYAML aa, asYAML ab, asYAML ac, asYAML ad, asYAML ae, asYAML af, 524 524 asYAML ag, asYAML ah, asYAML ai, asYAML aj, asYAML ak, asYAML al, 525 asYAML am ]525 asYAML am, asYAML an, asYAML ao, asYAML ap] 526 526 527 527 instance YAML TraitBlocks where … … 609 609 asYAML (NonTerm aa) = asYAMLseq "NonTerm" [asYAML aa] 610 610 611 instance YAML LexPads where 612 fromYAML MkNode{n_tag=Just t, n_elem=e} | 't':'a':'g':':':'h':'s':':':tag <- unpackBuf t = case tag of 613 "PRuntime" -> do 614 let ESeq [aa] = e 615 liftM PRuntime (fromYAML aa) 616 "PCompiling" -> do 617 let ESeq [aa] = e 618 liftM PCompiling (fromYAML aa) 619 _ -> fail $ "unhandled tag: " ++ show t ++ ", expecting " ++ show ["PRuntime","PCompiling"] ++ " in node " ++ show e 620 fromYAML _ = fail "no tag found" 621 asYAML (PRuntime aa) = asYAMLseq "PRuntime" [asYAML aa] 622 asYAML (PCompiling aa) = asYAMLseq "PCompiling" [asYAML aa] 623 611 624 instance YAML InitDat where 612 625 fromYAML MkNode{n_tag=Just t, n_elem=e} | 't':'a':'g':':':'h':'s':':':tag <- unpackBuf t = case tag of -
src/Pugs/AST/Pad.hs
r16329 r16333 10 10 import qualified Data.Map as Map 11 11 import qualified Data.Set as Set 12 13 instance Monoid Pad where 14 mempty = emptyPad 15 mappend = unionPads 16 mconcat = MkPad . Map.unionsWith mergePadEntry . map padEntries 12 17 13 18 {-| -
src/Pugs/Parser.hs
r16331 r16333 1273 1273 , subBody = fun 1274 1274 , subCont = Nothing 1275 , subTraitBlocks= bi_traits block emptyTraitBlocks 1275 1276 } 1276 1277 return (Syn "sub" [Val $ VCode sub])
