view src/plparser/PLScanner.java @ 7:619472ca4742

Refactoring for multiple implementation of scanner
author one
date Wed, 01 Sep 2010 15:23:37 +0900
parents
children 79d492bce828
line wrap: on
line source

package plparser;

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.InputStream;
import java.io.InputStreamReader;

public interface PLScanner<Node> {

	String filename();
	int lineno();

	public Token<Node> nextToken();

	public boolean hasRemaining();

	public PLScanner<Node> pushScannerFile(InputStream newfile,	String prompt);
	PLScanner<Node> prev();
	PLScanner<Node> pushScanner(String exp);
	PLScanner<Node> pushScannerFile(String file) throws FileNotFoundException;
	PLScanner<Node> popScanner();
	public PLScanner<Node> set(String exp);

	/*
	 * Read From File
	 *    We cannot read symbol bigger than Buffersize
	 */
	public PLScanner<Node> setFile(String file)
			throws FileNotFoundException;

	public PLScanner<Node> set(InputStreamReader file);

	public void error(String err);

	public Iterable<Token<Node>> scanToken(String exp);

	public Iterable<Token<Node>> scanToken(FileReader file);

}