`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