示例#1
0
        public Void visitAssignExpr(Expr.Assign expr)
        {
            Resolve(expr.value);
            ResolveLocal(expr, expr.name);

            return(null);
        }
示例#2
0
        public object visitAssignExpr(Expr.Assign expr)
        {
            object value = Evaluate(expr.value);

            int distance = -1;

            if (locals.ContainsKey(expr))
            {
                distance = locals[expr];
            }
            if (distance != -1)
            {
                environment.AssignAt(distance, expr.name, value);
            }
            else
            {
                environment.Assign(expr.name, value);
            }

            environment.Assign(expr.name, value);
            return(value);
        }