перевод английского описания c-variable в объявление переменной c-style с использованием синтаксиса BNF - PullRequest
0 голосов
/ 17 октября 2011

Здравствуйте, я пытаюсь написать грамматику, которая переводит объявление c на английском языке в объявление переменной c-style, например: «x - это массив из 10 указателей на int», «х - указатель на указатель на символ», «x - указатель на структуру типа type-struct» <-> int * x [10], символ ** х, struct type-struct * x.

Моя попытка: «{означает, что есть 0 или более элементов}»

description ::= id declaration type
declaration ::= declarator
declarator  ::= pointer|function|array
pointer     ::= pointer-to {pointer-to} function|array
array       ::= array-of-n {pointer-to}
function    ::= function-that-return {pointer-to}
type        ::= int|char|short|float...|spec-struct
spec-struct ::= struct type-struct

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

1 Ответ

0 голосов
/ 06 декабря 2012

Может быть, этого достаточно. Но я бы посоветовал вам убедиться, что ваша грамматика в порядке с помощью инструментов LEX и YACC .

...