public Expr Parse(ParserContext pcon, object frm) { //int line = (int)Compiler.LINE.deref(); ISeq form = (ISeq)frm; // form => (new Typename args ... ) if (form.count() < 2) { throw new ParseException("wrong number of arguments, expecting: (new Typename args ...)"); } Type t = HostExpr.MaybeType(RT.second(form), false); if (t == null) { throw new ParseException("Unable to resolve classname: " + RT.second(form)); } List <HostArg> args = HostExpr.ParseArgs(pcon, RT.next(RT.next(form))); return(new NewExpr(t, args, (IPersistentMap)Compiler.SourceSpanVar.deref())); }