1 21 package au.id.jericho.lib.html; 22 23 final class StartTagTypeDoctypeDeclaration extends StartTagTypeGenericImplementation { 24 static final StartTagTypeDoctypeDeclaration INSTANCE=new StartTagTypeDoctypeDeclaration(); 25 26 private StartTagTypeDoctypeDeclaration() { 27 super("document type declaration","<!doctype",">",null,false,false,false); 28 } 29 30 protected int findEnd(final Source source, int pos) { 31 final ParseText parseText=source.getParseText(); 32 boolean insideQuotes=false; 33 boolean insideSquareBrackets=false; 34 do { 35 final char c=parseText.charAt(pos); 36 if (insideQuotes) { 37 if (c=='"') insideQuotes=false; 38 } else { 39 switch (c) { 40 case '>': 41 if (!insideSquareBrackets) return pos+1; 42 break; 43 case '"': 44 insideQuotes=true; 45 break; 46 case '[': 47 insideSquareBrackets=true; 48 break; 49 case ']': 50 insideSquareBrackets=false; 51 break; 52 } 53 } 54 } while ((++pos)<source.getEnd()); 55 return -1; 56 } 57 } 58 | Popular Tags |