源码:
Script script = m_script; int iLine = script.getLine(); int ofInLine = script.getOffset(); try { ParsePosition pos; String sData; if(script.nextChar() == '<') { switch(script.nextChar()) { case 47: // '/' m_nCtx = 5; return new XmlToken(XmlToken.TOK_ENDTAG_START, iLine, ofInLine, script.getOffset() - ofInLine); case 63: // '?' m_nCtx = 4; return new XmlToken(XmlToken.TOK_PI_START, iLine, ofInLine, script.getOffset() - ofInLine); case 33: // '!' switch(script.nextChar()) { case 45: // '-' match('-'); m_nCtx = 3; return new XmlToken(XmlToken.TOK_COMMENT_START, iLine, ofInLine, script.getOffset() - ofInLine); case 91: // '[' match("CDATA["); pos = script.savePosition(); scan("]]>"); sData = script.subScript(pos).toString(); script.nextChar(); script.nextChar(); script.nextChar(); return new XmlToken(2, 4, 4, sData, sData, iLine, ofInLine, script.getOffset() - ofInLine); case 68: // 'D' script.putBackChar(); match("DOCTYPE"); m_nCtx = 2; return new XmlToken(XmlToken.TOK_DOCTYPE_START, iLine, ofInLine, script.getOffset() - ofInLine); } script.putBackChar(); match('-'); throw internalError(); } script.putBackChar(); m_nCtx = 5; return new XmlToken(XmlToken.TOK_ELEMENT_START, iLine, ofInLine, script.getOffset() - ofInLine); } script.putBackChar(); pos = script.savePosition(); while(script.nextChar() != '<') ; script.putBackChar(); sData = script.subScript(pos).toString(); return new XmlToken(2, 4, 3, sData, sData, iLine, ofInLine, script.getOffset() - ofInLine); } catch(EOFException e) { logError(3, "XT-002", null, script.getLine(), script.getOffset(), 0); throw new CompilerException(); } catch(IOException e) { logError(3, "XT-003", new String[] { e.toString() }, script.getLine(), script.getOffset(), 0); } throw new CompilerException();
Script script; int iLine; int ofInLine; script = m_script; iLine = script.getLine(); ofInLine = script.getOffset(); if(script.nextChar() != '<') goto _L2; else goto _L1 _L1: script.nextChar(); JVM INSTR lookupswitch 3: default 330 // 33: 124 // 47: 72 // 63: 98; goto _L3 _L4 _L5 _L6 _L5: m_nCtx = 5; return new XmlToken(XmlToken.TOK_ENDTAG_START, iLine, ofInLine, script.getOffset() - ofInLine); _L6: m_nCtx = 4; return new XmlToken(XmlToken.TOK_PI_START, iLine, ofInLine, script.getOffset() - ofInLine); _L4: script.nextChar(); JVM INSTR lookupswitch 3: default 313 // 45: 164 // 68: 275 // 91: 196; goto _L7 _L8 _L9 _L10 _L8: match('-'); m_nCtx = 3; return new XmlToken(XmlToken.TOK_COMMENT_START, iLine, ofInLine, script.getOffset() - ofInLine); _L10: String sData; match("CDATA["); ParsePosition pos = script.savePosition(); scan("]]>"); sData = script.subScript(pos).toString(); script.nextChar(); script.nextChar(); script.nextChar(); return new XmlToken(2, 4, 4, sData, sData, iLine, ofInLine, script.getOffset() - ofInLine); _L9: script.putBackChar(); match("DOCTYPE"); m_nCtx = 2; return new XmlToken(XmlToken.TOK_DOCTYPE_START, iLine, ofInLine, script.getOffset() - ofInLine); _L7: script.putBackChar(); match('-'); throw internalError(); _L3: script.putBackChar(); m_nCtx = 5; return new XmlToken(XmlToken.TOK_ELEMENT_START, iLine, ofInLine, script.getOffset() - ofInLine); _L2: script.putBackChar(); ParsePosition pos = script.savePosition(); while(script.nextChar() != '<') ; script.putBackChar(); sData = script.subScript(pos).toString(); return new XmlToken(2, 4, 3, sData, sData, iLine, ofInLine, script.getOffset() - ofInLine); EOFException e; e; logError(3, "XT-002", null, script.getLine(), script.getOffset(), 0); throw new CompilerException(); e; logError(3, "XT-003", new String[] { e.toString() }, script.getLine(), script.getOffset(), 0); throw new CompilerException();