Показать сообщение отдельно
Старый 23.09.2010, 14:35   #5
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Интерпретатор JavaScript-подобного языка

Сообщение от Randomize Посмотреть сообщение
По идее на endline не нужно обращать внимания.
Вернее правильно его заменять на пробел перед разбором.
Допустим:
/*немного магии*/ x=(y); y=(y); x=(y); 
Ну такой код будет правильно разобран при нахождении ";". Вообще подумаю, первый мой недоинтерпретатор был с немного бэйсикоподобным синтаксисом. Пока да, не могу придумать примера, в котором необходимо знать о конце строки. Убрать всегда можно

upd: вспоминая о minified версиях js-скриптов получается что точно не нужно обращать внимания. Спасибо за совет. А заменять на пробел нет необходимости. Пробелы, табуляции и перевод каретки игнорируются. Будут игнорироваться и переводы строк

Меня вот больше всего пугает семантический анализ. И думаю стоит ли его делать... возможно будет правильным в интерпретаторе эту функцию возложить на операторы, при выполнении которых будет выполняться проверка...

Кстати есть у кого идеи по поводу того, в какой момент ловить операцию смены знака (там где унарный оператор "-"). Я раньше получая формулу просматривал все операторы "-" и менял их на "±" если перед ними стояла открывающая скобка/другой оператор, разделитель и т.д. Может есть другие способы это определить.

PS: для разбора формул использую ОПН. Кстати подумалось о других унарных операторах... надо бы какой-то метод надежный для их определения... и еще не знаю как реализовать ++i и i++
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием