Re: boost::spirit и структура
От: jazzer Россия Skype: enerjazzer
Дата: 14.05.09 00:34
Оценка: 3 (2)
Здравствуйте, TimurSPB, Вы писали:

TSP>Есть файл вида:


TSP>cmd1 10,20,15;cmd2 40 30 15;cmd3 2 1 15;


TSP>И массив структур вида:


TSP>
TSP>typedef struct 
TSP>{
TSP>  int CmdID;
TSP>  int x;
TSP>  int y;
TSP>  int z;
TSP>} CMD;

TSP>typedef std::vector< CMD > Commands;
TSP>




TSP>Как средствами spirit (!) заполнить Commands из такого файла?


Я бы не извращался и сделал по-простому (пишу прямо в браузере, не компилировал):
CMD tmp;
// read "cmd1 10,20,15" and store in tmp
rule<> cmd = "cmd" >> uint_p[ assign_a(tmp.CmdID) ]
                   >> uint_p[ assign_a(tmp.x) ] >> ',' 
                   >> uint_p[ assign_a(tmp.y) ] >> ',' 
                   >> uint_p[ assign_a(tmp.z) ];
// read "cmd1;cmd2..." and put everything to Commands мусещк
rule<> commands = list_p( cmd[ push_back_a(Commands, tmp) ], ';' );

потом скорми
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.