/* * 03/23/2005 * * AbstractJFlexTokenMaker.java - Base class for token makers generated from * programs such as JFlex. * * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea; import javax.swing.text.Segment; /** * Base class for JFlex-generated token makers. This class attempts to factor * out all common code from these classes. Many methods <em>almost</em> could * be factored out into this class, but cannot because they reference JFlex * variables that we cannot access from this class. * * @author Robert Futrell * @version 0.1 */ public abstract class AbstractJFlexTokenMaker extends TokenMakerBase { protected Segment s; protected int start; // Just for states. protected int offsetShift; // As parser always starts at 0, but our line doesn't. /** * Declared here so we can define overloads that refer to this method. * * @param newState The new JFlex state to enter. */ public abstract void yybegin(int newState); /** * Starts a new JFlex state and changes the current language index. * * @param state The new JFlex state to enter. * @param languageIndex The new language index. */ protected void yybegin(int state, int languageIndex) { yybegin(state); setLanguageIndex(languageIndex); } }