The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Kdevelop & flex & bison"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"Kdevelop & flex & bison"  
Сообщение от JetBird email(??) on 20-Мрт-07, 19:42 
На сайте у них сказано, что все поддерживается на ура. Добавил в проект два файла: lex.l и calc.y. В configure.in я написал AM_PROG_LEX и AC_PROG_YACC. Далее запускаем configure & autoсonf. Все нормально. Но при компиляции как lex.l, так и calc.y транслируются в lex.c и calc.c и компилируются по отдельности!!! Естественно, что lex.c, в котором полно строчек вроде:

else { return TOKEN_ELSE; }
while { return TOKEN_WHILE; }
for { return TOKEN_FOR; }
do { return TOKEN_DO; }
var { return TOKEN_VAR; }

и других, определенных в calc.y как

%token TOKEN_ELSE // (и др.)

выдает массу ошибок TOKEN_ELSE undeclared (...)

Те же lex.l и calc.y прекрасно компилируются консольными командами

flex lex.l
bison calc.y
g++ calc.tab.c -ly -lfl

(или как-то так).

Может, можно вынести определения токенов в отдельный заголовочный файл, включаемый в lex.l, чтобы kdevelop его захавал?

Но тогда как быть с calc.y, где они определены ключевыми %token ?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени, UBB]


1. "Kdevelop & flex & bison"  
Сообщение от vic (??) on 22-Мрт-07, 01:47 
вот один из рецептов.

0. man + посмотреть как сделано в других проектах.
1. бизону дай ключик -d это заставит его сгенирировать еще и хидер (calc.h), где и будут автоматом токены задефайнены.
2. в файле lex.l в начало вбей: #include "calc.h"
3. проследи чтобы порядок компиляции в makefile был следующий - сначала bison, затем lex потом остальное. Иначе если calc.h не сгенерен lex выдаст ошибку.

p.s. у меня в одном из проектов для automake прописано:
AM_LFLAGS = -8 # enable 8-bit scanner for lex!
AM_YFLAGS = -d


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру