我使用lex和yacc来创建程序来解析文本,但是我需要创建各种内容的解析器。我不希望使用stdin,如果我使用FILE * yyin指定输入,我可以更改源。我需要从库解析(使用lex文件和yacc文件创建)来调用该函数来解析此内容并接收结果。如何在不创建临时文件的情况下从char *创建FILE *
/**
* This i don't know is possible, receive a char * and return a FILE*
*/
FILE *function_parse_to_file(char* text){
FILE *fp = NULL;
/**
* is really necessary create a temporary file with content text?
*/
return fp
}
/**
* I need call from other library or application
*/
char *function_parse_from_lex(char* text){
yyin = function_parse_to_file(text);
init();
yyparse();
fclose(yyin);
}
'char *'是文件名还是您想要解析的实际文本? – 2013-03-13 16:55:20
可能的重复[字符串输入到flex词法分析器](http://stackoverflow.com/questions/780676/string-input-to-flex-lexer) – 2013-03-13 16:56:29