org_eclipse_lemminx_extensions_contentmodel_DTDDoctypeDiagnosticsTest_java
org.apache.xerces.impl.XMLDocumentScannerImpl$PrologDispatcher
@Override
    public boolean dispatch(boolean bl) throws IOException, XNIException {
        try {
            boolean bl2;
            do {
                bl2 = false;
                switch (XMLDocumentScannerImpl.this.fScannerState) {
                    case 5: {
                        XMLDocumentScannerImpl.this.fEntityScanner.skipSpaces();
                        if (XMLDocumentScannerImpl.this.fEntityScanner.skipChar(60)) {
                            XMLDocumentScannerImpl.this.setScannerState(1);
                            bl2 = true;
                            break;
                        }
                        if (XMLDocumentScannerImpl.this.fEntityScanner.skipChar(38)) {
                            XMLDocumentScannerImpl.this.setScannerState(8);
                            bl2 = true;
                            break;
                        }
                        XMLDocumentScannerImpl.this.setScannerState(7);
                        bl2 = true;
                        break;
                    }
                    case 1: {
                        ++XMLDocumentScannerImpl.this.fMarkupDepth;
                        if (XMLDocumentScannerImpl.this.fEntityScanner.skipChar(33)) {
                            if (XMLDocumentScannerImpl.this.fEntityScanner.skipChar(45)) {
                                if (!XMLDocumentScannerImpl.this.fEntityScanner.skipChar(45)) {
                                    XMLDocumentScannerImpl.this.reportFatalError("InvalidCommentStart", null);
                                }
                                XMLDocumentScannerImpl.this.setScannerState(2);
                                bl2 = true;
                                break;
                            }
                            if (XMLDocumentScannerImpl.this.fEntityScanner.skipString("DOCTYPE")) {
                                XMLDocumentScannerImpl.this.setScannerState(4);
                                bl2 = true;
                                break;
                            }
                            XMLDocumentScannerImpl.this.reportFatalError("MarkupNotRecognizedInProlog", null);
                            break;
                        }
                        if (XMLDocumentScannerImpl.this.isValidNameStartChar(XMLDocumentScannerImpl.this.fEntityScanner.peekChar())) {
                            XMLDocumentScannerImpl.this.setScannerState(6);
                            XMLDocumentScannerImpl.this.setDispatcher(XMLDocumentScannerImpl.this.fContentDispatcher);
                            return true;
                        }
                        if (XMLDocumentScannerImpl.this.fEntityScanner.skipChar(63)) {
                            XMLDocumentScannerImpl.this.setScannerState(3);
                            bl2 = true;
                            break;
                        }
                        if (XMLDocumentScannerImpl.this.isValidNameStartHighSurrogate(XMLDocumentScannerImpl.this.fEntityScanner.peekChar())) {
                            XMLDocumentScannerImpl.this.setScannerState(6);
                            XMLDocumentScannerImpl.this.setDispatcher(XMLDocumentScannerImpl.this.fContentDispatcher);
                            return true;
                        }
                        XMLDocumentScannerImpl.this.reportFatalError("MarkupNotRecognizedInProlog", null);
                        break;
                    }
                    case 2: {
                        XMLDocumentScannerImpl.this.scanComment();
                        XMLDocumentScannerImpl.this.setScannerState(5);
                        break;
                    }
                    case 3: {
                        XMLDocumentScannerImpl.this.scanPI();
                        XMLDocumentScannerImpl.this.setScannerState(5);
                        break;
                    }
                    case 4: {
                        if (XMLDocumentScannerImpl.this.fDisallowDoctype) {
                            XMLDocumentScannerImpl.this.reportFatalError("DoctypeNotAllowed", null);
                        }
                        if (XMLDocumentScannerImpl.this.fSeenDoctypeDecl) {
                            XMLDocumentScannerImpl.this.reportFatalError("AlreadySeenDoctype", null);
                        }
                        XMLDocumentScannerImpl.this.fSeenDoctypeDecl = true;
                        if (XMLDocumentScannerImpl.this.scanDoctypeDecl()) {
                            XMLDocumentScannerImpl.this.setScannerState(17);
                            XMLDocumentScannerImpl.this.setDispatcher(XMLDocumentScannerImpl.this.fDTDDispatcher);
                            return true;
                        }
                        if (XMLDocumentScannerImpl.this.fDoctypeSystemId != null) {
                            boolean bl3 = XMLDocumentScannerImpl.this.fIsEntityDeclaredVC = !XMLDocumentScannerImpl.this.fStandalone;
                            if (!(!XMLDocumentScannerImpl.this.fValidation && !XMLDocumentScannerImpl.this.fLoadExternalDTD || XMLDocumentScannerImpl.this.fValidationManager != null && XMLDocumentScannerImpl.this.fValidationManager.isCachedDTD())) {
                                XMLDocumentScannerImpl.this.setScannerState(18);
                                XMLDocumentScannerImpl.this.setDispatcher(XMLDocumentScannerImpl.this.fDTDDispatcher);
                                return true;
                            }
                        } else if (XMLDocumentScannerImpl.this.fExternalSubsetSource != null) {
                            boolean bl4 = XMLDocumentScannerImpl.this.fIsEntityDeclaredVC = !XMLDocumentScannerImpl.this.fStandalone;
                            if (!(!XMLDocumentScannerImpl.this.fValidation && !XMLDocumentScannerImpl.this.fLoadExternalDTD || XMLDocumentScannerImpl.this.fValidationManager != null && XMLDocumentScannerImpl.this.fValidationManager.isCachedDTD())) {
                                XMLDocumentScannerImpl.this.fDTDScanner.setInputSource(XMLDocumentScannerImpl.this.fExternalSubsetSource);
                                XMLDocumentScannerImpl.this.fExternalSubsetSource = null;
                                XMLDocumentScannerImpl.this.setScannerState(19);
                                XMLDocumentScannerImpl.this.setDispatcher(XMLDocumentScannerImpl.this.fDTDDispatcher);
                                return true;
                            }
                        }
                        XMLDocumentScannerImpl.this.fDTDScanner.setInputSource(null);
                        XMLDocumentScannerImpl.this.setScannerState(5);
                        break;
                    }
                    case 7: {
                        XMLDocumentScannerImpl.this.reportFatalError("ContentIllegalInProlog", null);
                        XMLDocumentScannerImpl.this.fEntityScanner.scanChar();
                    }
                    case 8: {
                        XMLDocumentScannerImpl.this.reportFatalError("ReferenceIllegalInProlog", null);
                    }
                }
            } while (bl || bl2);
            if (bl) {
                if (XMLDocumentScannerImpl.this.fEntityScanner.scanChar() != 60) {
                    XMLDocumentScannerImpl.this.reportFatalError("RootElementRequired", null);
                }
                XMLDocumentScannerImpl.this.setScannerState(6);
                XMLDocumentScannerImpl.this.setDispatcher(XMLDocumentScannerImpl.this.fContentDispatcher);
            }
        }
        catch (MalformedByteSequenceException malformedByteSequenceException) {
            XMLDocumentScannerImpl.this.fErrorReporter.reportError(malformedByteSequenceException.getDomain(), malformedByteSequenceException.getKey(), malformedByteSequenceException.getArguments(), (short)2, malformedByteSequenceException);
            return false;
        }
        catch (CharConversionException charConversionException) {
            XMLDocumentScannerImpl.this.fErrorReporter.reportError("http://www.w3.org/TR/1998/REC-xml-19980210", "CharConversionFailure", null, (short)2, charConversionException);
            return false;
        }
        catch (EOFException eOFException) {
            XMLDocumentScannerImpl.this.reportFatalError("PrematureEOF", null);
            return false;
        }
        return true;
    }
 -> java.lang.String.length(): int -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.util.Hashtable.get(java.lang.Object): java.lang.Object -> java.util.Locale.getDefault(): java.util.Locale -> java.util.ResourceBundle.getBundle(java.lang.String,java.util.Locale): java.util.ResourceBundle -> java.util.ResourceBundle.getString(java.lang.String): java.lang.String -> java.lang.String.endsWith(java.lang.String): boolean -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.List.clear(): void -> java.lang.String.length(): int -> java.lang.String.length(): int -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.util.List.size(): int -> java.util.List.add(java.lang.Object): boolean -> java.lang.String.length(): int -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.util.List.size(): int -> java.util.List.add(java.lang.Object): boolean -> java.lang.String.length(): int -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.util.List.size(): int -> java.util.List.add(java.lang.Object): boolean -> java.lang.String.length(): int -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.util.List.size(): int -> java.util.List.add(java.lang.Object): boolean -> java.lang.String.length(): int -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.length(): int -> java.util.List.size(): int -> java.lang.String.length(): int -> java.util.List.add(java.lang.Object): boolean -> java.util.List.size(): int -> java.util.List.size(): int -> java.util.List.get(int): java.lang.Object -> java.util.List.get(int): java.lang.Object -> java.util.List.get(int): java.lang.Object -> java.util.List.size(): int -> java.util.List.get(int): java.lang.Object -> java.util.List.size(): int -> java.util.List.size(): int -> java.util.List.get(int): java.lang.Object -> java.util.List.get(int): java.lang.Object -> java.util.List.get(int): java.lang.Object -> java.util.List.get(int): java.lang.Object -> java.util.List.size(): int -> java.util.List.get(int): java.lang.Object -> java.lang.Object.getClass(): java.lang.Class -> java.lang.Object.getClass(): java.lang.Class -> java.util.List.contains(java.lang.Object): boolean -> java.util.List.add(java.lang.Object): boolean
 [CALL] [CALL] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] -> java.lang.String.length(): int -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char [EXIT] [CALL] [EXIT] [CALL] [CALL] [CALL] [CALL] [CALL] [CALL] [EXIT] [CALL] [CALL] -> java.util.Hashtable.get(java.lang.Object): java.lang.Object [EXIT] [CALL] -> java.util.Locale.getDefault(): java.util.Locale -> java.util.ResourceBundle.getBundle(java.lang.String,java.util.Locale): java.util.ResourceBundle -> java.util.ResourceBundle.getString(java.lang.String): java.lang.String [EXIT] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [CALL] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] -> java.lang.String.endsWith(java.lang.String): boolean [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] [CALL] [EXIT] [EXIT] -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] [CALL] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [CALL] [CALL] [EXIT] [CALL] [CALL] [CALL] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] -> java.util.List.clear(): void -> java.lang.String.length(): int [CALL] [CALL] -> java.lang.String.length(): int -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char [EXIT] -> java.util.List.size(): int [CALL] [EXIT] -> java.util.List.add(java.lang.Object): boolean [CALL] -> java.lang.String.length(): int -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char [EXIT] -> java.util.List.size(): int [CALL] [EXIT] -> java.util.List.add(java.lang.Object): boolean [CALL] -> java.lang.String.length(): int -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char [EXIT] -> java.util.List.size(): int [CALL] [EXIT] -> java.util.List.add(java.lang.Object): boolean [CALL] -> java.lang.String.length(): int -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char [EXIT] -> java.util.List.size(): int [CALL] [EXIT] -> java.util.List.add(java.lang.Object): boolean [CALL] -> java.lang.String.length(): int -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char [EXIT] -> java.lang.String.length(): int -> java.util.List.size(): int -> java.lang.String.length(): int [CALL] [EXIT] -> java.util.List.add(java.lang.Object): boolean [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [CALL] -> java.util.List.size(): int -> java.util.List.size(): int -> java.util.List.get(int): java.lang.Object -> java.util.List.get(int): java.lang.Object -> java.util.List.get(int): java.lang.Object [EXIT] [EXIT] -> java.util.List.size(): int -> java.util.List.get(int): java.lang.Object [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [CALL] [CALL] [EXIT] [CALL] [CALL] [CALL] -> java.util.List.size(): int -> java.util.List.size(): int -> java.util.List.get(int): java.lang.Object -> java.util.List.get(int): java.lang.Object -> java.util.List.get(int): java.lang.Object -> java.util.List.get(int): java.lang.Object [EXIT] [EXIT] -> java.util.List.size(): int -> java.util.List.get(int): java.lang.Object [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] -> java.lang.Object.getClass(): java.lang.Class -> java.lang.Object.getClass(): java.lang.Class [EXIT] [CALL] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [CALL] [CALL] [CALL] [CALL] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] [EXIT] [EXIT] -> java.util.List.contains(java.lang.Object): boolean -> java.util.List.add(java.lang.Object): boolean [EXIT] [CALL] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT]