1 21 package au.id.jericho.lib.html; 22 23 import java.util.*; 24 25 class StartTagTypeMarkupDeclaration extends StartTagTypeGenericImplementation { 26 static final StartTagTypeMarkupDeclaration INSTANCE=new StartTagTypeMarkupDeclaration(); 27 28 static final String ELEMENT="!element"; 29 static final String ATTLIST="!attlist"; 30 static final String ENTITY="!entity"; 31 static final String NOTATION="!notation"; 32 33 private StartTagTypeMarkupDeclaration() { 34 super("markup declaration","<!",">",null,false,false,true); 35 } 36 37 protected Tag constructTagAt(final Source source, final int pos) { 38 final Tag tag=super.constructTagAt(source,pos); 39 if (tag==null) return null; 40 final String name=tag.getName(); 41 if (name!=ELEMENT && name!=ATTLIST && name!=ENTITY && name!=NOTATION) return null; return tag; 43 } 44 45 protected int findEnd(final Source source, int pos) { 46 final ParseText parseText=source.getParseText(); 47 boolean insideQuotes=false; 48 do { 49 final char c=parseText.charAt(pos); 50 if (c=='"') { 51 insideQuotes=!insideQuotes; 52 } else if (c=='>' && !insideQuotes) { 53 return pos+1; 54 } 55 } while ((++pos)<source.getEnd()); 56 return -1; 57 } 58 } 59 | Popular Tags |