Поиск полного синтаксиса Delphi (объект pascal)

Мне нужен полный синтаксис Object Pascal (желательно Delphi 2009). Некоторые синтаксисы задаются файлами справки, но не вся информация предоставляется. Поэтому я начал собирать лишние фрагменты информации. Недавно я добавил их к более или менее полному описанию синтаксиса (например, EBNF).

Хотя он выглядит обширным, все еще есть ошибки, и я уверен, что части отсутствуют (особенно в синтаксисе .NET). Поэтому я спрашиваю сообщество SO Delphi. У вас есть какая-либо информация или вы можете исправить ошибки? В свою очередь я предоставляю полный синтаксис сообществу. Это, вероятно, сэкономит вам некоторое время;-). В будущем мне нравится делать то же самое для других языков (например, С#/С++/Java).

Ниже приведено описание синтаксиса: Мой синтаксис sofar. Или, если вам нравится Текстовая версия. (XHTML генерируется из текстовой версии).

Обратите внимание, что синтаксис фокусируется на синтаксической части, потому что лексическая часть не является проблемой.

Обновление

У меня есть новая версия синтаксиса Delphi. html версия. Он включает в себя все версии, включая 2009 год. Экстремалы Призм все еще находятся в списке задач. И я не уверен, что собираюсь держать их вместе.

Для реальных пуристов он также содержит полный код ассемблера (который не поддерживает полный 100% набора Intel, но только несколько инструкций пропущены.).

Ответ 1

Попробуйте следующее: DGrok - грамматика Delphi

Ответ 2

В Delphi нет полного опубликованного синтаксиса. Имейте в виду, что .net и win32 delphi имеют разные синтаксисы.

В этом проекте есть собственный парсер Delphi. И множество тестовых примеров кода, который компилируется, но подталкивает пределы синтаксиса.

Ответ 3

Это может быть хорошей помощью. Это parser, используемый в TwoDesk Castalia.

Ответ 4

Какие именно ошибки и функциональные возможности вам не хватает?

При сканировании вашего документа кажется, что вы смешиваете синтаксис и семантику. Я не понимаю, почему отличать SimpleTypeFloat и SimpleTypeOrdinal от синтаксического уровня или приоритет кода оператора как синтаксическую функцию в AddOp и MulOp. true, false, nil - это идентификаторы, как и любое имя переменной, которую вы выберете.

Ответ 5

Громкость Delphi 7 находится в задней части книги Object Pascal.

Ты имеешь в виду за несколько тысяч долларов, которые они тебе даже не посылают? Они даже отправляют вам постер 6 'x 6'?

Ответ 6

Вы всегда можете прочитать источник в Free Pascal Compiler. Он поддерживает Object Pascal.