import rebelsky.compiler.lexer.Identifier;
import rebelsky.compiler.misc.Checker;
import rebelsky.compiler.misc.Traverser;
import rebelsky.compiler.parser.Node;

import pascal.PascalTokens;

/**
 * A traverser that counts the number of times that the identifiers
 * true and false appear in a program.
 *
 * @author Samuel A. Rebelsky
 * @version 1.0 of April 2004
 */
public class BooleanCounter
  extends Traverser
{
  int truecount = 0;
  int falsecount = 0;
  public BooleanCounter()
  {
    this.setChecker(PascalTokens.TTRUE, new Checker() {
        public void check(Traverser t, Node n) {
          ++truecount;
        } // check(Traverser, Node)
      });
    this.setChecker(PascalTokens.TFALSE, new Checker() {
        public void check(Traverser t, Node n) {
          ++falsecount;
        } // check(Traverser, Node)
      });
  } // BooleanCounter()
} // class BooleanCounter

