Beispiel #1
0
        //=====================================================================
        /// <summary>
        /// Writes a description of a group of enums.
        /// </summary>
        public void WriteEnums(StreamWriter w, EnumGroup group)
        {
            foreach (EnumDef e in group.Enums)
                w.WriteLine("<a name=\"" + e.Name + "\"></a>");

            w.Write("<table class=decl><tr><td><code>");

            foreach (EnumDef e in group.Enums)
                w.Write(e.Name + " &nbsp; ");

            w.WriteLine("</code>");

            w.Write("<td align=right><code>" + this.FileLinks(group.Source)
                    + "</code></table>");

            w.Write("<div class=desc>");
            if (group.Description == "")
                w.Write("<i>no description available</i>");
            else
                w.Write(EncodeEntities(group.Description));
            w.WriteLine("</div>");
        }
Beispiel #2
0
        //=====================================================================
        /// <summary>
        /// Processes a line which appears to define one or more enums.
        /// All enums defined on a single line are placed in an EnumGroup.
        /// This means that some enums are not grouped as they ought to be,
        /// but I did say this parser is pretty stupid.
        /// "enum" identifier ["," identifier]... ";"
        /// </summary>
        private void ProcessEnums(String line)
        {
            // note: the keyword "enum" has already been parsed
            EnumGroup group = new EnumGroup(Path.GetFileName(CurrentFileName), LineNumber);
            group.Description = LastComment;
            LastComment = "";

            line = line.Trim();
            while (line != "")
            {
                String token = GetNextToken(ref line);
                if (token == ";")
                    break;
                if (token == "")
                    return;
                if (token != ",")
                {
                    EnumDef e = new EnumDef(Path.GetFileName(CurrentFileName), LineNumber);
                    e.Name = token;
                    e.Group = group;
                    group.Enums.Add(e);
                }
            }

            this.SymbolTable.EnumGroups.Add(group);
            this.CurrentSourceFile.EnumGroups.Add(group);
        }