+%code requires
+{
+]AT_LOCATION_TYPE_IF([[
+# include <iostream>
+ struct Point
+ {
+ int l;
+ int c;
+ };
+
+ struct Span
+ {
+ Point first;
+ Point last;
+ };
+
+# define YYLLOC_DEFAULT(Current, Rhs, N) \
+ do \
+ if (N) \
+ { \
+ (Current).first = YYRHSLOC (Rhs, 1).first; \
+ (Current).last = YYRHSLOC (Rhs, N).last; \
+ } \
+ else \
+ { \
+ (Current).first = (Current).last = YYRHSLOC (Rhs, 0).last; \
+ } \
+ while (false)
+
+]])[
+ /* Exercise pre-prologue dependency to %union. */
+ typedef int semantic_value;