コード例 #1
0
ファイル: Interpreter.cs プロジェクト: harryr0se/Lox
        public object visitAssignExpr(Expr.Assign expr)
        {
            object value = evaluate(expr.value);

            environment.assign(expr.name, value);
            return(value);
        }
コード例 #2
0
        public object Visit(Expr.Assign _assign)
        {
            Resolve(_assign.value);
            ResolveLocal(_assign, _assign.name);

            return(null);
        }
コード例 #3
0
        object Expr.IVisitor <object> .Visit(Expr.Assign _assign)
        {
            object value = Evaluate(_assign.value);

            if (_locals.TryGetValue(_assign, out int distance))
            {
                _environment.AssignAt(distance, _assign.name, value);
            }
            else
            {
                Globals.Assign(_assign.name, value);
            }

            return(value);
        }
コード例 #4
0
ファイル: Interpreter.cs プロジェクト: davidelettieri/Lox
        public object VisitAssignExpr(Expr.Assign expr)
        {
            var value = Evaluate(expr.Value);

            if (_locals.TryGetValue(expr, out var distance))
            {
                _environment.AssignAt(distance, expr.Name, value);
            }
            else
            {
                Globals.Assign(expr.Name, value);
            }

            return(value);
        }
コード例 #5
0
        public object VisitAssignExpr(Expr.Assign expr)
        {
            object value = Evaluate(expr.value);

            if (locals.TryGetValue(expr, out int distance))
            {
                environment.AssignAt(distance, expr.name, value);
            }
            else
            {
                environment.Assign(expr.name, value);
            }

            return(value);
        }
コード例 #6
0
 string Expr.IVisitor <string> .Visit(Expr.Assign _assign)
 {
     throw new NotImplementedException();
 }
コード例 #7
0
ファイル: AstPrinter.cs プロジェクト: harryr0se/Lox
 public string visitAssignExpr(Expr.Assign expr)
 {
     return($"Assign {expr.name.lexeme}");
 }
コード例 #8
0
 public object VisitAssignExpr(Expr.Assign expr)
 {
     Resolve(expr.value);
     ResolveLocal(expr, expr.name);
     return(null);
 }
コード例 #9
0
ファイル: Resolver.cs プロジェクト: davidelettieri/Lox
 public Void VisitAssignExpr(Expr.Assign expr)
 {
     Resolve(expr.Value);
     ResolveLocal(expr, expr.Name);
     return(null);
 }
コード例 #10
0
 public string VisitAssignExpr(Expr.Assign expr)
 {
     return($"({expr.name} <- {expr.value.Accept(this)})");
 }