Jeśli chodzi o interpretację składni, zmian jest niewiele. Zablokowałem możliwość tworzenia zmiennych indeksów tablic w "sekcyjnym" sposobie odwoływania się do nich: $alala.pleple.$i.most, gdyż pewnie i tak mało kto z tego korzystał. Sama możliwość $alala.pleple pozostała, lecz jest teraz traktowana jako całość, a nie rozbijana względem kropki. Dzięki temu znacznie łatwiej się wszystko parsuje. Kolejną nowością będzie zezwolenie na użycie ciągów ograniczonych pojedynczą apostrofą :)). Tyle, jeśli chodzi o samą składnię, przejdźmy do działania.
Tu zmiany są spore, bowiem nowy kompilator wyposażyłem w umiejętność analizy tego, co parsuje. Dzięki temu wychwytuje nieprawidłowe odwołania (np. dwa operatory po sobie, otwieranie czegoś nie tam, gdzie trzeba itd.), zanim jeszcze dobierze się do tego PHP. Mam nadzieję zredukować do absolutnego minimum liczbę komunikatów Parse error in eval'd code, zamiast których zgłaszane będą wyjątki, np. Unexpected token: OPCODE_FUNCTION (lower) in expression $parara->eq+"fff"lower("mamama","delee")+6 (przed wywołaniem funkcji powinien stać operator). A jako, że rodzaj poprzedniego tokenu jest identyfikowany za pomocą ogólnikowych stałych w stylu OPCODE_OPERATOR, możliwe stało się też podniesienie inteligencji kompilatora. Otóż już potrafi on rozróżnić, kiedy słowo kluczowe "add" jest operatorem, kiedy zwykłym ciągiem, a kiedy nazwą pola/metody w obiekcie.
Ogólnie całość prezentuje się już teraz nadzwyczaj dobrze. Przede mną jeszcze najtrudniejsze z zadań: detekcja, kiedy operator przypisania traci sens, ponieważ po lewej stronie nie mamy zmiennej. Jest to dość skomplikowane zagadnienie. W teorii mógłbym zabronić po prostu używania operatorów, ale dajmy na to sobie taką zmienną:
$aaa[$i+5] = 52+$b;






