]> git.saurik.com Git - bison.git/blobdiff - src/scan-code.h
maint: address sc_bindtextdomain, sc_program_name and sc_prohibit_HAVE_MBRTOWC.
[bison.git] / src / scan-code.h
index a6e1fc130ac0f5209e9327b7af0bf83783ca798d..3fa5ea9a00d4796386a3df661afc895078018c7f 100644 (file)
@@ -1,12 +1,12 @@
 /* Bison code properties structure and scanner.
 
 /* Bison code properties structure and scanner.
 
-   Copyright (C) 2006, 2007 Free Software Foundation, Inc.
+   Copyright (C) 2006-2007, 2009-2012 Free Software Foundation, Inc.
 
    This file is part of Bison, the GNU Compiler Compiler.
 
 
    This file is part of Bison, the GNU Compiler Compiler.
 
-   This program is free software; you can redistribute it and/or modify
+   This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License
    GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-   02110-1301  USA
-*/
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #ifndef SCAN_CODE_H_
 # define SCAN_CODE_H_
 
 # include "location.h"
 
 #ifndef SCAN_CODE_H_
 # define SCAN_CODE_H_
 
 # include "location.h"
+# include "named-ref.h"
 
 struct symbol_list;
 
 
 struct symbol_list;
 
@@ -65,8 +63,18 @@ typedef struct code_props {
    */
   bool is_value_used;
 
    */
   bool is_value_used;
 
+  /**
+   * \c true iff this code is an action that is not to be deferred in
+   * a non-deterministic parser.
+   */
+  bool is_predicate;
+
+
   /** \c NULL iff \c code_props::kind is not \c CODE_PROPS_RULE_ACTION.  */
   struct symbol_list *rule;
   /** \c NULL iff \c code_props::kind is not \c CODE_PROPS_RULE_ACTION.  */
   struct symbol_list *rule;
+
+  /* Named reference. */
+  named_ref *named_ref;
 } code_props;
 
 /**
 } code_props;
 
 /**
@@ -79,7 +87,7 @@ void code_props_none_init (code_props *self);
 
 /** Equivalent to \c code_props_none_init.  */
 #define CODE_PROPS_NONE_INIT \
 
 /** Equivalent to \c code_props_none_init.  */
 #define CODE_PROPS_NONE_INIT \
-  {CODE_PROPS_NONE, NULL, EMPTY_LOCATION_INIT, false, NULL}
+  {CODE_PROPS_NONE, NULL, EMPTY_LOCATION_INIT, false, false, NULL, NULL}
 
 /** Initialized by \c CODE_PROPS_NONE_INIT with no further modification.  */
 extern code_props const code_props_none;
 
 /** Initialized by \c CODE_PROPS_NONE_INIT with no further modification.  */
 extern code_props const code_props_none;
@@ -132,7 +140,8 @@ void code_props_symbol_action_init (code_props *self, char const *code,
  *     - The caller frees \c rule.
  */
 void code_props_rule_action_init (code_props *self, char const *code,
  *     - The caller frees \c rule.
  */
 void code_props_rule_action_init (code_props *self, char const *code,
-                                  location code_loc, struct symbol_list *rule);
+                                  location code_loc, struct symbol_list *rule,
+                                  named_ref *name, bool is_predicate);
 
 /**
  * \pre
 
 /**
  * \pre
@@ -162,22 +171,10 @@ void code_scanner_last_string_free (void);
  * \pre
  *   - None.
  * \post
  * \pre
  *   - None.
  * \post
- *   - All dynamic memory allocated during any previous invocations of
- *     \c code_props_translate_code, \c translate_rule_action,
- *     \c translate_symbol_action, and \c translate_code has been freed.  All
- *     \c code_props instances may now be invalid.
+ *   - All dynamic memory allocated during invocations of
+ *     \c code_props_translate_code (if any) has been freed.  All \c code_props
+ *     instances may now be invalid.
  */
 void code_scanner_free (void);
 
  */
 void code_scanner_free (void);
 
-/* The action of the rule R contains $$, $1 etc. referring to the values
-   of the rule R. */
-char const *translate_rule_action (symbol_list *r);
-
-/* The action A refers to $$ and @$ only, referring to a symbol. */
-char const *translate_symbol_action (char const *a, location l);
-
-/* The action contains no special escapes, just protect M4 special
-   symbols.  */
-char const *translate_code (char const *a, location l);
-
 #endif /* !SCAN_CODE_H_ */
 #endif /* !SCAN_CODE_H_ */