Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2009.10.11;
Скачать: [xml.tar.bz2];

Вниз

Ткните носом в БНФ грамматику языка Pascal.   Найти похожие ветки 

 
pasha_golub ©   (2009-08-05 16:34) [40]


> Игорь Шевченко ©   (05.08.09 16:32) [39]


> ообще-то это эквивалентные выражения, если что. Код-то должен
> одинаковый генерироваться

Код - да. Дерево разбора разное.


 
Игорь Шевченко ©   (2009-08-05 16:42) [41]

pasha_golub ©   (05.08.09 16:34) [40]


> Дерево разбора разное.


<exrp> ::= "(" <expr> ")"

вроде как нетерминал один и тот же ?


 
pasha_golub ©   (2009-08-05 16:50) [42]

Да, я это и имел ввиду.

То есть надо будет бежать по дереву и сравнивать (по двум даже). А это уже нетривиально, однако.

Примеров множество, это и использование операторов вместе с нейтральными операндами по отношению к оным (some + 0, some * 1), это и использование излишней информации (SELECT somefield AS somename vs SELECT somefield), и использование пустых операторов и прочее.


 
Игорь Шевченко ©   (2009-08-05 17:02) [43]

pasha_golub ©   (05.08.09 16:50) [42]

Я в свое время (лет 12 назад) делал SQL-движок, натурально с парсером и с механизмом выполнения. Насколько я помню, такого рода выражения

> (some + 0, some * 1)


минимизировались после проверки типов (глупо строковое поле умножать на 1), а скобки убирались на этапе разбора.

В итоге механизму выполнения поступало уже минимизированное дерево.

Собстна от разборщика паскаля хотелось бы такого же (можно без контроля типов - для этого компилятор имеется), но и приведением выражений в скобках в эквивалентную бесскобочную форму.


 
Inovet ©   (2009-08-05 17:22) [44]

> [42] pasha_golub ©   (05.08.09 16:50)
> То есть надо будет бежать по дереву и сравнивать (по двум
> даже). А это уже нетривиально, однако.
>
> Примеров множество, это и использование операторов вместе
> с нейтральными операндами по отношению к оным (some + 0,
> some * 1), это и использование излишней информации (SELECT
> somefield AS somename vs SELECT somefield), и использование
> пустых операторов и прочее.

Вначале привести оба к одному виду: раскрыть скобки привести подобные, оптимизировать *0, *1, +0, и т.п.. Это что выражений касается, тоже видимо и с кострукциями.


 
pasha_golub ©   (2009-08-06 11:38) [45]


> Игорь Шевченко ©   (05.08.09 17:02) [43]


> Собстна от разборщика паскаля хотелось бы такого же

Да, конечно. Если это специализированный разборщик, то сам Бг велел. А у меня просто разборщик, строящий дерево.



Страницы: 1 2 вся ветка

Форум: "Прочее";
Текущий архив: 2009.10.11;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.52 MB
Время: 0.006 c
15-1249989451
TUser
2009-08-11 15:17
2009.10.11
Экзопланеты и другие астрономические открытия


15-1249582655
TUser
2009-08-06 22:17
2009.10.11
Комнатное растение никому не надо?


1-1219569740
dmitry_12_08_73
2008-08-24 13:22
2009.10.11
Помогите, плиз, с нахождением под курсором Handle любого окна


15-1248075284
xayam
2009-07-20 11:34
2009.10.11
Настройка Apache, htaccess


6-1207760203
Uni
2008-04-09 20:56
2009.10.11
Многопоточная загрузка Indy FTP





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский