lex&yacc3

YACC

yacc  $$  translate relation

===============================================================================

bintree.y:22:5: warning: passing argument 2 of ‘bintree’ makes pointer from integer without a cast [enabled by default]
   | IF '(' cond_expr ')'  statement  ELSE  statement   { $$ = bintree("IF_ELSE", $3, $5,$7);}
     ^
In file included from bintree.y:6:0:
bintree.h:22:15: note: expected ‘char *’ but argument is of type ‘YYSTYPE
 struct Node * bintree( char * s, char * cond_s, struct Node * l,struct Node * r);
               ^
bintree.y:22:5: warning: passing argument 3 of ‘bintree’ makes pointer from integer without a cast [enabled by default]
   | IF '(' cond_expr ')'  statement  ELSE  statement   { $$ = bintree("IF_ELSE", $3, $5,$7);}
     ^
In file included from bintree.y:6:0:
bintree.h:22:15: note: expected ‘struct Node *’ but argument is of type ‘YYSTYPE’
 struct Node * bintree( char * s, char * cond_s, struct Node * l,struct Node * r);
=================================================================================

typedef  int YYSTYPE;

exern YYSTYPE yylval;

$$  default  to be YYSTYPE, if we have more complex struction, then we need to redefine the YYSTYPE;

原文地址:https://www.cnblogs.com/orchid-sky/p/3638813.html