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