/** * Creates a class field Foo::$bar */ public override Expr createClassConst(QuercusParser parser, Expr name) { ExprFactory factory = parser.getExprFactory(); string className = _var; string specialClassName = getSpecialClassName(); if ("self".equals(specialClassName)) { className = parser.getSelfClassName(); return(factory.createClassConst(className, name)); } else if ("parent".equals(specialClassName)) { className = parser.getParentClassName(); return(factory.createClassConst(className, name)); } else if ("static".equals(specialClassName)) { return(factory.createClassVirtualConst(name)); } else { return(factory.createClassConst(className, name)); } }
// // expression creation // /** * Creates a class field Foo::bar */ public override Expr createClassConst(QuercusParser parser, StringValue name) { ExprFactory factory = parser.getExprFactory(); string className = _var; string specialClassName = getSpecialClassName(); if ("self".equals(specialClassName)) { className = parser.getSelfClassName(); return(factory.createClassConst(className, name)); } else if ("parent".equals(specialClassName)) { className = parser.getParentClassName(); if (className != null) { return(factory.createClassConst(className, name)); } else { // trait's parent @is not known at parse time return(factory.createTraitParentClassConst(parser.getClassName(), name)); } } else if ("static".equals(specialClassName)) { return(factory.createClassVirtualConst(name)); } else { return(factory.createClassConst(className, name)); } }