in batik-parser/src/main/java/org/apache/batik/parser/FragmentIdentifierParser.java [83:253]
protected void doParse() throws ParseException, IOException {
bufferSize = 0;
current = reader.read();
fragmentIdentifierHandler.startFragmentIdentifier();
ident: {
String id = null;
switch (current) {
case 'x':
bufferize();
current = reader.read();
if (current != 'p') {
parseIdentifier();
break;
}
bufferize();
current = reader.read();
if (current != 'o') {
parseIdentifier();
break;
}
bufferize();
current = reader.read();
if (current != 'i') {
parseIdentifier();
break;
}
bufferize();
current = reader.read();
if (current != 'n') {
parseIdentifier();
break;
}
bufferize();
current = reader.read();
if (current != 't') {
parseIdentifier();
break;
}
bufferize();
current = reader.read();
if (current != 'e') {
parseIdentifier();
break;
}
bufferize();
current = reader.read();
if (current != 'r') {
parseIdentifier();
break;
}
bufferize();
current = reader.read();
if (current != '(') {
parseIdentifier();
break;
}
bufferSize = 0;
current = reader.read();
if (current != 'i') {
reportCharacterExpectedError( 'i', current );
break ident;
}
current = reader.read();
if (current != 'd') {
reportCharacterExpectedError( 'd', current );
break ident;
}
current = reader.read();
if (current != '(') {
reportCharacterExpectedError( '(', current );
break ident;
}
current = reader.read();
if (current != '"' && current != '\'') {
reportCharacterExpectedError( '\'', current );
break ident;
}
char q = (char)current;
current = reader.read();
parseIdentifier();
id = getBufferContent();
bufferSize = 0;
fragmentIdentifierHandler.idReference(id);
if (current != q) {
reportCharacterExpectedError( q, current );
break ident;
}
current = reader.read();
if (current != ')') {
reportCharacterExpectedError( ')', current );
break ident;
}
current = reader.read();
if (current != ')') {
reportCharacterExpectedError( ')', current );
}
break ident;
case 's':
bufferize();
current = reader.read();
if (current != 'v') {
parseIdentifier();
break;
}
bufferize();
current = reader.read();
if (current != 'g') {
parseIdentifier();
break;
}
bufferize();
current = reader.read();
if (current != 'V') {
parseIdentifier();
break;
}
bufferize();
current = reader.read();
if (current != 'i') {
parseIdentifier();
break;
}
bufferize();
current = reader.read();
if (current != 'e') {
parseIdentifier();
break;
}
bufferize();
current = reader.read();
if (current != 'w') {
parseIdentifier();
break;
}
bufferize();
current = reader.read();
if (current != '(') {
parseIdentifier();
break;
}
bufferSize = 0;
current = reader.read();
parseViewAttributes();
if (current != ')') {
reportCharacterExpectedError( ')', current );
}
break ident;
default:
if (current == -1 ||
!XMLUtilities.isXMLNameFirstCharacter((char)current)) {
break ident;
}
bufferize();
current = reader.read();
parseIdentifier();
}
id = getBufferContent();
fragmentIdentifierHandler.idReference(id);
}
fragmentIdentifierHandler.endFragmentIdentifier();
}