/* Main parser function */ int parse() { token = yylex(); do { switch (token) { case TITLE: if (!parse_title()) return 0; break; case AUTHOR: if (!parse_author()) return 0; break; case DATE: if (!parse_date()) return 0; break; case SECTION: if (!parse_section()) return 0; break; case FRAME: if (!parse_frame()) return 0; break; case PART: if (!parse_part()) return 0; break; case EOF: case ZERO: return 1; case NEWLINE: token = yylex(); break; case IMAGE: fprintf(stderr, "[%d] Top mode: figure not allowed in top mode.\n",yylineno); return 0; case ANIMATION: fprintf(stderr, "[%d] Top mode: figure not allowed in top mode.\n",yylineno); return 0; case LISTING: fprintf(stderr, "[%d] Top mode: listing not allowed in top mode.\n", yylineno); return 0; case STRUCT: fprintf(stderr, "[%d] Top mode: structure not allowed in top mode.\n", yylineno); return 0; case ITEM: fprintf(stderr, "[%d] Top mode: item not allowed in top mode.\n", yylineno); return 0; default: fprintf(stderr, "[%d] Top mode: %s \"%s\" not allowed in top mode.\n", yylineno, get_token_name(token), yytext); return 0; } } while (token != EOF); return 1; }
int merger_parse_title( lua_State *L ) { const char *str; if ( !lua_isstring( L, 1 ) ) { lua_pushstring( L, "Invalid argument passed to 'parse_title'." ); lua_error( L ); } str = lua_tostring( L, 1 ); lua_pushboolean( L, parse_title( str ) ); return 1; }
void mod_title(struct irc_t * irc, char * reply_msg) { char * content = NULL; char * t; if (validate_http(irc->request) < 0 ) return; content = curl_perform(irc->request); if (!content) return; if ( parse_title(reply_msg, content) > 0 ) { t = reply_msg; while (*t != '\0') if (*t++ == '\n') t[-1] = ' '; } free(content); return; }
static void parse_sound(char *raw, song_t* parse_song) { uint8_t part = 0; char *start = raw; while (*raw != 0) { if (*raw == ':') { *raw = 0; if (part == 0) { parse_title(start, parse_song); } else if (part == 1) { parse_header(start, parse_song); } start = raw+1; part++; } raw++; } parse_body(start, parse_song); }
void blizzard::http::process() { bool quit = false; int res = 0; while (!quit) { switch (state_) { case sUndefined: want_read = true; want_write = false; state_ = sReadingHead; break; case sReadingHead: res = parse_title(); if (res > 0) { state_ = sDone; quit = true; } else if (res < 0) { quit = true; } break; case sReadingHeaders: res = parse_header_line(); if (res > 0) { state_ = sDone; quit = true; } else if (res < 0) { quit = true; } if (state_ == sReadyToHandle) { quit = true; } break; case sReadingPost: res = parse_post(); if (res < 0) { quit = true; } break; case sReadyToHandle: commit(); state_ = sWriting; break; case sWriting: want_write = true; res = write_data(); if (res < 0) { quit = true; } break; case sDone: quit = true; break; default: break; } } }