Esempio n. 1
0
        private object EvaluateSetExpression(SetExpression expr)
        {
            var obj = Evaluate(expr.Object);

            var instance = obj as LoxInstance;

            if (instance == null)
            {
                throw new RuntimeError(expr.Name, "Only instances have fields");
            }

            var value = Evaluate(expr.Value);

            instance.Set(expr.Name, value);
            return(value);
        }
Esempio n. 2
0
 private void ResolveSetExpression(SetExpression expr)
 {
     Resolve(expr.Value);
     Resolve(expr.Object);
 }