Ejemplo n.º 1
0
 public ResVarSpec(
     IResVarDecl decl,
     IResTypeExp type)
 {
     _decl = decl;
     _type = type;
 }
Ejemplo n.º 2
0
Archivo: ResEnv.cs Proyecto: kzyg/spark
 public ResPipelineScope(
     IResContainerRef pipeline,
     IResVarDecl thisParameter)
 {
     _pipeline      = pipeline;
     _thisParameter = thisParameter;
 }
Ejemplo n.º 3
0
 public ResVarRef(
     SourceRange range,
     IResVarDecl varDecl,
     IResTypeExp type)
     : base(range, type)
 {
     _varDecl = varDecl;
 }
Ejemplo n.º 4
0
 public ResVarRef(
     SourceRange range,
     IResVarDecl varDecl,
     IResTypeExp type)
     : base(range, type)
 {
     _varDecl = varDecl;
 }
Ejemplo n.º 5
0
 public ResForExp(
     SourceRange range,
     IResVarDecl var,
     IResExp sequence,
     IResExp body)
     : base(range, new ResVoidType())
 {
     _var      = var;
     _sequence = sequence;
     _body     = body;
 }
Ejemplo n.º 6
0
 public ResLetExp(
     SourceRange range,
     IResVarDecl var,
     IResExp value,
     IResExp body)
     : base(range, body.Type)
 {
     _var   = var;
     _value = value;
     _body  = body;
 }
Ejemplo n.º 7
0
        public MidVal Lookup(SourceRange range, IResVarDecl key)
        {
            Func <SourceRange, MidVal> generator;

            if (_values.TryGetValue(key, out generator))
            {
                return(generator(range));
            }

            if (_parent != null)
            {
                return(_parent.Lookup(range, key));
            }

            throw new KeyNotFoundException();
        }
Ejemplo n.º 8
0
        public IResExp Lookup(IResVarDecl var, SourceRange range)
        {
            var subst = this;

            while (subst != null)
            {
                Func <SourceRange, Substitution, IResExp> gen;
                if (subst._vars.TryGetValue(var, out gen))
                {
                    return(gen(range, this));
                }

                subst = subst._base;
            }

            return(new ResVarRef(range, var, var.Type.Substitute(this)));
        }
Ejemplo n.º 9
0
 public void Insert(IResVarDecl key, Func <SourceRange, IResExp> gen)
 {
     _vars[key] = (r, subst) => gen(r);
 }
Ejemplo n.º 10
0
 public ResVarRef(
     SourceRange range,
     IResVarDecl varDecl)
     : this(range, varDecl, varDecl.Type)
 {
 }
Ejemplo n.º 11
0
 public ResVarSpec(
     IResVarDecl decl,
     IResMemberTerm memberTerm)
     : this(decl, decl.Type.Substitute(memberTerm.Subst))
 {
 }
Ejemplo n.º 12
0
 public ResVarSpec(
     IResVarDecl decl,
     IResMemberTerm memberTerm)
     : this(decl, decl.Type.Substitute(memberTerm.Subst))
 {
 }
Ejemplo n.º 13
0
 public ResVarSpec(
     IResVarDecl decl,
     IResTypeExp type )
 {
     _decl = decl;
     _type = type;
 }
Ejemplo n.º 14
0
 public ResVarRef(
     SourceRange range,
     IResVarDecl varDecl)
     : this(range, varDecl, varDecl.Type)
 {
 }
Ejemplo n.º 15
0
 public void Insert(IResVarDecl key, IResVarDecl value)
 {
     _vars[key] = (r, subst) => new ResVarRef(r, value, value.Type.Substitute(subst));
 }
Ejemplo n.º 16
0
 public static bool IsImplicit(
     this IResVarDecl decl)
 {
     return(decl.Flags.HasFlag(ResVarFlags.Implicit));
 }
Ejemplo n.º 17
0
 public void Insert(IResVarDecl key, Func <SourceRange, MidVal> value)
 {
     _values[key] = value;
 }