Статьи Галерея Форум Чат Файлы HowTo Ссылки Поиск
Текущее время: 22 окт 2019, 21:18




Начать новую тему Ответить на тему  [ Сообщений: 2 ] 
Автор Сообщение
 Заголовок сообщения: flex and C++
СообщениеДобавлено: 23 апр 2004, 23:03 
народ помогите плиз.
есть прога на С++ для консоли в которой организован ввод комманд и т.п.
надо эти комманды отлавливать с помощью flex'a(lex'a) определять че за комманда и в соответствии с этим заполнять структуру:
struct CommandStruct
{
char command[255]; //собственно комманда
int type;
char message[255];
char dest[255];
};
я пытаюсь переодпределить функцию yylex() и использовать структуру к примеру вот таким образом:

%{
#include <string.h>
#include "client_globals.h" //здесь описанна структура CommandStruct

#define YY_DECL int ScanCommand(scmd) struct CommandStruct* scmd;
YY_BUFFER_STATE newyyin;
%}

%option noyywrap
%x command
%%

newyyin= yy_scan_string(scmd->command);

"/" BEGIN(command);
<command>"send"|"s " {
scmd->type=2;
//ну и все в таком роде
return 2;

}

yy_delete_buffer(newyyin);
return 0;
%%

ну и в результате конечно ничего не работает. даже сие не может нормально откомпилироваться выдавая ошибку parser error во всех местах где идет обращение к элементам структры.

далее как это так скрестить с прогой на C++ чтобы работало вызывая функцию ScanCommand с соотв. параметром?


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 27 апр 2004, 18:57 
Надо твой лексовый файл *.l откомпилировать лексом в С-шный код. Если я не ошибаюсь, желательно также extern "C" вокруг объявлений функций. Итого получится функция yylex которую ты сможешь использовать в своих целях.


Вернуться к началу
  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 2 ] 


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
[ All resources are available under GNU GPL ] [ Support ] [ Hosted by DataHata | MyCloud.by ] [ Powered by phpBB® Forum Software © phpBB Group ]

LVEE Winter LVEE Rambler's Top100