예제 #1
0
파일: Sgml.cs 프로젝트: JasonSoft/JasonSoft
 void ParseAttList(AttList list, char term)
 {
     char ch = this.current.SkipWhitespace();
     while (ch != term)
     {
         if (ch == '%')
         {
             Entity e = ParseParameterEntity(peterm);
             PushEntity(this.current.ResolvedUri, e);
             ParseAttList(list, Entity.EOF);
             PopEntity();
             ch = this.current.SkipWhitespace();
         }
         else if (ch == '-')
         {
             ch = ParseDeclComments();
         }
         else
         {
             AttDef a = ParseAttDef(ch);
             list.Add(a);
         }
         ch = this.current.SkipWhitespace();
     }
 }
예제 #2
0
파일: Sgml.cs 프로젝트: JasonSoft/JasonSoft
 public void AddAttDefs(AttList list)
 {
     if (AttList == null)
     {
         AttList = list;
     }
     else
     {
         foreach (AttDef a in list)
         {
             if (AttList[a.Name] == null)
             {
                 AttList.Add(a);
             }
         }
     }
 }
예제 #3
0
파일: Sgml.cs 프로젝트: JasonSoft/JasonSoft
 void ParseAttList()
 {
     char ch = this.current.SkipWhitespace();
     string[] names = ParseNameGroup(ch, true);
     AttList attlist = new AttList();
     ParseAttList(attlist, '>');
     foreach (string name in names)
     {
         ElementDecl e = (ElementDecl)this.elements[name];
         if (e == null)
         {
             this.current.Error("ATTLIST references undefined ELEMENT {0}", name);
         }
         e.AddAttDefs(attlist);
     }
 }