コード例 #1
0
ファイル: Resolver.cs プロジェクト: mhorskaya/cslox
        public object VisitSuperExpr(Expr.SuperExpr expr)
        {
            if (_currentClass == ClassType.NONE)
            {
                Lox.Error(expr.Keyword, "Cannot use 'super' outside of a class.");
            }
            else if (_currentClass != ClassType.SUBCLASS)
            {
                Lox.Error(expr.Keyword, "Cannot use 'super' in a class with no superclass.");
            }

            ResolveLocal(expr, expr.Keyword);
            return(null);
        }
コード例 #2
0
ファイル: AstPrinter.cs プロジェクト: mhorskaya/cslox
 public string VisitSuperExpr(Expr.SuperExpr expr)
 {
     return(Parenthesize2("super", expr.Method));
 }