+ /** Set the new current left-hand side symbol, possibly common
+ * to several right-hand side parts of rule.
+ */
+ static void current_lhs (symbol *sym, location loc, named_ref *ref);
+
+ #define YYLLOC_DEFAULT(Current, Rhs, N) \
+ (Current) = lloc_default (Rhs, N)
+ static YYLTYPE lloc_default (YYLTYPE const *, int);
+
+ #define YY_LOCATION_PRINT(File, Loc) \
+ location_print (Loc, File)
+
+ /* Strip initial '{' and final '}' (must be first and last characters).
+ Return the result. */
+ static char *strip_braces (char *code);
+
+ /* Convert CODE by calling code_props_plain_init if PLAIN, otherwise
+ code_props_symbol_action_init. Call
+ gram_scanner_last_string_free to release the latest string from
+ the scanner (should be CODE). */
+ static char const *translate_code (char *code, location loc, bool plain);
+
+ /* Convert CODE by calling code_props_plain_init after having
+ stripped the first and last characters (expected to be '{', and
+ '}'). Call gram_scanner_last_string_free to release the latest
+ string from the scanner (should be CODE). */
+ static char const *translate_code_braceless (char *code, location loc);
+
+ static void version_check (location const *loc, char const *version);
+
+ static void gram_error (location const *, char const *);
+
+ /* A string that describes a char (e.g., 'a' -> "'a'"). */
+ static char const *char_name (char);
+