0

バイソンに奇妙な問題があります。私は初心者なので、間違っている場合は修正してください。ただし、$1、$2...などは、端末/非端末の最初、2番目などから値を返す必要がありますか?

command: IDENT{printf("%s",$1);} SET{printf("%s",$1);} expression{printf("%s",$1);} ENDCMD

私はコンパイラーを実行しましたが、上記の例から、最初の呼び出しで「a := 1」(ident は「a」、set は「:=」、num は「1」) のような式があったため、トラップしました。 、2番目に「a :=」、3番目に「a := 1」。

%union {
    int ival;
    char *sval;
}

ident は sval です。

重要なことは、最近バイソンファイルに文字列を追加したことです。以前はすべて問題ありませんでした。

4

1 に答える 1