{"issue":{"created_at":"2011-11-19T16:33:41Z","state":"closed","updated_at":"2011-11-21T06:35:01Z","user":{"gravatar_id":"809271d0c0cadc86b9eabe632d7b9aac","id":288006,"url":"https://api.github.com/users/elbiczel","login":"elbiczel","avatar_url":"https://secure.gravatar.com/avatar/809271d0c0cadc86b9eabe632d7b9aac?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"comments":5,"body":"","assignee":null,"id":2288798,"pull_request":{"patch_url":"https://github.com/tomwys/mrjp-tests/pull/2.patch","html_url":"https://github.com/tomwys/mrjp-tests/pull/2","diff_url":"https://github.com/tomwys/mrjp-tests/pull/2.diff"},"number":2,"labels":[],"title":"Testy na porównania i trochę złych semantycznie programów.","closed_at":"2011-11-20T12:39:50Z","html_url":"https://github.com/tomwys/mrjp-tests/issues/2","milestone":null,"url":"https://api.github.com/repos/tomwys/mrjp-tests/issues/2"},"action":"created","comment":{"created_at":"2011-11-21T06:35:01Z","updated_at":"2011-11-21T06:35:01Z","user":{"gravatar_id":"cc30327ca43cfe13689fcc74e4dd6098","id":255939,"url":"https://api.github.com/users/tomwys","login":"tomwys","avatar_url":"https://secure.gravatar.com/avatar/cc30327ca43cfe13689fcc74e4dd6098?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"body":"Semantyka, którą przyjąłeś wydaje się poprawna, ale jest bardzo nieelegancka. Powód do tego jest taki, że dodałeś dodatkową regułę semantyczną o następującej treści:\r\n\r\n    wszystko co jest pod ifem/whilem jest obejmowane w \"dodatkowy\" blok\r\n\r\ntylko po to, żeby obsłużyć *jeden* przypadek specjalny, który w dodatku jest patologiczny (tworzy nieużytą zmienną).\r\n\r\nZ drugiej strony klasycznie się do tego tak podchodzi:\r\n\r\n    INSTRUKCJA := możliwe instrukcje (w tym BLOK)\r\n    DEKLARACJA := możliwe deklaracje\r\n\r\n    BLOK := (INSTRUKCJA + DEKLARACJA)*\r\n    IF := \"if\"\"(\"WYRAŻENIE\")\" INSTRUKCJA\r\n\r\nPrzy takiej gramatyce `if(true) int a;` nie jest nawet syntaktycznie poprawne.\r\n\r\nPodsumowując:\r\n\r\n* przemyśl ponownie sprawę, może będziesz chciał zmienić swoją semantykę\r\n* jeżeli zależy Ci na usunięciu tego testu, mogę to zrobić (przeniosę go do mojego prywatnego repozytorium, testów, które są tylko dla mojej implementacji)","id":2811697,"url":"https://api.github.com/repos/tomwys/mrjp-tests/issues/comments/2811697"}}