コード例 #1
0
        public object visitAssignExpr(Expr.AssignExpr assignExpr)
        {
            object value = evaluate(assignExpr.value);

            if (locals.TryGetValue(assignExpr, out int distance))
            {
                environment.assignAt(distance, assignExpr.name, value);
            }
            else
            {
                globals.assign(assignExpr.name, value);
            }
            return(value);
        }
コード例 #2
0
 public object visitAssignExpr(Expr.AssignExpr assignExpr)
 {
     resolve(assignExpr.value);
     resolveLocal(assignExpr, assignExpr.name);
     return(null);
 }
コード例 #3
0
ファイル: AstPrinter.cs プロジェクト: mhorskaya/cslox
 public string VisitAssignExpr(Expr.AssignExpr expr)
 {
     return(Parenthesize2("=", expr.Name.Lexeme, expr.Value));
 }
コード例 #4
0
ファイル: AstPrinter.cs プロジェクト: NoahBPeterson/csLox
 public string visitAssignExpr(Expr.AssignExpr assignExpr)
 {
     return(parenthesize("= " + assignExpr.name.lexeme, new Expr[] { assignExpr.value }));
 }
コード例 #5
0
ファイル: Resolver.cs プロジェクト: mhorskaya/cslox
 public object VisitAssignExpr(Expr.AssignExpr expr)
 {
     Resolve(expr.Value);
     ResolveLocal(expr, expr.Name);
     return(null);
 }