CalculatorTokenizer.java
|
import java.io.*; import java.util.Date; import ilog.language.syntax.*; import ilog.language.io.StreamTokenizer; public class CalculatorTokenizer implements Tokenizer { BufferedReader reader; StreamTokenizer input; String file = "stdin"; CalculatorTokenizer () throws IOException { setReader(new InputStreamReader(System.in)); interactive = true; banner(); prompt(); } CalculatorTokenizer (File file) throws IOException { setReader(new FileReader(file)); interactive = false; banner(); System.out.println("*** Parsing file: "+file); } CalculatorTokenizer (String s) throws IOException { setReader(new StringReader(s)); interactive = false; } public final int lineNumber() { return input.getLineNumber(); } public final void setReader (Reader rd) { reader = new BufferedReader(rd); input = new StreamTokenizer(reader); input.ordinaryChars("+-/"); input.wordChars('_','_'); } public final Reader getReader () { return reader; } public static boolean interactive; static String promptString = ">"; public static final void prompt() { System.out.print(promptString+" "); } static public final void setPrompt(String p) { promptString = p; } static String banner = "*** Welcome to the number calculator!\n"+ "*** Version of "+ (new Date()); public static final void banner () { System.out.println(banner); } final ParseNode locate (ParseNode node) { return ((ParseNode)node.setStart(input.tokenStart).setEnd(input.tokenEnd)) .setFile(file); } public ParseNode nextToken() throws IOException { ParseNode t = null; int token = input.nextToken(); switch (token) { case StreamTokenizer.TT_EOF: reader.close(); t = GenericParser.E_O_I; break; case StreamTokenizer.TT_WORD: if (input.sval == "exit") t = GenericParser.literalToken("exit"); else t = GenericParser.symbolToken("IDENTIFIER",input.sval); break; case StreamTokenizer.TT_NUMBER: t = GenericParser.numberToken("NUMBER",input.nval); break; default: char c = (char)token; t = GenericParser.literalToken(String.valueOf(c)); break; } return locate(t); } }
This file was generated on Mon Dec 20 19:03:12 PST 2004 from file CalculatorTokenizer.java
by the ilog.language.tools.Hilite Java tool written by Hassan Aït-Kaci