Show
Ignore:
Timestamp:
08/16/06 19:28:24 (2 years ago)
Author:
audreyt
Message:

* Glorious refactoring of the Var type.

Previously, Var is type synonym to String, and all package

lookups, OUTER
handling, sigil and twigil parsing etc were done in an extremely adhoc way with String operations.

Now we split Var into several parts.
Take "&Moose::Elk::infix:<antler>" as an example:

v_sigil
VarSigil? -- SScalar
v_twigil
VarTwigil? -- TNone
v_package
Pkg -- ["Moose", "Elk"]
v_categ
VarCateg? -- C_infix
v_name
ID -- "antler"

The names are stored as interned ByteStrings? for fast comparison.

All involved types are changed from String to new types as well,

such as (envPackage
Pkg).
Files:
1 modified

Legend:

Unmodified
Added
Removed
  • src/Pugs/Prim/Yaml.hs

    r12204 r12317  
    1111import qualified Data.Map as Map 
    1212import qualified Data.IntSet as IntSet 
    13 import qualified Data.IntMap as IntMap 
    1413import qualified Data.ByteString as Str 
    1514import DrIFT.YAML 
    1615 
    1716import qualified Judy.CollectionsM as C 
    18 import qualified Judy.Hash         as H 
    1917 
    2018evalYaml :: Val -> Eval Val