void Emit(LS1Type t, LS1TypeMethod tm, LS1TypeMethodForm form)
        {
            string useDescription = string.Empty;

            if (!string.IsNullOrEmpty(form.Description))
            {
                useDescription = ": " + form.Description;
            }

            if (form.Parameters == null || form.Parameters.Count == 0)
            {
                EmitLine(string.Format("- `{1}`{2}", t.Name, tm.Name, useDescription));
            }
            else
            {
                string parameters = string.Empty;

                foreach (LS1Parameter p in form.Parameters)
                {
                    if (parameters.Length > 0)
                    {
                        parameters += " `,` ";
                    }
                    parameters += EmitDeclaration(p, " `,` ", false);
                }

                EmitLine(string.Format("- `{1}[` {2} `]`{3}", t.Name, tm.Name, parameters, useDescription));
            }

            if (tm.Restricted)
            {
                EmitLine("  - Restricted: Yes");
            }
#if MINIMUM_BUILD
            if (form.MinimumBuild > 0)
            {
                EmitLine(string.Format("  - Minimum Build: {0}", form.MinimumBuild));
            }
#endif
        }
        void Emit(LS1Type t, LS1TypeMethod tm)
        {
            if (HideRestricted && tm.Restricted)
            {
                return;
            }

            if (tm.Forms != null && tm.Forms.Count > 0)
            {
                foreach (LS1TypeMethodForm tif in tm.Forms)
                {
                    Emit(t, tm, tif);
                }
            }
            else
            {
                EmitLine(string.Format("- `{1}[`???`]`", t.Name, tm.Name));
                if (tm.Restricted)
                {
                    EmitLine("  - Restricted: Yes");
                }
            }
        }