public object VisitGetExpr(Expr.Get expr) { switch (Evaluate(expr.obj)) { case LoxInstance instance: return(instance.Get(expr.name)); default: throw new RuntimeError(expr.name, "Only instances have properties"); } }
private Expr Call() { Expr expr = Primary(); while (true) { if (Match(TokenType.LEFT_PAREN)) { expr = FinishCall(expr); } else if (Match(TokenType.DOT)) { Token name = Consume(TokenType.IDENTIFIER, "Expect property name after '.'"); expr = new Expr.Get(expr, name); } else { break; } } return(expr); }
public string VisitGetExpr(Expr.Get expr) { return("Printing get expression not implemeneted"); }
public MyVoid VisitGetExpr(Expr.Get expr) { resolve(expr.obj); return(null); }