「...には宣言された型を持っていない」:、このファイルにバイソンを実行
warning: $$ of 'exp' has no declared type.
それが何を意味する:
%{
#include <iostream>
int yylex();
void yyerror(const char*);
%}
%union
{
char name[100];
int val;
}
%token NUM ID
%right '='
%left '+' '-'
%left '*'
%%
exp : NUM {$$.val = $1.val;}
| ID {$$.val = vars[$1.name];}
| exp '+' exp {$$.val = $1.val + $3.val;}
| ID '=' exp {$$.val = vars[$1.name] = $3.val;}
;
%%
は、のような警告にリードどのように解決するのですか?
1あなたの将来バイソン/ Lexのフロントエンドに役立ちますと...:グーグル 'バイソンエラーが何 – INS
ただ、A type'が宣言したとき、最初に表示されていないために小さな明瞭さ。私は '%union {int intValue; int floatValue; } 'しかし、' $$。intValue'や '$ 1.intValue'は使用できません。 'error:メンバー 'floatValue'が構造体または共用体でないものにリクエストしています。なぜそうなのか? – Shashwat