public static void OBRADI_log_ili_izraz(boolean staviNaStog){
		String linija = mParser.ParsirajNovuLiniju();	
		int trenLabela = mBrojacLabela++;
		
		if (linija.equals("<log_i_izraz>")){
			OBRADI_log_i_izraz(staviNaStog);
			return;
		}
		
		if (linija.equals("<log_ili_izraz>")){
			OBRADI_log_ili_izraz(true);
			mIspisivac.DodajKod("POP R0", "log ili izraz: provjeri rani uvjet");
			mIspisivac.DodajKod("CMP R0, 1");
			mIspisivac.DodajKod("JR_EQ LIILI_KRAJ_" + trenLabela, "log ili izraz: ako je rani uvjet zadovoljen preskoci ostatak logickog izraza");
			mIspisivac.DodajKod("PUSH R0", "log ili izraz: ako nije vrati R0 na stog za daljnju obradu");
			
			linija = mParser.ParsirajNovuLiniju(); // ucitaj OP_ILI
			linija = mParser.ParsirajNovuLiniju(); // ucitaj <log_i_izraz>
			OBRADI_log_i_izraz(true);
			
			mIspisivac.DodajKod("POP R1", "log ili izraz");
			mIspisivac.DodajKod("POP R0", "log ili izraz");
			mIspisivac.DodajKod("OR R0, R1, R0", "log ili izraz");
			// makni 2 sa stoga i stavi novi ako je potrebno
			NaredbenaStrukturaPrograma.mStog.remove(NaredbenaStrukturaPrograma.mStog.size()-1);
			NaredbenaStrukturaPrograma.mStog.remove(NaredbenaStrukturaPrograma.mStog.size()-1);
			mIspisivac.PostaviSljedecuLabelu("LIILI_KRAJ_" + trenLabela);
			if (staviNaStog){
				mIspisivac.DodajKod("PUSH R0", "log ili izraz");
				Ime_Velicina_Adresa novi = new Ime_Velicina_Adresa();
				novi.mIme = null;
				novi.mAdresa = false;
				novi.mVelicina = 4;
				NaredbenaStrukturaPrograma.mStog.add(novi);
			}			
			return;
		}
	}