/* GeoGebra - Dynamic Mathematics for Everyone http://www.geogebra.org This file is part of GeoGebra. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation. */ package org.geogebra.desktop.gui.editor; import java.io.IOException; import javax.swing.text.Document; /** * * @author Calixte Denizet * */ public abstract class Lexer { public int start; /** * Set the range to parse * * @param start * the start * @param end * the end */ public abstract void setRange(int start, int end); /** * Get the actual position in the parsed reader * * @return the position */ public abstract int yychar(); /** * Get the length of the matched token * * @return the length */ public abstract int yylength(); /** * Get the token's identifier * * @return the id */ public abstract int scan() throws IOException; /** * Get the keyword at the current position * * @param position * where to search * @param strict * if true then the keyword is searched just after position * @return the keyword id */ public abstract int getKeyword(int position, boolean strict); /** * Set the document in the lexer * * @param doc * the document */ public abstract void setDocument(Document doc); }