-]AT_SKEL_CC_IF(
-[AT_LOCATION_TYPE_IF([[
- std::ostream&
- operator<< (std::ostream& o, const Span& s)
- {
- o << s.begin.l << '.' << s.begin.c;
- if (s.begin.l != s.end.l)
- o << '-' << s.end.l << '.' << s.end.c - 1;
- else if (s.begin.c != s.end.c - 1)
- o << '-' << s.end.c - 1;
- return o;
- }
-]])
-
-/* A C++ error reporting function. */
-void
-AT_NAME_PREFIX::parser::error (AT_LOCATION_IF([const location_type& l, ])const std::string& m)
-{
- std::cerr << AT_LOCATION_IF([l << ": " << ])m << std::endl;
-}
-
-/* A C++ yyparse that simulates the C signature. */
-int
-yyparse (AT_PARAM_IF([semantic_value *result, int *count]))
-{
- AT_NAME_PREFIX::parser parser[]AT_PARAM_IF([ (result, count)]);
-#if YYDEBUG
- parser.set_debug_level (1);
-#endif
- return parser.parse ();
-}
-],
-[/* A C error reporting function. */
-static void
-yyerror (AT_YYERROR_ARG_LOC_IF([YYLTYPE *llocp, ])
- AT_PARAM_IF([semantic_value *result, int *count, ])
- const char *s)
-{
-AT_PARAM_IF([(void) result; (void) count;])
-AT_YYERROR_SEES_LOC_IF([
- fprintf (stderr, "%d.%d",
- AT_LOC.first_line, AT_LOC.first_column);
- if (AT_LOC.first_line != AT_LOC.last_line)
- fprintf (stderr, "-%d.%d",
- AT_LOC.last_line, AT_LOC.last_column - 1);
- else if (AT_LOC.first_column != AT_LOC.last_column - 1)
- fprintf (stderr, "-%d",
- AT_LOC.last_column - 1);
- fprintf (stderr, ": ");])
- fprintf (stderr, "%s\n", s);
-}])[
-
-]AT_DEFINES_IF(, [AT_CALC_LEX])[
-