Show
Ignore:
Timestamp:
01/16/06 18:57:28 (3 years ago)
Author:
audreyt
Message:

* Support for $+var as shorthand for $CALLER::var.
* CALLER now only sees lexical variables in the outer dynamic

scope declared with the "env" scope specifier.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • src/Pugs/AST/Internals.hs

    r8701 r8705  
    11001100    , envLValue  :: !Bool                -- ^ Are we in an LValue context? 
    11011101    , envLexical :: !Pad                 -- ^ Lexical pad for variable lookup 
     1102    , envImplicit:: !(Map Var ())        -- ^ Set of implicit variables 
    11021103    , envGlobal  :: !(TVar Pad)          -- ^ Global pad for variable lookup 
    11031104    , envPackage :: !String              -- ^ Current package 
    11041105    , envClasses :: !ClassTree           -- ^ Current class tree 
    11051106    , envEval    :: !(Exp -> Eval Val)   -- ^ Active evaluator 
    1106     , envCaller  :: !(Maybe Env)         -- ^ Caller's env 
     1107    , envCaller  :: !(Maybe Env)         -- ^ Caller's "env" pad 
    11071108    , envOuter   :: !(Maybe Env)         -- ^ Outer block's env 
    11081109    , envBody    :: !Exp                 -- ^ Current AST expression 
     
    18431844instance YAML Scope where 
    18441845    asYAML (SState) = asYAMLcls "SState" 
     1846    asYAML (SLet) = asYAMLcls "SLet" 
     1847    asYAML (STemp) = asYAMLcls "STemp" 
     1848    asYAML (SEnv) = asYAMLcls "SEnv" 
    18451849    asYAML (SMy) = asYAMLcls "SMy" 
    18461850    asYAML (SOur) = asYAMLcls "SOur" 
    1847     asYAML (SLet) = asYAMLcls "SLet" 
    1848     asYAML (STemp) = asYAMLcls "STemp" 
    18491851    asYAML (SGlobal) = asYAMLcls "SGlobal" 
    18501852 
    18511853instance JSON Scope where 
    18521854    showJSON (SState) = showJSScalar "SState" 
     1855    showJSON (SLet) = showJSScalar "SLet" 
     1856    showJSON (STemp) = showJSScalar "STemp" 
     1857    showJSON (SEnv) = showJSScalar "SEnv" 
    18531858    showJSON (SMy) = showJSScalar "SMy" 
    18541859    showJSON (SOur) = showJSScalar "SOur" 
    1855     showJSON (SLet) = showJSScalar "SLet" 
    1856     showJSON (STemp) = showJSScalar "STemp" 
    18571860    showJSON (SGlobal) = showJSScalar "SGlobal" 
    18581861 
    18591862instance Perl5 Scope where 
    18601863    showPerl5 (SState) = showP5Class "SState" 
     1864    showPerl5 (SLet) = showP5Class "SLet" 
     1865    showPerl5 (STemp) = showP5Class "STemp" 
     1866    showPerl5 (SEnv) = showP5Class "SEnv" 
    18611867    showPerl5 (SMy) = showP5Class "SMy" 
    18621868    showPerl5 (SOur) = showP5Class "SOur" 
    1863     showPerl5 (SLet) = showP5Class "SLet" 
    1864     showPerl5 (STemp) = showP5Class "STemp" 
    18651869    showPerl5 (SGlobal) = showP5Class "SGlobal" 
    18661870 
     
    20572061 
    20582062instance YAML Env where 
    2059     asYAML (MkEnv aa ab ac ad ae af ag ah ai aj ak al am an ao) = 
     2063    asYAML (MkEnv aa ab ac ad ae af ag ah ai aj ak al am an ao ap) = 
    20602064           asYAMLmap "MkEnv" 
    20612065           [("envContext", asYAML aa) , ("envLValue", asYAML ab) , 
    2062             ("envLexical", asYAML ac) , ("envGlobal", asYAML ad) , 
    2063             ("envPackage", asYAML ae) , ("envClasses", asYAML af) , 
    2064             ("envEval", asYAML ag) , ("envCaller", asYAML ah) , 
    2065             ("envOuter", asYAML ai) , ("envBody", asYAML aj) , 
    2066             ("envDepth", asYAML ak) , ("envDebug", asYAML al) , 
    2067             ("envPos", asYAML am) , ("envPragmas", asYAML an) , 
    2068             ("envInitDat", asYAML ao)] 
     2066            ("envLexical", asYAML ac) , ("envImplicit", asYAML ad) , 
     2067            ("envGlobal", asYAML ae) , ("envPackage", asYAML af) , 
     2068            ("envClasses", asYAML ag) , ("envEval", asYAML ah) , 
     2069            ("envCaller", asYAML ai) , ("envOuter", asYAML aj) , 
     2070            ("envBody", asYAML ak) , ("envDepth", asYAML al) , 
     2071            ("envDebug", asYAML am) , ("envPos", asYAML an) , 
     2072            ("envPragmas", asYAML ao) , ("envInitDat", asYAML ap)] 
    20692073 
    20702074instance YAML InitDat where