/* * ioctl test */ void ioctl_test(void) { unsigned int key; unsigned int val; sub_list(); while (1) { key = getchar(); if (key == 'q') break; switch (key) { case '1' : val = 1; ioctl(dev_fd, IOCTL_WRITE, &val); sub_list(); break; case '2' : ioctl( dev_fd, IOCTL_READ, &val); printf("app-->val = %d\n"); sub_list(); break; } } }
void parser_stream::undo(parser_stream_undo_type type) { switch (type) { case parser_stream_undo_type::parsed_token_stream: { token_list tlist(m_parsed_token_stream->read_token_all()); token_list orignal_tlist; std::for_each(tlist.begin(), tlist.end(), [&](token& t) { token_list sub_list(t.to_orignal_token_list()); std::for_each(sub_list.begin(), sub_list.end(), [&](const token& sub_t) { orignal_tlist.push_back(sub_t); }); }); m_lexer->unread_token(orignal_tlist); } break; case parser_stream_undo_type::all: { m_lexer->unread_token(*m_token_streamer_read_token_list); } break; } }