Téma: [vyřešeno] i++ ve výrazu je vyhodnoceno chybně
Doufám že někdo nenabyde dojmu že jsem nějaký hnidopich ![]()
Ale je tu další ze série chyb v kompileru, tentokrát chyba v parsování inkrementu / dekrementu:
Tohle funguje v pohodě:
i++;Ovšem tohle ne:
var i;
task
{
i = 1;
task_loop_1:
echo('Looping.');
if (i++ <= 5 ) goto task_loop_1;
}Nic netušící uživatel si sestaví for smyčku (která z nejasných důvodů v implementaci chybí), a dostane while smyčku, a to nekonečnou. Paráda, co?
Kompiler tohle "i++" interpretuje jako "i + +" (tak ale interpretuje i normální "i++;". Proč to tedy nevyhodnocuje je mi záhadou, nicméně v simulátoru je vidět jak "i" zůstává na jedničce a text se vypisuje stále dál.
Prosím o opravení, podobně jako ty další chyby. (Pokud se o "jazyk" SDS-C ještě někdo stará)