C.3.2 宏定义
  这部分用C语言的#define语句定义程序中要用的宏。例如
  %{
  …
  #define EOF O
  #dffine max(x,y)((x>y)。x∶y)
  …
  %}

C.3.3 数据类型定义
  这部分定义语义动作中或程序段部分中要用到的数据类型,例如
  %{
  …
  typedef struct interval {
  double lo,hi;
  }INTERVAL;
  …
  %}

C.3.4 全局变量定义
  外部变量(external variable)和YACC源程序中要用到的全局变量都在这部分定义,例如
  %{
  …
  extern int nfg;
  double dreg[26];
  INTERVAL Vreg[26];
  …
  %}
  另外非整型函数的类型声明也包含在这部分中,请参看本附录C.6例2。
  重申一遍,上述四部分括在%{和%}之间的内容是由YACC原样照抄到y.tab.c中去,所以必须完全符合C语言文法,另外,界符%{和%}最好各自独占一行,即最好不要写成:
  %{ int x; %}