Есть правила записанные на формальном языке, типа:
ПУТЬ = ПАПКА1 \ ПАПКА2 \ ПАПКА3 ...
ПАПКА1 = А | Б | В
ПАПКА2 = ИМЯ
ИМЯ = СТРОКА_СИМВОЛОВ
СТРОКА_СИМВОЛОВ = СИМВОЛ | СИМВОЛ СТРОКА_СИМВОЛОВ
СИМВОЛ = А | Б | В | ...
ПАПКА3 = ЧИСЛО | ЧИСЛО,ПАПКА3
...
Нужно проверить конкретную строку на соответствие данному правилу.
Т.е., насколько я понимаю — это классическая задача компилятора.
Вопрос:
Существуют ли простенькие компиляторы общего назначения в виде библиотеки (класса, функции), которые бы позволяли "компилировать" (не знаю как сказать ещё) простые выражения (наподобие выше описанных).
Здравствуйте, Аноним, Вы писали:
А>Есть правила записанные на формальном языке, типа: А>ПУТЬ = ПАПКА1 \ ПАПКА2 \ ПАПКА3 ... А>ПАПКА1 = А | Б | В А>ПАПКА2 = ИМЯ А>ИМЯ = СТРОКА_СИМВОЛОВ А>СТРОКА_СИМВОЛОВ = СИМВОЛ | СИМВОЛ СТРОКА_СИМВОЛОВ А>СИМВОЛ = А | Б | В | ... А>ПАПКА3 = ЧИСЛО | ЧИСЛО,ПАПКА3 А>...
А>Нужно проверить конкретную строку на соответствие данному правилу. А>Т.е., насколько я понимаю — это классическая задача компилятора.
А>Вопрос: А>Существуют ли простенькие компиляторы общего назначения в виде библиотеки (класса, функции), которые бы позволяли "компилировать" (не знаю как сказать ещё) простые выражения (наподобие выше описанных).
Здравствуйте, Аноним, Вы писали:
А>Есть правила записанные на формальном языке, типа: А>ПУТЬ = ПАПКА1 \ ПАПКА2 \ ПАПКА3 ... А>ПАПКА1 = А | Б | В А>ПАПКА2 = ИМЯ А>ИМЯ = СТРОКА_СИМВОЛОВ А>СТРОКА_СИМВОЛОВ = СИМВОЛ | СИМВОЛ СТРОКА_СИМВОЛОВ А>СИМВОЛ = А | Б | В | ... А>ПАПКА3 = ЧИСЛО | ЧИСЛО,ПАПКА3 А>...
А>Нужно проверить конкретную строку на соответствие данному правилу. А>Т.е., насколько я понимаю — это классическая задача компилятора.
Попробуй YACC, правда, сие не простое решение, но и не особо сложное. Грамматику ты уже нарисовал.
Re[2]: Формальный язык, компилятор, ...
От:
Аноним
Дата:
28.09.06 05:49
Оценка:
T>boost::spirit уже пробовали?
С boost вообще не знаком.
Интересует, что-нибудь такое маленькое, во что можно быстро въехать.
Re[2]: Формальный язык, компилятор, ...
От:
Аноним
Дата:
28.09.06 06:15
Оценка:
D>Попробуй YACC, правда, сие не простое решение, но и не особо сложное. Грамматику ты уже нарисовал.
Почиталь, вроде мне подходит, особенно Visual Yacc.
Не могу ни где скачать, то ссылка битая, то скачивается только HLP-файл.