protected BlockTokenizer getTokenizer() { if (fTokenizer == null) { fTokenizer = new XMLTokenizer(); } return fTokenizer; }
/** * user method */ public final void beginBlockTagScan(String newTagName) { beginBlockMarkerScan(newTagName, BLOCK_TEXT); } /**
private final boolean isBlockMarker(String tagName) { if (!fIsBlockingEnabled) return false; return containsTagName(tagName); } /**
/** * user method * does a lookahead for the current tag name */ private final String doBlockTagScan() throws IOException { fIsCaseSensitiveBlocking = getBlockMarkerCaseSensitivity(); return doScan("</" + fCurrentTagName, true, getBlockMarkerContext(fCurrentTagName), YYINITIAL, YYINITIAL); } /**
yychar+= yylength(); if ( yy_advance() == '\n' ) yyline--; if ( !yy_atEOF ) yy_currentPos--; yy_input = yy_advance(); fStateStack.push(yystate()); yybegin(ST_CDATA_TEXT); return XML_CDATA_OPEN; yybegin(ST_XML_ELEMENT_DECLARATION); return XML_ELEMENT_DECLARATION; yybegin(ST_XML_ATTLIST_DECLARATION); return XML_ATTLIST_DECLARATION; yybegin(ST_XML_DOCTYPE_DECLARATION); return XML_DOCTYPE_DECLARATION; yybegin(ST_XML_DOCTYPE_ID_PUBLIC); return XML_DOCTYPE_EXTERNAL_ID_PUBLIC; yybegin(ST_XML_DOCTYPE_ID_SYSTEM); return XML_DOCTYPE_EXTERNAL_ID_SYSTEM; yybegin(ST_DHTML_ATTRIBUTE_NAME); return XML_TAG_NAME;
context = primGetNextToken(); if (context == XML_TAG_NAME) { if(containsTagName(yy_buffer, yy_startRead, yy_markedPos-yy_startRead)) fCurrentTagName = yytext(); else fCurrentTagName = null; textLength = length = yylength(); if (yy_atEOF) { fTokenCount++; f_context = primGetNextToken(); if (f_context == XML_TAG_NAME) { if(containsTagName(yy_buffer, yy_startRead, yy_markedPos-yy_startRead)) fCurrentTagName = yytext(); else fCurrentTagName = null; fBufferedLength = yylength(); fShouldLoadBuffered = true; if (fBufferedContext == WHITE_SPACE) {
/** * user method * */ public BlockTokenizer newInstance() { XMLTokenizer newInstance = new XMLTokenizer(); // global tagmarkers can be shared; they have no state and // are never destroyed (e.g. 'release') for(int i = 0; i < fBlockMarkers.size(); i++) { BlockMarker blockMarker = (BlockMarker) fBlockMarkers.get(i); if(blockMarker.isGlobal()) newInstance.addBlockMarker(blockMarker); } return newInstance; } /* user method */
/** * user method - skeleton.sed * * Return ALL of the regions scannable within the remaining text * Note: for verification use */ public final List getRegions() { List tokens = new ArrayList(); ITextRegion region = null; try { region = getNextToken(); while(region != null) { if (region != null) { tokens.add(region); } region = getNextToken(); } } catch (StackOverflowError e) { Logger.logException(getClass().getName()+": input could not be tokenized correctly at position " + getOffset(), e);//$NON-NLS-1$ throw e; } catch (Exception e) { // Since this is convenience method and NOT the recommended // way of getting tokens, many errors are simply hidden Logger.logException("Exception not handled retrieving regions: " + e.getLocalizedMessage(), e);//$NON-NLS-1$ } return tokens; } /**
/** * user method * * A generic lookahead-like operation */ private final String doBlockScan(String target, String targetContext, int immediateFallbackState) throws IOException { return doScan(target, false, targetContext, immediateFallbackState, immediateFallbackState); } /**
public boolean getBlockMarkerCaseSensitivity() { return getBlockMarkerCaseSensitivity(fCurrentTagName); } /* user method */
public String getBlockMarkerContext() { return getBlockMarkerContext(fCurrentTagName); } /* user method */
private final String scanXMLCommentText() throws IOException { // Scan for '-->' and return the text up to that point as // XML_COMMENT_TEXT unless the string occurs IMMEDIATELY, in which // case change to the ST_XML_COMMENT_END state and return the next // context as usual. return doScan("-->", false, XML_COMMENT_TEXT, ST_XML_COMMENT_END, ST_XML_COMMENT_END); }
/** * user method */ public final void addBlockMarker(BlockMarker marker) { if(containsTagName(marker.getTagName())) return; fBlockMarkers.add(marker); } /**