package pascal;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.InputStreamReader;

import rebelsky.compiler.misc.AdvCharStream;
import rebelsky.compiler.misc.StandardCharStream;
import rebelsky.compiler.lexer.TokenStream;
import rebelsky.compiler.lexer.TokenStreamTester;

/**
 * A simple test of the PacalTokenizer.  Given a file name
 * specified on the command line, prints out all the tokens
 * in that file.
 *
 * @author Samuel A. Rebelsky
 * @version 1.0 of April 2004
 */
public class TestPT
{
  public static void main(String[] args)
    throws Exception
  {
    String fname;
    InputStreamReader isr;
  
    // No parameters: Read from standard input
    if (args.length == 0) {
      System.out.print("Reading Pascal from stdin.\n");
      isr = new InputStreamReader(System.in);
    } // read from stdin
    else 
      isr = new FileReader(args[0]);

    // Create the character stream
    AdvCharStream acs =
      new AdvCharStream(
        new StandardCharStream(
          new BufferedReader(
            isr)));

    // Create the tokenizer
    TokenStream tokenizer = new PascalTokenizer(acs);

    // Dump the stream.
    TokenStreamTester.dump(tokenizer);
  } // main(String[])
} // class TestPT

