All pastes #940200 Raw Edit

Miscellany

public java v1 · immutable
·published 2008-03-12 20:38 UTC
rendered paste body
  /**   * Checks if expr is a valid infix notation expression   * @param expr   * @return   */  public static TokenQueue checkInfix(TokenStacksQueue expr){	  int parens = 0;	  Token token;	  int operatorflag = 0;  //0 after operator, 1 after operand	  int operandflag = 1;   //0 after operand, 1 after operator	  	  for(int i = 0; i < expr.size(); i++){		  token = expr.dequeue();		  		  //  Parenthesis		  if(token.getType() == 3){			  Parenthesis paren = (Parenthesis)token;			  if(paren.isLeft()) parens++;			  else parens--;		  }		  		  //  Operator		  else if(token.getType() == 2){			  if(operatorflag == 0){				  throw new RuntimeException("Error: invalid infix notation");			  } 			  else 			  operatorflag = 0;			  operandflag = 1;		  }		  		  //  Operand		  else if(token.getType() == 1){			  if(operandflag == 0){				  throw new RuntimeException("Error: invalid infix notation");			  }			  else			  operatorflag = 1;			  operandflag = 0;		  }		  		  expr.enqueue(token);	  }	  if(parens == 0) return expr;	  else throw new RuntimeException("Error: invalid infix notation");  }