这篇教程C++ yy_delete_buffer函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中yy_delete_buffer函数的典型用法代码示例。如果您正苦于以下问题:C++ yy_delete_buffer函数的具体用法?C++ yy_delete_buffer怎么用?C++ yy_delete_buffer使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了yy_delete_buffer函数的30个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: jsgf_parse_stringjsgf_t *jsgf_parse_string(const char *string, jsgf_t * parent){ yyscan_t yyscanner; jsgf_t *jsgf; int yyrv; YY_BUFFER_STATE buf; yylex_init(&yyscanner); buf = yy_scan_string(string, yyscanner); jsgf = jsgf_grammar_new(parent); if (!parent) jsgf_set_search_path(jsgf, NULL); yyrv = yyparse(yyscanner, jsgf); if (yyrv != 0) { E_ERROR("Failed to parse JSGF grammar from input string/n"); jsgf_grammar_free(jsgf); yy_delete_buffer(buf, yyscanner); yylex_destroy(yyscanner); return NULL; } yy_delete_buffer(buf, yyscanner); yylex_destroy(yyscanner); return jsgf;}
开发者ID:Amponti,项目名称:SpeechRecognition_DE1-SOC,代码行数:28,
示例2: yywrapint yywrap() { if (!include_app) { /* all input files and strings get a newline appended to them */ include_app = 1; yy_scan_string("/n"); return 0; } else { include_app = 0; if (inpfile) { /* (this is just an informal input text for printing-out...) */ FREE(inpfile); inpfile = NULL; } /* delete the input buffer, and possibly close the input file */ yy_delete_buffer(YY_CURRENT_BUFFER);#if CLOSE_AFTER_FLEX>0 if (include_stack_file[include_stack_ptr]) fclose(include_stack_file[include_stack_ptr]);#endif /* pop the previous saved state from the stack */ if (--include_stack_ptr>=0) { yy_switch_to_buffer(include_stack[include_stack_ptr]); inpfile = include_stack_fn[include_stack_ptr]; inpline = include_stack_ln[include_stack_ptr]; yy_pop_state(); return 0; } /*** else yyterminate(); does not work ??? ***/ } return 1; /* (means the end of current input) */}
开发者ID:Rajesh-Veeranki,项目名称:MACEK,代码行数:28,
示例3: yy_scan_bytesvoid Text::CreateFromXML(const string& XML){ ::pText = this; YY_BUFFER_STATE buffer = yy_scan_bytes(XML.c_str(), XML.size()); yyparse(); yy_delete_buffer(buffer);}
开发者ID:FGRE,项目名称:libnpengine-new,代码行数:7,
示例4: source_parse_fileint source_parse_file(source *src, const char *filename, const char *modname){ YY_BUFFER_STATE bufstate; int r; if (NULL == (yyin = fopen(filename,"r"))) { perror(filename); return -1; } yyfilename = filename; yyfileno = add_parsedfile(src,filename); ////yyfileno is the index in the src->parsedfiles yylloc.first_line = 1; bufstate = yy_create_buffer(yyin,YY_BUF_SIZE); yy_switch_to_buffer(bufstate); parse_src = src; parse_modname = modname ? modname : ""; r = yyparse(); yy_delete_buffer(bufstate);#if HAVE_YYLEX_DESTROY yylex_destroy();#endif if (yyin) fclose(yyin); return r;}
开发者ID:amirsalah,项目名称:cs2007,代码行数:29,
示例5: guardt_sip_message *t_parser::parse(const string &s, list<string> &parse_errors_) { t_mutex_guard guard(mtx_parser); int ret; struct yy_buffer_state *b; msg = NULL; parse_errors.clear(); string x = unfold(s); b = yy_scan_string(x.c_str()); ret = yyparse(); yy_delete_buffer(b); if (ret != 0) { if (msg) { MEMMAN_DELETE(msg); delete msg; msg = NULL; } throw ret; } parse_errors_ = parse_errors; return msg;}
开发者ID:LubosD,项目名称:twinkle,代码行数:27,
示例6: yy_scan_stringModuleNode *getAST(const char *expr){ ModuleNode *expression; yyscan_t scanner; YY_BUFFER_STATE state; if (yylex_init(&scanner)) { // couldn't initialize return NULL; } state = yy_scan_string(expr, scanner); yydebug = 0; if (yyparse(&expression, scanner)) { // error parsing return NULL; } yy_delete_buffer(state, scanner); yylex_destroy(scanner); return expression;}
开发者ID:Groterik,项目名称:dlang-ast,代码行数:25,
示例7: yyparsept_node *buildAST(const char *expr) { extern int yyparse(pt_node **, yyscan_t); FILE *file; yyscan_t scanner; pt_node *node = NULL; YY_BUFFER_STATE state; if(yylex_init(&scanner)) { fprintf(stderr, "Failed to initialize parser./n"); exit(-1); } file = fopen(expr, "r"); if(file == NULL) { perror("fopen"); exit(-1); } state = yy_create_buffer(file, 1024, scanner); yy_switch_to_buffer(state, scanner); if(yyparse(&node, scanner)) { fprintf(stderr, "Error parsing input./n"); exit(-1); } yy_delete_buffer(state, scanner); yylex_destroy(scanner); return node;}
开发者ID:Winter-M,项目名称:Trot,代码行数:32,
示例8: __declspec//////////////////////////////////////////////////////////////////////////// EXPORTED FUNCTIONS//////////////////////////////////////////////////////////////////////////__declspec(dllexport) BYTE* CompileBuffer(BYTE* Buffer, char* Source, DWORD BufferSize, DWORD* CompiledSize){ YY_BUFFER_STATE state; BYTE* ret = NULL; if(Buffer==NULL){ if(CompiledSize)*CompiledSize = 0; return NULL; } state = yy_scan_bytes(Buffer, BufferSize); lineno=1; yyparse(); yy_delete_buffer(state); if(errorCheck()) goto finish_error; weedSCRIPTCOLLECTION(thescriptcollection); if(errorCheck()) goto finish_error; symSCRIPTCOLLECTION(thescriptcollection); if(errorCheck()) goto finish_error; ret = opcodeSCRIPTCOLLECTION(thescriptcollection, Source, CompiledSize); if(errorCheck()) goto finish_error; FinalCleanup(); return ret;finish_error: if(ret!=NULL) free(ret); *CompiledSize = 0; FinalCleanup(); return NULL;}
开发者ID:segafan,项目名称:wme1_jankavan_tlc_edition-repo,代码行数:38,
示例9: como_ast_createint como_ast_create(const char *filename){ ast_node* statements; yyscan_t scanner; YY_BUFFER_STATE state; char* text; text = file_get_contents(filename); if(!text) { printf("file '%s' not found/n", filename); return 1; } if(yylex_init(&scanner)) { como_error_noreturn("yylex_init returned NULL"); } state = yy_scan_string(text, scanner); if(yyparse(&statements, scanner)) { como_error_noreturn("yyparse returned NULL"); } yy_delete_buffer(state, scanner); yylex_destroy(scanner); como_compile_ast(statements, filename); return 0;}
开发者ID:rmccullagh,项目名称:como-lang,代码行数:32,
示例10: ne_parseint ne_parse(const char *formula){ int err; struct symbol_table *sym; ne.buf = yy_scan_string(formula, ne.scanner); yyset_lineno(1, ne.scanner); yyset_column(1, ne.scanner); __ne_clear_error(&ne); err = yyparse(&ne); if (!err) { __ne_put_result(&ne, eval(&ne, ne.root)); sym = get_sym(&ne, "y"); if (sym && sym->dirty) { __ne_put_result(&ne, __ne_get_y(&ne)); clean_output_sym(&ne); } } if (ne.error != 0) err = ne.error; else if (ne.warrning != 0) err = ne.warrning; free_ast(ne.root); ne.root = NULL; ne.stop = 0; yy_delete_buffer(ne.buf, ne.scanner); return err;}
开发者ID:gentooinit,项目名称:n00b-expression,代码行数:35,
示例11: getASTltl_formula *getAST (const char *input){ ltl_formula *formula; yyscan_t scanner; YY_BUFFER_STATE state; if (yylex_init (&scanner)) { // couldn't initialize return NULL; } state = yy_scan_string (input, scanner); if (yyparse (&formula, scanner)) { // error parsing return NULL; } yy_delete_buffer (state, scanner); yylex_destroy (scanner); return formula;}
开发者ID:juzer10,项目名称:FSE-2014-Aalta,代码行数:25,
示例12: dbg_parse// -----------------------------------------------------------------------int dbg_parse(char *c){ YY_BUFFER_STATE yb = yy_scan_string(c); int res = yyparse(); yy_delete_buffer(yb); return res;}
开发者ID:32bitmicro,项目名称:mera400,代码行数:8,
示例13: runCommand/** * @function runCommand * * @abstract Parses and executes a command given a NULL terminated string. * @discussion Parses the command and adds it to the history if it is * nontrivial. * * @param cmd_buffer Pointer to NULL terminated string containing * the user input. * @result Returns nothing, but runs a command, most likely printing to * the terminal. */void runCommand(char* cmd_buffer) { Command *command = NULL; yyscan_t scanner; YY_BUFFER_STATE state; // Check if there is anything in the line. It is useless to store // a history of empty lines. If it is not empty, then add it to our // history. Also don't want to record line rerun calls. if ((cmd_buffer[0] != 0) && (cmd_buffer[0] != '!')) { add_history(cmd_buffer); } state = yy_scan_string(cmd_buffer); if (yyparse(&command, scanner)) { printf("Error in parsing command./n"); deleteCommand(command); return; } executeCommand(command, -1); deleteCommand(command); // Wait on all child processes while (wait(NULL) > 0) {} yy_delete_buffer(state); yylex_destroy(); return;}
开发者ID:jerryxzhang,项目名称:Kernel-Sanders,代码行数:44,
示例14: FILESTATUSchar *PCCloseentity(void) { char * pc; PEntRec per;#ifdef DEBUGGING FILESTATUS(stdout,"stdout"); MsgKwS(msgTRACE,"Closing the current entity ...",NULL); MsgKwS(msgTRACE,"PCCloseentity() called ...",NULL); FILESTATUS(stdout,"stdout"); FILESTATUS(stdin,"stdin"); FILESTATUS(stderr,"stderr"); FILESTATUS(yyin,"yyin");#endif if (cEntCur > 0) { per = rgEntities[cEntCur]; pc = per->pcEntname; if (per->fExtern) fclose(yyin); /* close yyin. We don't need to reset it, that happens in yy_switch_to_buffer, below */ yy_delete_buffer(YY_CURRENT_BUFFER); yy_switch_to_buffer(rgBuffers[--cEntCur]); /* reset pcEntpos and fRdexternal */ if (cEntCur > 0) { per = rgEntities[cEntCur]; if (per->fExtern) { fRdexternal = 1; pcEntpos = ""; } else { fRdexternal = 0; pcEntpos = rgPCPos[cEntCur]; } } else { /* back to stdin */ fRdexternal = 1; pcEntpos = ""; } cLinecount = rgILine[cEntCur]; fnCurrent = rgPCFn[cEntCur];#ifdef DEBUGGING FILESTATUS(stdout,"stdout"); FILESTATUS(stdin,"stdin"); FILESTATUS(stderr,"stderr"); FILESTATUS(yyin,"yyin");#endif return pc; } else {#ifdef DEBUGGING FILESTATUS(stdout,"stdout"); FILESTATUS(stdin,"stdin"); FILESTATUS(stderr,"stderr"); FILESTATUS(yyin,"yyin");#endif return NULL; }}
开发者ID:TEIC,项目名称:Carthage,代码行数:59,
示例15: command_parse_stringint command_parse_string( const char *buffer ){ typedef struct yy_buffer_state* YY_BUFFER_STATE; extern YY_BUFFER_STATE yy_scan_string( const char *yy_str ); extern void yy_delete_buffer( YY_BUFFER_STATE state ); int rv = 1; YY_BUFFER_STATE state = yy_scan_string( (char*)buffer ); switch ( yylex() ) { case SET: /* get the next token */ rv = command_parse_set(); break; case UNSET: case BIND: case MACRO: /* ignore this stuff for now. */ rv = 1; break; case NUMBER: { const char *number = get_token(); if ( number[0] == '+' ) { source_vscroll( if_get_sview(), atoi( number+1 )); rv = 0; } else if ( number[0] == '-' ) { source_vscroll( if_get_sview(), -atoi( number+1 )); rv = 0; } else { source_set_sel_line(if_get_sview(), atoi( number )); rv = 0; } if_draw(); } break; case IDENTIFIER: { COMMANDS *command = get_command( get_token() ); if ( command ) { command->action(command->param); rv = 0; } else { rv = 1; } } break; case EOL: /* basically just an empty line, don't do nothin. */ rv = 0; break; default: rv = 1; break; } yy_delete_buffer( state ); return rv;}
开发者ID:amberik,项目名称:cgdb-initial.cgdb-featured,代码行数:59,
示例16: mainint main(int argc, char *argv[]) { char *str, *str0; size_t str0_sz; char *url; FILE *fout; uint suc_cnt = 0, fail_cnt = 0; if (argc != 2) { printf("invalid argument format. /n"); return 0; } url = argv[1]; fout = fopen("parser.output", "w"); fprintf(fout, "%s/n", url); /* disable auto-complete */ rl_bind_key('/t', rl_abort); while (1) { str = readline("edit: "); if (str == NULL) { printf("/n"); break; } /* user can use UP and DOWN key to search through the history. */ add_history(str); str0 = to_scan_str(str, &str0_sz); YY_BUFFER_STATE buffer = yy_scan_buffer(str0, str0_sz); yyparse(); if (parser_error_flag) { fail_cnt ++; parser_error_flag = 0; printf("[ %s ]/n", parser_error_dscr); } else { suc_cnt ++; fprintf(fout, "%s/n", str); parser_out(fout); } yy_delete_buffer(buffer); free(str); free(str0); } fclose(fout); printf("[ %d successfully parsed, %d fail(s) ]/n", suc_cnt, fail_cnt); return suc_cnt;}
开发者ID:t-k-,项目名称:math-se,代码行数:59,
示例17: val_parse_forallvoid val_parse_forall(char *s, val_callback_t callback) { yyscan_t scanner; if (yylex_init(&scanner)) die("yylex_init error"); YY_BUFFER_STATE buf = s ? yy_scan_string(s, scanner) : 0; if (yyparse(scanner, callback)) die("parse error"); yy_delete_buffer(buf, scanner); yylex_destroy(scanner);}
开发者ID:blynn,项目名称:symple,代码行数:8,
示例18: lexer_restore_buffervoidlexer_restore_buffer(RemarkFile *rf){ file = rf; yy_delete_buffer(YY_CURRENT_BUFFER); if (rf != NULL) yy_switch_to_buffer(rf->lex_buffer);}
开发者ID:GregBowyer,项目名称:regex-markup,代码行数:8,
示例19: yy_scan_stringLispObj *read_from_string(char *str){ YY_BUFFER_STATE yy_buf = yy_scan_string(str); LispObj *obj = read_from_yybuf(yy_buf); yy_delete_buffer(yy_buf); return obj;}
开发者ID:orodley,项目名称:ali,代码行数:8,
示例20: yy_create_bufferLispObj *read_from_stream(FILE *stream){ YY_BUFFER_STATE yy_buf = yy_create_buffer(stream, YY_BUF_SIZE); LispObj *obj = read_from_yybuf(yy_buf); yy_delete_buffer(yy_buf); return obj;}
开发者ID:orodley,项目名称:ali,代码行数:8,
示例21: parseint parse(const char *input, cmd *cmds[], int size){ elementType type; redirectMode redir; int cmd_count = -1, fd; int valid_pipe = 0; char *str; YY_BUFFER_STATE buf = yy_scan_string(input); while ((type = yylex()) != 0) { if (cmd_count == -1) cmd_count = 0; fd = -1; str = NULL; switch (type) { case SEMICOLON: cmd_count++; valid_pipe = 0; break; case PIPE: if (!valid_pipe) { fprintf(stderr, "shell: invalid pipe/n"); yy_delete_buffer(buf); return -1; } cmd_add_pcmd(&cmds[cmd_count]); break; case CMD: valid_pipe = 1; case STRING: str = handle_escaped_chs(yytext); //fprintf(stderr, "%s %s/n", yytext, str); cmd_addarg(cmds[cmd_count], str); break; case FD_IN_RED: case FD_OUT_RED: case FD_APPEND: fd = get_fd(yytext, type); case IN_RED: case OUT_RED: case OUT_APPEND: case OUT_ERR_RED: case OUT_ERR_APPEND: yylex(); str = handle_escaped_chs(yytext); cmd_redirect(cmds[cmd_count], fd, type, str); break; case BACKGROUND: cmd_set_bg(cmds[cmd_count]); break; default: fprintf(stderr, "Unknown type: %d, %s/n", type, yytext); } free(str); } yy_delete_buffer(buf); return cmd_count + 1;}
开发者ID:ddjfreedom,项目名称:Shell,代码行数:44,
示例22: compileSTint compileST (char *pgm) { extern char *yy_scan_bytes(); char *my_string_buffer = yy_scan_bytes (pgm, strlen(pgm)+1); int my_parse_result = yyparse (); if (my_parse_result) return -1; yy_delete_buffer (my_string_buffer); yylex_destroy(); return 0;}
开发者ID:actility,项目名称:ong,代码行数:10,
示例23: parseFilevoid parseFile(FILE* in){ YY_BUFFER_STATE* tmp = new YY_BUFFER_STATE; *tmp = yy_create_buffer(in, YY_BUF_SIZE); yy_switch_to_buffer(*tmp); if(buffer) yy_delete_buffer(*buffer); delete buffer; buffer = tmp;}
开发者ID:Albaraa2010,项目名称:AI_CHESS,代码行数:10,
示例24: parse_stringstatic VALUEparse_string(VALUE self, VALUE code) { VALUE lineno = rb_funcall(self, rb_intern("lineno"), 0); char *str = StringValueCStr(code); YY_BUFFER_STATE buffstate = yy_scan_string(str); yy_switch_to_buffer(buffstate); yylineno = NUM2INT(lineno); yyparse(self); yy_delete_buffer(buffstate); return self;}
开发者ID:IFFranciscoME,项目名称:fancy,代码行数:11,
示例25: close_stemmervoid close_stemmer() { //fclose(morpha_instream); //free(morpha_instream_buff_ptr); //fclose(morpha_outstream); //free(morpha_outstream_buff_ptr); yy_delete_buffer(yy_current_buffer); int i; for (i=0; i<verbstem_n; i++) { free(verbstem_list[i]); } free(verbstem_list);}
开发者ID:KWARC,项目名称:deprecated-LLaMaPUn,代码行数:12,
示例26: Compilevoid Compile(const char* pBuffer, uint32_t Length, Buffer* NsbBuffer, Buffer* MapBuffer){ Counter = 1; SymCounter = 1; Output = NsbBuffer; MapOutput = MapBuffer; YY_BUFFER_STATE buffer = yy_scan_bytes(pBuffer, Length); yyparse(); pRoot->Compile(); yy_delete_buffer(buffer); delete pRoot;}
开发者ID:DaZombieKiller,项目名称:libnpa,代码行数:12,
示例27: wp_entry_add_string// tokenizes and adds everything under a single fieldwp_error* wp_entry_add_string(wp_entry* entry, const char* field, const char* string) { yyscan_t scanner; lexinfo charpos = {0, 0}; yylex_init_extra(&charpos, &scanner); YY_BUFFER_STATE state = yy_scan_string(string, scanner); RELAY_ERROR(add_from_lexer(entry, &scanner, field)); yy_delete_buffer(state, scanner); yylex_destroy(scanner); return NO_ERROR;}
开发者ID:hand-code,项目名称:whistlepig,代码行数:13,
示例28: parse_filter_stringint parse_filter_string(char *filter){ YY_BUFFER_STATE buffer_state = yy_scan_string(filter); int status = yyparse(); yy_delete_buffer(buffer_state); if (status) { // Error log_error("zmap", "Unable to parse filter string: '%s'", filter); return 0; } zconf.filter.expression = zfilter; return 1;}
开发者ID:alberto98fx,项目名称:zmap,代码行数:13,
示例29: yy_scan_stringASTNode* Compiler::parse(std::string code) { ASTNode* root; yyscan_t scanner; YY_BUFFER_STATE buffer; if (yylex_init(&scanner)) { return NULL; } buffer = yy_scan_string(code.c_str(), scanner); yyparse(&root, scanner); yy_delete_buffer(buffer, scanner); yylex_destroy(scanner); return root;}
开发者ID:Raekye,项目名称:hmmm,代码行数:13,
示例30: yy_scan_bytesparam_ret_t *do_ST_interpreter (void *userctx, char *pgm) { extern char *yy_scan_bytes(); char *my_string_buffer = yy_scan_bytes (pgm, strlen(pgm)+1); int my_parse_result = yyparse (); if (my_parse_result) return NULL; yy_delete_buffer (my_string_buffer); yylex_destroy(); param_ret_t *pret = codeGen (programBlock, userctx); cleanUp (programBlock); return pret;}
开发者ID:actility,项目名称:ong,代码行数:14,
注:本文中的yy_delete_buffer函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 C++ yy_pop_parser_stack函数代码示例 C++ yr_malloc函数代码示例 |