Проверка синтаксиса с неподдерживаемыми языками - PullRequest
2 голосов
/ 04 апреля 2011

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

gcc -c -gnats <file>

Тем не менее, это говорит о том, что блок компиляции ожидается. Я попробовал несколько вариантов этого, но безрезультатно.

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

Есть ли какой-нибудь способ включить дополнительный неподдерживаемый язык в gcc без повторной компиляции? Кроме того, это просто файл, который подробно описывает gcc, каковы синтаксические конструкции, или что будет влечет за собой? Мне не нужна полная компиляция, только проверка синтаксиса.

Альтернативно, есть ли какие-либо средства проверки синтаксиса, которые я могу использовать, чтобы я мог обновить проверку синтаксиса ada небольшим количеством изменений, необходимых для этого языка?

Я перечислил Ada в качестве тега, поскольку синтаксис почти идентичен, и поиск того, что будет выполнять проверку синтаксиса ada без компиляции, будет для меня на 90% решением.

1 Ответ

3 голосов
/ 04 апреля 2011

Вы можете сначала попробовать запустить файлы через gnatchop.Компилятор GCC Ada довольно уникален тем, что ожидает совпадения имен файлов с именами основных блоков внутри файла.Это может быть то, что пытается сообщить ваше сообщение об ошибке.

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

Другой вариант, который может вас заинтересовать - OpenToken .Это инструментарий создания парсера, написанный на Ada, который позволяет вам довольно легко создавать свои собственные парсеры.Он поставляется с распознавателем синтаксиса для Ada, так что вы можете просто настроить его под свои нужды.

...