public void printClass(DoxClass dc, bool detailed) { DocSect dsec = new DocSect(); DocTable dt = new DocTable(); bool endOfTable = true; if (detailed == false) { if (this.currentTable == null) { dt.ColCount = 2; dt.RowCount = 2; header_row(dt); } else { dt = this.currentTable; endOfTable = false; } DocPara dp = new DocPara(); dsec.Paragraphs.Add(dp); this.currentTable = dt; } printClassifier(dc, detailed); if (detailed == false && endOfTable == true) { DocPara dp = new DocPara(); dp.Commands.Add(dt); dsec.Paragraphs.Add(dp); this.PrintDocCmd(dsec); this.currentTable = null; } }
/// <summary> /// Paragraphs will be first writen /// </summary> /// <param name="newSection"></param> public void addSectionToFirstSection(DocSect newSection) { this.firstSection.Sections.Add(newSection); }
public WikiParser(string path) { this.path = path; firstSection = new DocSect(); ParseWiki(); }
public void printMember(DoxMember dm, bool detailed) { DocTable dtable = null; if(detailed == true && dm.DetailedDescription == null) { return; } else if (detailed == true && dm.DetailedDescription.Paragraphs.Count == 0) { return; } if(detailed == true) { dtable = new DocTable(); dtable.ColCount = 1; dtable.RowCount = 2; } DocTableRow dtr = new DocTableRow(); DocTableCell dtc = new DocTableCell(); DocPara dp = new DocPara(); if (dm.ProtectionKind != null) { DocText dt = new DocText(); dt.Text = dm.ProtectionKind.Value.ToString() + ' '; dt.TextKind = DocTextKind.Plain; dp.Commands.Add(dt); } if (dm.New == true) { DocText dt = new DocText(); dt.Text = "new "; dt.TextKind = DocTextKind.Plain; dp.Commands.Add(dt); } if (dm.Final == true) { DocText dt = new DocText(); dt.Text = "final "; dt.TextKind = DocTextKind.Plain; dp.Commands.Add(dt); } if (dm.Volatile == true) { DocText dt = new DocText(); dt.Text = "volatile "; dt.TextKind = DocTextKind.Plain; dp.Commands.Add(dt); } if (dm.VirtualKind != null && dm.VirtualKind != VirtualKind.NonVirtual && dm.Kind != MemberKind.Function) { DocText dt = new DocText(); dt.Text = dm.VirtualKind.ToString(); dt.TextKind = DocTextKind.Plain; dp.Commands.Add(dt); } if (dm.Inline == true && dm.Kind != MemberKind.Function) { DocText dt = new DocText(); dt.Text = "inline "; dt.TextKind = DocTextKind.Plain; dp.Commands.Add(dt); } if (dm.Static == true && dm.Kind != MemberKind.Function) { DocText dt = new DocText(); dt.Text = "static "; dt.TextKind = DocTextKind.Plain; dp.Commands.Add(dt); } if (dm.Const == true) { DocText dt = new DocText(); dt.Text = "contant "; dt.TextKind = DocTextKind.Plain; dp.Commands.Add(dt); } if (dm.Explicit == true) { DocText dt = new DocText(); dt.Text = "explicit "; dt.TextKind = DocTextKind.Plain; dp.Commands.Add(dt); } if (dm.Definition != null) { String[] texts = dm.Definition.Split(' '); if (texts.Length > 1) { texts = texts.Take(texts.Count() - 1).ToArray(); } for (int i = 0; i < texts.Length; i++ ) { String item = texts[i]; item = item.Split('.').Last(); texts[i] = item; } String text = String.Join(" ", texts); DocText dt = new DocText(); dt.Text = text; dt.TextKind = DocTextKind.Plain; dp.Commands.Add(dt); } if (detailed == false) { dtc.Paragraphs.Add(dp); dtr.Cells.Add(dtc); dtc = new DocTableCell(); dp = new DocPara(); } if (dm.Params.Count != 0) { DocText dt = new DocText(); dt.TextKind = DocTextKind.Plain; dt.Text = dm.Name + "("; dp.Commands.Add(dt); DocAnchor da = new DocAnchor(); da.Id = dm.Identifier; dp.Commands.Add(da); dt = new DocText(); dt.TextKind = DocTextKind.Plain; for (int i = 0; i < dm.Params.Count; i++) { dt.Text = dm.Params[i].Type.Items[0].Text + " "; dt.Text += dm.Params[i].DeclarationName + " "; if (i != dm.Params.Count - 1) { dt.Text += ", "; } } dt.Text += ")"; dp.Commands.Add(dt); } else if (dm.Kind == MemberKind.Function) { DocText dt = new DocText(); dt.TextKind = DocTextKind.Plain; dt.Text = dm.Name; dp.Commands.Add(dt); dt = new DocText(); dt.TextKind = DocTextKind.Plain; dt.Text = "()"; dp.Commands.Add(dt); DocAnchor da = new DocAnchor(); da.Id = dm.Identifier; dp.Commands.Add(da); } else { DocText dt = new DocText(); dt.TextKind = DocTextKind.Plain; dt.Text = dm.Name; dp.Commands.Add(dt); DocAnchor da = new DocAnchor(); da.Id = dm.Identifier; dp.Commands.Add(da); } if (detailed == false) { if (dm.BriefDescription != null && dm.BriefDescription.Paragraphs.Count > 0) { dp.Commands.Add(new DocPara()); dp.Commands.AddRange(dm.BriefDescription.Paragraphs); } dtc.Paragraphs.Add(dp); dtr.Cells.Add(dtc); this.currentTable.Rows.Add(dtr); } else { dtc.IsHeader = true; dtc.Paragraphs.Add(dp); dtr.Cells.Add(dtc); dtable.Rows.Add(dtr); dp = new DocPara(); dp.Commands.AddRange(dm.DetailedDescription.Paragraphs); dtr = new DocTableRow(); dtc = new DocTableCell(); dtc.Paragraphs.Add(dp); dtr.Cells.Add(dtc); dtable.Rows.Add(dtr); dp = new DocPara(); dp.Commands.Add(dtable); DocSect ds = new DocSect(); ds.Paragraphs.Add(dp); this.currentsection.Sections.Add(ds); } }
public void printInterfaces(bool detailed, DoxNamespace ns=null, List<DoxClassifier> Ininterfaces=null) { List<DoxClassifier> interfaces = null; if (Ininterfaces == null && ns != null) { interfaces = ns.Classifiers.Where(dc => dc.Kind == CompoundKind.Interface && dc.Members.Count > 0).OrderBy(c => c.Name).ToList(); } else if(Ininterfaces != null) { interfaces = Ininterfaces; } else { Log("Error DPrint-2: printInterfaces method should get a Namespace or list of classifiers"); } DocSect parentSect = this.currentsection; DocSect ds = new DocSect(); DocTable dt = new DocTable(); if (detailed == false) { ds.Title = "Interfaces: "; ds.Identifier = ""; DocPara dp = new DocPara(); ds.Paragraphs.Add(dp); dt.ColCount = 2; dt.RowCount = interfaces.Count + 1; header_row(dt); this.currentTable = dt; } foreach (DoxInterface di in interfaces) { if (di.Members.Count > 0) { printClassifier(di, detailed); } } if (detailed == false) { DocPara dp = new DocPara(); dp.Commands.Add(dt); ds.Paragraphs.Add(dp); if (parentSect != null) { parentSect.Sections.Add(ds); this.currentsection = parentSect; } else { this.PrintDocCmd(ds); } this.currentTable = null; } }
/// <summary> /// Method, that responsible for the output of the fields /// </summary> /// <param name="detailed">Type of output</param> /// <param name="dc">If not null, than the method use the fields of this Classifier</param> /// <param name="InFileds">If isn't null, than the method use these fields</param> public void printFields(bool detailed, DoxClassifier dc=null, List<DoxMember> InFileds = null) { List<DoxMember> fields = null; if (InFileds == null && dc != null) { fields = dc.Members.Where(dm => dm.Kind == MemberKind.Variable).OrderBy(c => c.Name).ToList(); } else if (InFileds != null) { fields = InFileds; } else { Log("Error DPrint-6: printFields method should get a DoxClassifier or list of DoxMembers"); } if (fields.Count == 0) { return; } DocSect dsec = this.currentsection; DocSect ds = new DocSect(); ds.Identifier = ""; ds.Title = "Fields: "; DocTable dt = new DocTable(); dt.ColCount = 2; dt.RowCount = fields.Count+1; rowindex = 1; header_row(dt); this.currentTable = dt; foreach (DoxField member in fields) { printField(member, false); rowindex++; } if (dsec != null) { DocPara dp = new DocPara(); dp.Commands.Add(dt); ds.Paragraphs.Add(dp); dsec.Sections.Add(ds); } else { this.PrintDocCmd(ds); } if (detailed == true) { foreach (DoxField member in fields) { printField(member, true); } } }
public void printEnumValues(bool detailed, DoxClassifier dev = null, List<DoxMember> InEnumVales = null) { List<DoxMember> enumValues = null; if (InEnumVales == null && dev != null) { enumValues = dev.Members.Where(dm => dm.Kind == MemberKind.EnumValue).OrderBy(c => c.Name).ToList(); } else if (InEnumVales != null) { enumValues = InEnumVales; } else { Log("Error DPrint-8: printEnumValues method should get a DoxClassifier or list of DoxMembers"); } if (enumValues.Count == 0) { return; } DocSect dsec = this.currentsection; DocSect ds = new DocSect(); ds.Identifier = ""; ds.Title = "Enum values: "; DocTable dt = new DocTable(); dt.ColCount = 2; dt.RowCount = enumValues.Count + 1; rowindex = 1; header_row(dt); this.currentTable = dt; foreach (DoxEnumValue member in enumValues) { printEnumValue(member, false); rowindex++; } if (dsec != null) { DocPara dp = new DocPara(); dp.Commands.Add(dt); ds.Paragraphs.Add(dp); dsec.Sections.Add(ds); } else { this.PrintDocCmd(ds); } if(detailed == true) { foreach (DoxEnumValue member in enumValues) { printEnumValue(member, detailed); } } }
public void printClassifiers(bool detailed, DoxNamespace ns = null, List<DoxClassifier> Inclassifiers = null) { List<DoxClassifier> classifiers = null; if (Inclassifiers == null && ns != null) { classifiers = ns.Classifiers.OrderBy(c => c.Name).ToList(); } else if(Inclassifiers != null) { classifiers = Inclassifiers; } else { Log("Error DPrint-0: printClassifiers method should get a Namespace or list of classifiers"); } DocSect parentSect = this.currentsection; DocSect ds = new DocSect(); DocTable dt = new DocTable(); if (detailed == false) { ds.Title = "Classifiers: "; ds.Identifier = ""; DocPara dp = new DocPara(); ds.Paragraphs.Add(dp); dt.ColCount = 2; dt.RowCount = classifiers.Count + 1; header_row(dt); this.currentTable = dt; } foreach (DoxClassifier classifier in classifiers.Where(classifier => classifier.Members.Count > 0)) { printClassifier(classifier, detailed); } if (detailed == false) { DocPara dp = new DocPara(); dp.Commands.Add(dt); ds.Paragraphs.Add(dp); if(parentSect != null) { parentSect.Sections.Add(ds); this.currentsection = parentSect; } else { this.PrintDocCmd(ds); } this.currentTable = null; } }
public void printClassifier(DoxClassifier dc, bool detailed) { if (detailed == true) { DocSect parentSect = this.currentsection; string name = NormalizeName(dc.Name); DocSect ds = new DocSect(); ds.Title = dc.Kind + ": " + name; ds.Identifier = dc.Identifier; // Leírás if (dc.BriefDescription != null && dc.BriefDescription.Paragraphs.Count > 0) { ds.Paragraphs.AddRange(dc.BriefDescription.Paragraphs); } else if(dc.Description != null) { ds.Paragraphs.AddRange(dc.Description.Paragraphs); } this.currentsection = ds; printFields(detailed,dc); printProperties(detailed, dc); printMethods(detailed, dc); printEnumValues(detailed, dc); if (parentSect != null) { parentSect.Sections.Add(ds); this.currentsection = parentSect; } else { this.PrintDocCmd(ds); } } else { DocTableRow dtr = new DocTableRow(); DocTableCell dtc = new DocTableCell(); DocPara dp = new DocPara(); dp.Commands.Add(new DocText() { TextKind = DocTextKind.Plain, Text = dc.Name }); dtc.Paragraphs.Add(dp); dtr.Cells.Add(dtc); dp = new DocPara(); dtc = new DocTableCell(); if (dc.BriefDescription != null && dc.BriefDescription.Paragraphs.Count > 0) { dtc.Paragraphs.AddRange(dc.BriefDescription.Paragraphs); } else if( dc.Description != null) { dtc.Paragraphs.AddRange(dc.Description.Paragraphs); } dtc.Paragraphs.Add(dp); dtr.Cells.Add(dtc); this.currentTable.Rows.Add(dtr); } }
public void printNameSpace(DoxNamespace ns, Boolean detailed) { if (detailed == true) { string name = NormalizeName(ns.Name); DocSect parentsec = this.currentsection; DocSect ds = new DocSect(); ds.Title = "Namespace: " + name; ds.Identifier = ns.Identifier; if (ns.BriefDescription != null && ns.BriefDescription.Paragraphs.Count > 0) { ds.Paragraphs.AddRange(ns.BriefDescription.Paragraphs); } else if(ns.Description != null) { ds.Paragraphs.AddRange(ns.Description.Paragraphs); } this.currentsection = ds; this.printClasses(detailed, ns); this.printInterfaces(detailed, ns); this.printStructs(detailed, ns); this.printEnums(detailed, ns); parentsec.Sections.Add(ds); } else { DocTableRow dtr = new DocTableRow(); DocTableCell dtc = new DocTableCell(); DocPara dp = new DocPara(); dp.Commands.Add(new DocText() { TextKind = DocTextKind.Plain, Text = ns.Name }); dtc.Paragraphs.Add(dp); dtr.Cells.Add(dtc); dp = new DocPara(); dtc = new DocTableCell(); if (ns.BriefDescription != null && ns.BriefDescription.Paragraphs.Count > 0) { dtc.Paragraphs.AddRange(ns.BriefDescription.Paragraphs); } else if(ns.Description != null) { dtc.Paragraphs.AddRange(ns.Description.Paragraphs); } dtc.Paragraphs.Add(dp); dtr.Cells.Add(dtc); this.currentTable.Rows.Add(dtr); } }
public void printNameScapes(Boolean detailed, List<Compound> inList = null) { List<Compound> NameSpaces; if (inList == null) { NameSpaces = Model.Compounds.Where(comp => comp.Kind == CompoundKind.Namespace).OrderBy(ns => ns.Name).ToList(); } else { NameSpaces = inList; } DocSect ds = new DocSect(); DocTable dt = new DocTable(); this.currentsection = ds; if (detailed == false) { ds.Title = "Namespaces: "; ds.Identifier = ""; DocPara dp = new DocPara(); ds.Paragraphs.Add(dp); dt.ColCount = 2; dt.RowCount = NameSpaces.Count + 1; header_row(dt); this.currentTable = dt; } foreach (DoxNamespace Namespace in NameSpaces) { if (Namespace.Classifiers.Count > 0) { this.printNameSpace(Namespace, detailed); } } if(detailed == false) { DocPara dp = new DocPara(); dp.Commands.Add(dt); ds.Paragraphs.Add(dp); this.currentTable = null; } this.PrintDocCmd(ds); }
public void printMembers(bool detailed, DoxClassifier dc=null, List<DoxMember> InMembers =null) { List<DoxMember> members = null; if (InMembers == null && dc != null) { members = dc.Members.OrderBy(c => c.Name).ToList(); } else if (InMembers != null) { members = InMembers; } else { Log("Error DPrint-5: printMembers method should get a DoxClassifier or list of DoxMembers"); } if(members.Count == 0) { return; } DocSect dsec = this.currentsection; DocSect ds = new DocSect(); ds.Identifier = ""; ds.Title = "Members: "; DocTable dt = new DocTable(); dt.ColCount = 2; dt.RowCount = members.Count+1; rowindex = 1; header_row(dt); this.currentTable = dt; this.currentsection = ds; foreach (DoxMember member in members) { printMember(member,detailed); rowindex++; } if(dsec != null) { DocPara dp = new DocPara(); dp.Commands.Add(dt); ds.Paragraphs.Add(dp); dsec.Sections.Add(ds); this.currentsection = dsec; } else { this.PrintDocCmd(ds); } }