ParseArgs() static private method

static private ParseArgs ( ParserContext pcon, ISeq argSeq ) : List
pcon ParserContext
argSeq ISeq
return List
Example #1
0
            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()));
            }