Здравствуйте, я пытаюсь написать грамматику, которая переводит объявление 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
Я хочу знать, подходит ли эта грамматика для создания анализатора рекурсивного спуска.
Спасибо.