// DO NOT EDIT BY HAND - THIS FILE IS GENERATED BY de.bb.bex.B2J!
// (c) by BebboSoft 1999-2000

import java.io.BufferedReader;
import java.io.Writer;
class Calc1Lex extends Calc1 {
  public void __init() {
    __wordInit = wordInit;
    String xalpha = "";
    for (int i = 0; i < xalpha.length(); ++i)
      alpha[xalpha.charAt(i)] = true;
  }
  private final static int ID_1 = 1; // +
  private final static int ID_2 = 2; // -
  private final static int ID_3 = 3; // *
  private final static int ID_4 = 4; // /
  private final static int ID_5 = 5; // ^
  boolean isExpression() throws Exception
  {
    push();
    L1:
    {
      if (!isNumber()) break L1;
      isExpression$1();
      drop();
      return true;
    }
    pop();
    return false;
  }
  boolean isExpression$1() throws Exception
  {
    push();
    L1:
    {
      if (!isExpression$2()) break L1;
      if (!isExpression()) break L1;
      drop();
      return true;
    }
    pop();
    return false;
  }
  boolean isExpression$2() throws Exception
  {
    push();
    L1:
    {
      if (token != ID_1) break L1;
      next();
      drop();
      return true;
    }
    pop_push();
    L2:
    {
      if (token != ID_2) break L2;
      next();
      drop();
      return true;
    }
    pop_push();
    L3:
    {
      if (token != ID_3) break L3;
      next();
      drop();
      return true;
    }
    pop_push();
    L4:
    {
      if (token != ID_4) break L4;
      next();
      drop();
      return true;
    }
    pop_push();
    L5:
    {
      if (token != ID_5) break L5;
      next();
      drop();
      return true;
    }
    pop();
    return false;
  }
  private final static String wordInit[] = {
    "+",
    "-",
    "*",
    "/",
    "^",
  };
  public boolean __run() throws Exception {
    return isExpression();
  }

  public static void main(String args[]) {
    Calc1Lex _x_ = null;
    try {
       _x_ = new Calc1Lex();
       boolean f = _x_.run(args);
       if (!f || _x_.token != -1)
         _x_.unexpected();
    } catch (Exception e) {
      System.out.println("error: " + e.toString() + _x_.lineInfo());
    }
  }
}

