+%{
+#if YYPURE
+# define LOC (*yylloc)
+# define VAL (*yylval)
+#else
+# define LOC (yylloc)
+# define VAL (yylval)
+#endif
+
+#if YYPURE
+# if YYLSP_NEEDED
+# define LEX_FORMALS YYSTYPE *yylval, YYLTYPE *yylloc
+# define LEX_ARGS yylval, yylloc
+# define USE_LEX_ARGS (void) yylval; (void) yylloc;
+# else
+# define LEX_FORMALS YYSTYPE *yylval
+# define LEX_ARGS yylval
+# define USE_LEX_ARGS (void) yylval
+# endif
+# define LEX_PRE_FORMALS LEX_FORMALS,
+# define LEX_PRE_ARGS LEX_ARGS,
+#else
+# define LEX_FORMALS void
+# define LEX_PRE_FORMALS
+# define LEX_ARGS
+# define LEX_PRE_ARGS
+# define USE_LEX_ARGS
+#endif
+
+static int power (int base, int exponent);
+static void yyerror (const char *s);
+static int yylex (LEX_FORMALS);
+static int yygetc (LEX_FORMALS);
+static void yyungetc (LEX_PRE_FORMALS int c);
+%}
+