예제 #1
0
파일: Xhtml.cs 프로젝트: blockspacer/niveum
        public IEnumerable <String> TypeBrief(TypeDef t)
        {
            var ts = TypeSpec.CreateTypeRef(new TypeRef {
                Name = t.Name(), Version = t.Version()
            });
            var MetaType    = GetMetaType(t);
            var Description = t.Description();

            yield return("<tr>");

            foreach (var _Line in Combine(Combine(Combine(Begin(), "    <td>"), GetTypeString(ts, false)), "</td>"))
            {
                yield return(_Line);
            }
            foreach (var _Line in Combine(Combine(Combine(Begin(), "    <td>"), GetEscaped(MetaType)), "</td>"))
            {
                yield return(_Line);
            }
            foreach (var _Line in Combine(Combine(Combine(Begin(), "    <td><pre>"), GetEscaped(Description)), "</pre></td>"))
            {
                yield return(_Line);
            }
            yield return("</tr>");
        }
예제 #2
0
파일: Xhtml.cs 프로젝트: blockspacer/niveum
        public IEnumerable <String> Type(TypeDef t)
        {
            var Name              = t.VersionedName();
            var MetaType          = GetMetaType(t);
            var GenericParameters = t.GenericParameters();
            var Description       = t.Description();

            foreach (var _Line in Combine(Combine(Combine(Combine(Combine(Combine(Combine(Begin(), "<h3 id=\""), GetEscaped(Name)), "\">"), GetEscaped(MetaType)), " "), GetEscaped(Name)), "</h3>"))
            {
                yield return(_Line);
            }
            foreach (var _Line in Combine(Combine(Combine(Begin(), "<pre>"), GetEscaped(Description)), "</pre>"))
            {
                yield return(_Line);
            }
            if (GenericParameters.Count > 0)
            {
                yield return("<table>");

                foreach (var gp in GenericParameters)
                {
                    foreach (var _Line in Combine(Begin(), Variable("'" + gp.Name, gp.Type, gp.Description)))
                    {
                        yield return(_Line == "" ? "" : "    " + _Line);
                    }
                }
                yield return("</table>");
            }
            if (t.OnPrimitive)
            {
            }
            else if (t.OnAlias)
            {
                var TypeSpec = GetTypeString(t.Alias.Type, true);
                foreach (var _Line in Combine(Combine(Combine(Begin(), "<pre>类型:"), TypeSpec), "</pre>"))
                {
                    yield return(_Line);
                }
            }
            else if (t.OnRecord)
            {
                yield return("<table>");

                foreach (var _Line in Combine(Combine(Begin(), "    "), Variables(t.Record.Fields)))
                {
                    yield return(_Line);
                }
                yield return("</table>");
            }
            else if (t.OnTaggedUnion)
            {
                yield return("<table>");

                foreach (var _Line in Combine(Combine(Begin(), "    "), Variables(t.TaggedUnion.Alternatives)))
                {
                    yield return(_Line);
                }
                yield return("</table>");
            }
            else if (t.OnEnum)
            {
                yield return("<table>");

                foreach (var _Line in Combine(Combine(Begin(), "    "), Literals(t.Enum.Literals)))
                {
                    yield return(_Line);
                }
                yield return("</table>");
            }
            else if (t.OnClientCommand)
            {
                yield return("<div><pre>参数</pre></div>");

                yield return("<table>");

                foreach (var _Line in Combine(Combine(Begin(), "    "), Variables(t.ClientCommand.OutParameters)))
                {
                    yield return(_Line);
                }
                yield return("</table>");

                yield return("<div><pre>返回值</pre></div>");

                yield return("<table>");

                foreach (var _Line in Combine(Combine(Begin(), "    "), Variables(t.ClientCommand.InParameters)))
                {
                    yield return(_Line);
                }
                yield return("</table>");
            }
            else if (t.OnServerCommand)
            {
                yield return("<table>");

                foreach (var _Line in Combine(Combine(Begin(), "    "), Variables(t.ServerCommand.OutParameters)))
                {
                    yield return(_Line);
                }
                yield return("</table>");
            }
            else
            {
                throw new InvalidOperationException();
            }
            yield return("<pre></pre>");
        }