我使用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