clojure.lang.LispReader.CtorReader.ReadTagged C# (CSharp) Метод

ReadTagged() приватный Метод

private ReadTagged ( object o, Symbol tag, object opts, object pendingForms ) : object
o object
tag Symbol
opts object
pendingForms object
Результат object
            static object ReadTagged(object o, Symbol tag, object opts, object pendingForms)
            {
                ILookup dataReaders = (ILookup)RT.DataReadersVar.deref();
                IFn dataReader = (IFn)RT.get(dataReaders, tag);
                if (dataReader == null)
                {
                    dataReaders = (ILookup)RT.DefaultDataReadersVar.deref();
                    dataReader = (IFn)RT.get(dataReaders, tag);
                    if (dataReader == null)
                    {
                        IFn default_reader = (IFn)RT.DefaultDataReaderFnVar.deref();
                        if (default_reader != null)
                            return default_reader.invoke(tag, o);
                        else
                            throw new ArgumentException("No reader function for tag " + tag.ToString());
                    }
                }
                return dataReader.invoke(o);
            }
LispReader.CtorReader