0
我正在看用flex和野牛做的解析器。野牛2.5。%位置導致即時sigsegv
我添加%位置到.Y文件,並重新編譯,並嘗試運行,我用SIGSEGV回報(當然,在MacOSX上等效):
Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_PROTECTION_FAILURE at address: 0x000000010003f123
0x000000010003f38c in yylex (yylval_param=0x7fff5fbff5e8, yyscanner=0x7fff5fbff5d0) at lex.yy.c:2036
2036 *yy_cp = yyg->yy_hold_char;
這一切是生成的代碼,所以我不知道先去哪裏瞭解yy_cp如何最終指向只讀存儲。
注意,詞法分析器源包括
%option noinput
%option reentrant bison-bridge
和解析器源包括
%lex-param {yyscan_t *scanner } /* Call flex functions with this argument */
已編輯的問題表明您是正確的。接下來我會嘗試野牛地點選項。 – bmargulies