bisonでC++のコードを出力するための記述
%skeleton "lalr1.cc"
bisonとflexのc++対応ソースはうまくリンクできない。
結局flexで作成したオブジェクトをstatic変数に持たせてyylex()もstatic関数化した。
エラー
error要素により、次に指定されたトークンまでスキップすることができる。
以下の例では'}'がくるまでの要素をスキップする
| '{' error '}' { yy::parser::error("error: compound_statment"); $$ = nullptr; }
行番号
yylinenoを取得するためにはflex側で以下の指定を行う
%option yylineno
0 件のコメント:
コメントを投稿