fatalaa

OperatorList

Apr 26th, 2012
40
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.66 KB | None | 0 0
  1. import java.util.Vector;
  2.  
  3. class Operator {
  4.     public char data;
  5.     public int precedence;
  6.     public boolean left_assoc;
  7.    
  8.     public Operator( char operator , int num , boolean assoc ) {
  9.         data = operator;
  10.         precedence = num;
  11.         left_assoc = assoc;        
  12.     }
  13. }
  14. public class OperatorList {
  15.     public static Vector<Operator> list = new Vector<Operator>();
  16.    
  17.     public static void initList() {
  18.         list.add( new Operator( '=' , 4 , false ) );
  19.         list.add( new Operator( '+' , 3 , true ) );
  20.         list.add( new Operator( '-' , 3 , true ) );
  21.         list.add( new Operator( '*' , 2 , true ) );
  22.         list.add( new Operator( '/' , 2 , true ) );        
  23.         list.add( new Operator( '!' , 1 , false ) );
  24.     }
  25.    
  26.     public static boolean isOperator( char c ) {
  27.         for(int i = 0; i < list.size(); i++ ) {
  28.             if( list.elementAt( i ).data == c ) {
  29.                 return true;
  30.             }
  31.         }
  32.         return false;
  33.     }
  34.    
  35.     public static int getOperatorPrecedence( char c ) {
  36.         for( int i = 0; i < list.size(); i++ ) {
  37.             if( list.elementAt( i ).data == c ) {
  38.                 return list.elementAt( i ).precedence;
  39.             }
  40.         }
  41.         return -1;
  42.     }
  43.    
  44.     public static boolean stronger( char act , char topstack  ) {
  45.         if( getOperatorPrecedence( act ) > getOperatorPrecedence( topstack ) ) {
  46.             return true;
  47.         }
  48.         else {
  49.             return false;
  50.         }
  51.     }
  52.    
  53.     public static void main( String[] args ) {
  54.         initList();
  55.         System.out.println( PostFix.convertInFixToPostFix("a+b*c-d") );
  56.     }
  57. }
Advertisement
Add Comment
Please, Sign In to add comment