bison でパーサーを生成すると、次の警告が表示されます。
warning: stray `@'
しかし、それは@
、たとえば、これは警告を持つルールの 1 つです。
file : axiom production_rule_list { NSLog(@"file"); }
;
@
コードで使用するリスクはありますか? そうでない場合、バイソンにそれが正当な使用であることを伝える方法は@
?
前もって感謝します。
bison でパーサーを生成すると、次の警告が表示されます。
warning: stray `@'
しかし、それは@
、たとえば、これは警告を持つルールの 1 つです。
file : axiom production_rule_list { NSLog(@"file"); }
;
@
コードで使用するリスクはありますか? そうでない場合、バイソンにそれが正当な使用であることを伝える方法は@
?
前もって感謝します。
メッセージは単なる警告です。無視してかまいません。Xcode を使用している場合は、Issue Navigator に警告さえ表示されません。
Bison 入力ファイルの名前を変更して、.ym
拡張子ではなく.y
拡張子を付けます。これにより、Objective-C アクションを含む文法であることが Xcode に伝えられます。
Actions - Bison 2.7のドキュメントによると、中括弧内のコードは C コードであると予想されるようです。そのため、目的の c コンストラクトを使用できるとは思えません。
ただし、次のような作業を行う外部 C 関数を作成できます。
Logit(char* message)
{
NSLog(@"%s",message);
}
そしてそれをBisonアクションで使用します
file : axiom production_rule_list { Logit("file"); }
;