コード例 #1
0
        public object visitAssignExpr(Expr.Assign expr)
        {
            Object value = evaluate(expr.value);

            environment.Assign(expr.name, value);
            return(value);
        }
コード例 #2
0
        internal void Assign(Token name, Object value)
        {
            if (Values.ContainsKey(name.Lexeme))
            {
                Values[name.Lexeme] = value;
                return;
            }

            if (enclosing != null)
            {
                enclosing.Assign(name, value);
                return;
            }

            throw new RuntimeError(name, "Undefined variable '" + name.Lexeme + "'");
        }