我有我的Flex文件中的下列規則:的Flex /野牛錯誤:basic_string的:: _ S_construct空無效
{ID} {printf("(id, \"%s\") [%d]\n", yytext, yylineno); yylval.str = strdup(yytext); return IDENT;}
而在我的野牛文件以下規則:
identificador : IDENT {cout << "identificador : IDENT\n"; cout << $1 << "\n";$$ = $1;}
當嘗試打印$1
,我得到以下錯誤:
terminate called after throwing an instance of 'std::logic_error'
什麼():basic_string的:: _ S_construc t null無效
對我來說,它看起來像$1
是NULL
,但我不明白爲什麼。 這兩個文件都非常大,因爲語法很龐大,但如果需要,我可以編輯以添加其他相關部分。
這是唯一的'flex'規則返回'IDENT'? –
是的,它是唯一的一個。 – Izabela