Реализация таблицы символов

Я хочу разработать ассемблер для языка IBM360. Поэтому здесь я реализую таблицу символов pass1. Но я получаю 1 ошибку во время компиляции. Я не могу справиться с этой ошибкой. Может ли кто-нибудь помочь мне??? моя программа здесь...

import java.io.*; 
import java.lang.*; 
import java.util.*;
class Symbol
{
int s_no;
String s_name;
int s_addr;

}
class Literal
{
int literal_no;
String literal_name[];
int literal_addr;
}
class Pass1
 { 
    static String POT[]={"START","END","EQU","DC","DS","USING"};
    static String MOT[]={"L","SR","A","ST"};
    static int POTGET(String instr)
    {
        int i,t;
        for(i=0;i<6;i++)
        {
            t=instr.compareTo(POT[i]);
            if(t==0)
                return(i+1);
        }
        return -1;
    }
    static int MOTGET(String instr)
    {
        int i,t;
        for(i=0;i<4;i++)
        {
            t=instr.compareTo(MOT[i]);
            if(t==0)
                return(i+1);
        }
        return -1;
    }
    public static void main(String args[]) throws Exception 
    { 
    FileReader fr = new FileReader("program1.asm"); 
    BufferedReader br = new BufferedReader(fr); 
    String str,l; 
    String code[][]=new String[50][10];
    int N=0,i,LOC=0,n=0,j;
    System.out.println("Assembly lang program :\n--------------------------");
    while((str = br.readLine()) != null)
    {
        //System.out.println(s); 
        String codearr[]=str.split(" ");
        for(i=0;i<codearr.length;i++)
        {   code[N][i]=codearr[i];  
            System.out.println(codearr[i]);
        }
        N++;
    } 
    fr.close();int k=0;
    Symbol s[]=new Symbol[10];
    boolean flag;
    for(i=0;i<N;i++)
    {
        for(j=0;j<code[i].length;j++)
        {   

            if(code[i][j]!=null && code[i][j]!="\t")
            {
                flag=false;
                int p=POTGET(code[i][j]);
                if(p!=-1)
                    System.out.println( "found IN POT");
                else
                {
                    int m=MOTGET(code[i][j]);
                    if(m!=-1)
                        System.out.println( "found in MOT");
                    else
                        {System.out.println(code[i][j]); flag=true;}
                }
                if(flag)
                {
                if((code[i][j]!="=") && (code[i][j]=",") && (code[i][j]!="F") && (code[i][j].startsWith("\'")!=true))
                {   s[k]= new Symbol();
                    s[k++].s_name=code[i][j];   }
                }
            }
        }
    }
    for(i=0;i<k;i++)
     System.out.println(s[i].s_name);
}
}

ОШИБКА :

G:\programs>javac Pass1.java
Pass1.java:86: operator && cannot be applied to boolean,java.lang.String
                                if((code[i][j]!="=") && (code[i][j]=",") && (cod
e[i][j]!="F") && (code[i][j].startsWith("\'")!=true))
                                                     ^
1 error

программа1.asm

JOHN START 
     USING * , 15
     SR 1 , 1
     L 1 , FIVE
     A 1 , = F '7'
     ST 1 , TEMP
FIVE DC F '5'
TEMP DS 1F
END

person chinu    schedule 25.01.2014    source источник


Ответы (1)


(код[i][j]=",")

Это должно быть == или!= вместо =

Изменить: и, как отметил BackSlash, вы должны использовать .equals() для сравнения строк.

person Teresa Carrigan    schedule 25.01.2014
comment
Ну, это должно быть .equals, а не ==. - person BackSlash; 25.01.2014
comment
@TeresaCarrigan Спасибо, что поправили меня, но я все равно не получил желаемого результата. Таблица символов не отображается. - person chinu; 25.01.2014
comment
Вы просили помочь с вашей ошибкой компиляции. Мы помогли вам с ошибкой компиляции. - person Teresa Carrigan; 25.01.2014
comment
@TeresaCarrigan Я знаю, но не могли бы вы просто взглянуть на мои сомнения ?? и спасибо за вашу помощь. - person chinu; 25.01.2014
comment
@chinu Я предлагаю вам разбросать несколько строк System.out.println в коде (или, что еще лучше, использовать отладчик), чтобы определить, где код работает неправильно. После того, как вы немного сузили его, если вы все еще застряли, задайте еще один вопрос. - person Teresa Carrigan; 25.01.2014