Changeset 15393
- Timestamp:
- 03/01/07 14:48:55 (21 months ago)
- Files:
-
- 3 added
- 5 modified
-
Pugs.cabal.in (modified) (1 diff)
-
src/Pugs/AST/Internals.hs (modified) (2 diffs)
-
src/Pugs/Class.hs (modified) (2 diffs)
-
src/Pugs/Meta (added)
-
src/Pugs/Meta.hs (modified) (2 diffs)
-
src/Pugs/Meta/Class.hs (added)
-
src/Pugs/Meta/Str.hs (added)
-
src/Pugs/Val.hs (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
Pugs.cabal.in
r15376 r15393 12 12 author: Audrey Tang <autrijus@autrijus.org> 13 13 tested-with: GHC -any 14 exposed-modules: Pugs Pugs.AST Pugs.AST.Internals Pugs.AST.Internals.Instances Pugs.AST.Pad Pugs.AST.Pos Pugs.AST.Prag Pugs.AST.SIO Pugs.AST.Scope Pugs.AST.Utils Pugs.AST.Eval Pugs.Bind Pugs.Class.C3 Pugs.Class Pugs.CodeGen Pugs.CodeGen.JSON Pugs.CodeGen.PIL1 Pugs.CodeGen.PIR Pugs.CodeGen.PIR.Prelude Pugs.Prelude Pugs.CodeGen.Perl5 Pugs.CodeGen.YAML Pugs.Compat Pugs.Compile Pugs.Compile.Pugs Pugs.Config Pugs.Cont Pugs.DeepSeq Pugs.Embed Pugs.Embed.Haskell Pugs.Embed.Parrot Pugs.Embed.Perl5 Pugs.Embed.Pugs Pugs.Eval Pugs.Eval.Var Pugs.External Pugs.External.Haskell Pugs.Help Pugs.Internals Pugs.Internals.Cast Pugs.Internals.ID Pugs.Internals.String Pugs.Internals.Global Pugs.Internals.Monads Pugs.Junc Pugs.Lexer Pugs.M onads Pugs.PIL1 Pugs.PIL1.Instances Pugs.Parser Pugs.Parser.Charnames Pugs.Parser.Operator Pugs.Parser.Number Pugs.Parser.Program Pugs.Parser.Types Pugs.Parser.Unsafe Pugs.Parser.Export Pugs.Parser.Doc Pugs.Parser.Literal Pugs.Parser.Util Pugs.Pretty Pugs.Prim Pugs.Prim.Code Pugs.Prim.Eval Pugs.Prim.FileTest Pugs.Prim.Keyed Pugs.Prim.Lifts Pugs.Prim.List Pugs.Prim.Match Pugs.Prim.Numeric Pugs.Prim.Param Pugs.Prim.Yaml Pugs.Rule Pugs.Run Pugs.Run.Args Pugs.Run.Perl5 Pugs.Shell Pugs.Types Pugs.Version Emit.Common Emit.PIR Emit.PIR.Instances Pugs.Val Pugs.Val.Code Pugs.Val.Base Pugs.Exp MO.Util MO.Base MO.Compile MO.Run MO.Compile.Attribute MO.Compile.Role MO.Compile.Class14 exposed-modules: Pugs Pugs.AST Pugs.AST.Internals Pugs.AST.Internals.Instances Pugs.AST.Pad Pugs.AST.Pos Pugs.AST.Prag Pugs.AST.SIO Pugs.AST.Scope Pugs.AST.Utils Pugs.AST.Eval Pugs.Bind Pugs.Class.C3 Pugs.Class Pugs.CodeGen Pugs.CodeGen.JSON Pugs.CodeGen.PIL1 Pugs.CodeGen.PIR Pugs.CodeGen.PIR.Prelude Pugs.Prelude Pugs.CodeGen.Perl5 Pugs.CodeGen.YAML Pugs.Compat Pugs.Compile Pugs.Compile.Pugs Pugs.Config Pugs.Cont Pugs.DeepSeq Pugs.Embed Pugs.Embed.Haskell Pugs.Embed.Parrot Pugs.Embed.Perl5 Pugs.Embed.Pugs Pugs.Eval Pugs.Eval.Var Pugs.External Pugs.External.Haskell Pugs.Help Pugs.Internals Pugs.Internals.Cast Pugs.Internals.ID Pugs.Internals.String Pugs.Internals.Global Pugs.Internals.Monads Pugs.Junc Pugs.Lexer Pugs.Meta Pugs.Meta.Class Pugs.Meta.Str Pugs.Monads Pugs.PIL1 Pugs.PIL1.Instances Pugs.Parser Pugs.Parser.Charnames Pugs.Parser.Operator Pugs.Parser.Number Pugs.Parser.Program Pugs.Parser.Types Pugs.Parser.Unsafe Pugs.Parser.Export Pugs.Parser.Doc Pugs.Parser.Literal Pugs.Parser.Util Pugs.Pretty Pugs.Prim Pugs.Prim.Code Pugs.Prim.Eval Pugs.Prim.FileTest Pugs.Prim.Keyed Pugs.Prim.Lifts Pugs.Prim.List Pugs.Prim.Match Pugs.Prim.Numeric Pugs.Prim.Param Pugs.Prim.Yaml Pugs.Rule Pugs.Run Pugs.Run.Args Pugs.Run.Perl5 Pugs.Shell Pugs.Types Pugs.Version Emit.Common Emit.PIR Emit.PIR.Instances Pugs.Val Pugs.Val.Code Pugs.Val.Base Pugs.Exp MO.Util MO.Base MO.Compile MO.Run MO.Compile.Attribute MO.Compile.Role MO.Compile.Class 15 15 buildable: True 16 16 c-sources: src/pcre/pcre.c __PERL5_C__ -
src/Pugs/AST/Internals.hs
r15374 r15393 101 101 import Pugs.AST.SIO 102 102 import Pugs.Embed.Perl5 103 import Pugs.Meta () 103 104 import qualified Pugs.Val as Val 104 105 import qualified Data.ByteString.Char8 as Str … … 248 249 249 250 toVV' :: Val -> Eval Val 250 toVV' VUndef = return $ VV $ Val.val $ () 251 toVV' (VBool v)= return $ VV $ Val.val $ ((cast v) :: Val.PureBit) 252 toVV' (VInt v) = return $ VV $ Val.val $ ((cast v) :: Val.PureInt) 253 toVV' (VNum v) = return $ VV $ Val.val $ ((cast v) :: Val.PureNum) 254 toVV' (VRat v) = return $ VV $ Val.val $ ((cast v) :: Val.PureNum) 255 toVV' (VStr v) = return $ VV $ Val.val $ ((cast v) :: Val.PureStr) 256 toVV' x = error $ "don't know how to toVV': " ++ show x 257 251 toVV' VUndef = return . VV . Val.val $ () 252 toVV' (VBool v) = return . VV . Val.val $ ((cast v) :: Val.PureBit) 253 toVV' (VInt v) = return . VV . Val.val $ ((cast v) :: Val.PureInt) 254 toVV' (VNum v) = return . VV . Val.val $ ((cast v) :: Val.PureNum) 255 toVV' (VRat v) = return . VV . Val.val $ ((cast v) :: Val.PureNum) 256 toVV' (VStr v) = return . VV . Val.val $ ((cast v) :: Val.PureStr) 257 toVV' x = fail $ "don't know how to toVV': " ++ show x 258 258 259 259 getArrayIndex :: Int -> Maybe (IVar VScalar) -> Eval IArray -> Maybe (Eval b) -> Eval (IVar VScalar) -
src/Pugs/Class.hs
r15384 r15393 14 14 module Pugs.Class 15 15 ( module Pugs.Class 16 , module Pugs.AST.Eval 16 17 , module MO.Run 17 18 , module MO.Compile … … 88 89 (./) :: (Typeable1 m, Monad m) => Invocant m -> ID -> m (Invocant m) 89 90 inv ./ meth = ivDispatch inv $ MkMethodInvocation meth (mkArgs []) 91 92 type PureClass = MI Eval 93 94 instance Boxable Eval PureClass where 95 classOf _ = _PureClass 96 97 _PureClass :: PureClass 98 _PureClass = mkBoxClass "Class" 99 [ "HOW" ... (const _PureClass :: PureClass -> PureClass) 100 ] 101 -
src/Pugs/Meta.hs
r15391 r15393 2 2 3 3 {-| 4 Perl 6 Meta classes.4 Perl 6 Meta-object definitions. 5 5 6 6 > And though I oft have passed them by, … … 10 10 -} 11 11 12 module Pugs.Meta 13 ( module Pugs.Meta.Str 14 , module Pugs.Meta.Class 15 ) where 16 17 import Pugs.Meta.Str 18 import Pugs.Meta.Class 19 -
src/Pugs/Val.hs
r15382 r15393 14 14 ) where 15 15 import Pugs.Class 16 import Pugs.AST.Eval17 16 import Pugs.Val.Code 18 17 import Pugs.Internals 19 18 import Text.PrettyPrint 20 import qualified Data.ByteString.Char8 as Str21 19 22 20 type Val = Invocant Eval … … 106 104 instance Boxable Eval PureBit 107 105 instance Boxable Eval ValCapt 108 109 type PureClass = MI Eval110 instance Boxable Eval PureClass where111 classOf _ = _PureClass112 113 _PureClass :: PureClass114 _PureClass = mkBoxClass "Class"115 [ "HOW" ... (const _PureClass :: PureClass -> PureClass)116 ]117 118 instance Boxable Eval PureStr where119 classOf _ = _StrClass120 121 _StrClass :: PureClass122 _StrClass = mkBoxClass "Str"123 [ "reverse" ... (MkStr . Str.reverse . unStr)124 , "HOW" ... (const _StrClass)125 ]126 106 127 107 {-
