public static void OBRADI_naredba_petlje(){
		String linija = mParser.ParsirajNovuLiniju();
		UniformniZnak uz = UniformniZnak.SigurnoStvaranje(linija);
		int trenLabela = mBrojacLabela++;
		
		// while petlja ??
		if (uz != null && uz.mNaziv.equals("KR_WHILE")){
			linija = mParser.ParsirajNovuLiniju(); // ucitaj L_ZAGRADA
			linija = mParser.ParsirajNovuLiniju(); // ucitaj <izraz>
			
			mIspisivac.PostaviSljedecuLabelu("NP_UVIJET_" + trenLabela);
			Izrazi.OBRADI_izraz(true);
			mIspisivac.DodajKod("POP R0", "while naredba: skini izraz (uvijet) sa stoga");
			mStog.remove(mStog.size() - 1);
			mIspisivac.DodajKod("CMP R0, 0", "while naredba: provjeri ako je izraz jednak 0");
			mIspisivac.DodajKod("JR_EQ NP_KRAJ_" + trenLabela, "while naredba: ako je onda izadji iz petlje");
			linija = mParser.ParsirajNovuLiniju(); // ucitaj D_ZAGRADA
		
			// sad tijelo petlje
			PetljaUKodu petlja = new PetljaUKodu();
			petlja.mVelicinaStoga = mStog.size();
			petlja.mLabelaKraj = "NP_KRAJ_" + trenLabela;
			petlja.mLabelaUvijetIliKorak = "NP_UVIJET_" + trenLabela;
			mStogPetlji.add(petlja);
			linija = mParser.ParsirajNovuLiniju(); // ucitaj <naredba>
			OBRADI_naredba();
			mIspisivac.DodajKod("JR NP_UVIJET_" + trenLabela, "while naredba: povratak na uvijet petlje");
			mIspisivac.PostaviSljedecuLabelu("NP_KRAJ_" + trenLabela);
			return;
		}
		
		// for petlja ??
		if (uz != null && uz.mNaziv.equals("KR_FOR")){
			linija = mParser.ParsirajNovuLiniju(); // ucitaj L_ZAGRADA
			linija = mParser.ParsirajNovuLiniju(); // ucitaj <izraz_naredba>1
			OBRADI_izraz_naredba(false);
			
			// provjera
			mIspisivac.PostaviSljedecuLabelu("NP_UVIJET_" + trenLabela);
			linija = mParser.ParsirajNovuLiniju(); // ucitaj <izraz_naredba>2
			OBRADI_izraz_naredba(true);
			
			mIspisivac.DodajKod("POP R0", "for naredba: skini izraz (uvijet) sa stoga");
			mStog.remove(mStog.size() - 1);
			mIspisivac.DodajKod("CMP R0, 0", "for naredba: provjeri ako je izraz jednak 0");
			mIspisivac.DodajKod("JR_EQ NP_KRAJ_" + trenLabela, "for naredba: ako je onda izadji iz petlje");
			mIspisivac.DodajKod("JR NP_DALJE_" + trenLabela, "for naredba: ako nije onda preskoci dio koda koraka petlje");
			
			linija = mParser.ParsirajNovuLiniju(); // ucitaj D_ZAGRADA ili <izraz>
			Boolean imaKorak;
			if (linija.equals("<izraz>")){
				imaKorak = true;
				mIspisivac.PostaviSljedecuLabelu("NP_KORAK_" + trenLabela);
				Izrazi.OBRADI_izraz(false);
				mIspisivac.DodajKod("JR NP_UVIJET_" + trenLabela, "for naredba: nakon koraka skoci na uvijet za provjeru");
				linija = mParser.ParsirajNovuLiniju(); // ucitaj D_ZAGRADA
				
				// sad tijelo petlje
				PetljaUKodu petlja = new PetljaUKodu();
				petlja.mVelicinaStoga = mStog.size();
				petlja.mLabelaKraj = "NP_KRAJ_" + trenLabela;
				petlja.mLabelaUvijetIliKorak = "NP_KORAK_" + trenLabela;
				mStogPetlji.add(petlja);
				mIspisivac.PostaviSljedecuLabelu("NP_DALJE_" + trenLabela);
				linija = mParser.ParsirajNovuLiniju(); // ucitaj <naredba>
				OBRADI_naredba();
			}
			else{ // it must be D_ZAGRADA
				imaKorak = false;
				
				// sad tijelo petlje
				PetljaUKodu petlja = new PetljaUKodu();
				petlja.mVelicinaStoga = mStog.size();
				petlja.mLabelaKraj = "NP_KRAJ_" + trenLabela;
				petlja.mLabelaUvijetIliKorak = "NP_UVIJET_" + trenLabela;
				mStogPetlji.add(petlja);
				mIspisivac.PostaviSljedecuLabelu("NP_DALJE_" + trenLabela);
				linija = mParser.ParsirajNovuLiniju(); // ucitaj <naredba>
				OBRADI_naredba();
			}
			if (imaKorak){
				// povratak na korak petlje
				mIspisivac.DodajKod("JR NP_KORAK_" + trenLabela, "for naredba: povratak na korak petlje");
			}else{
				// povratak na uvijet petlje
				mIspisivac.DodajKod("JR NP_UVIJET_" + trenLabela, "for naredba: povratak na uvijet petlje");
			}
			
			mIspisivac.PostaviSljedecuLabelu("NP_KRAJ_" + trenLabela);
			return;
		}
	}