/[aagtl_public1]/src/net/htmlparser/jericho/StartTagTypeDoctypeDeclaration.java
aagtl

Contents of /src/net/htmlparser/jericho/StartTagTypeDoctypeDeclaration.java

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2 - (show annotations) (download)
Sun Aug 5 13:48:36 2012 UTC (11 years, 8 months ago) by zoffadmin
File size: 1878 byte(s)
initial import of aagtl source code
1 // Jericho HTML Parser - Java based library for analysing and manipulating HTML
2 // Version 3.2
3 // Copyright (C) 2004-2009 Martin Jericho
4 // http://jericho.htmlparser.net/
5 //
6 // This library is free software; you can redistribute it and/or
7 // modify it under the terms of either one of the following licences:
8 //
9 // 1. The Eclipse Public License (EPL) version 1.0,
10 // included in this distribution in the file licence-epl-1.0.html
11 // or available at http://www.eclipse.org/legal/epl-v10.html
12 //
13 // 2. The GNU Lesser General Public License (LGPL) version 2.1 or later,
14 // included in this distribution in the file licence-lgpl-2.1.txt
15 // or available at http://www.gnu.org/licenses/lgpl.txt
16 //
17 // This library is distributed on an "AS IS" basis,
18 // WITHOUT WARRANTY OF ANY KIND, either express or implied.
19 // See the individual licence texts for more details.
20
21 package net.htmlparser.jericho;
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 getEnd(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 }

   
Visit the aagtl Website