/**
- * @file reflect.h
+ * @file irreflect.h
* @date 9.9.2004
* @author Sebastian Hack
* @brief Reflection for Firm operations.
#define _FIRM_REFLECT_H
#include <limits.h>
-#include <stdbool.h>
#include "irop.h"
#include "irnode.h"
typedef struct _rflct_arg_t {
const char *name; /**< The name of the argument (just a description). */
- bool is_variadic; /**< True, if this argument can have multiple parameters. */
+ int is_variadic; /**< non-zero, if this argument can have multiple parameters. */
rflct_mode_class_t accepted_modes; /**< The set of accepted modes. */
int mode_equals; /**< If not variadic: You can specify the index of
/**
* Create a new opcode.
- * @param opc The Firm opcode.
- * @param name A name.
- * @param commutative True, if the opcode is commuatative.
+ * @param opc The Firm opcode.
+ * @param name A name.
+ * @param commutative non-zero, if the opcode is commutative.
*/
-void rflct_new_opcode(opcode opc, const char *name, bool commutative);
+void rflct_new_opcode(opcode opc, const char *name, int commutative);
/**
* Add a signature to the opcode.
- * @param opc The opcode.
- * @param args The signature.
- * @return true, if the signature was added sucessfully, false if no
+ * @param opc The opcode.
+ * @param sig The signature.
+ * @return non-zero, if the signature was added successfully, false if no
* more signatures can be added to the opcode.
*/
-bool rflct_opcode_add_signature(opcode opc, rflct_sig_t *sig);
+int rflct_opcode_add_signature(opcode opc, rflct_sig_t *sig);
/**
* Allocate a new signature.
/**
* Set an argument in a signature.
- * @param sig The signature.
- * @param is_use true, if the argument is a use, else it is considered a
- * def.
- * @param num The index of the argument.
- * @param name The name of the argument.
- * @param mc The mode class of the argument.
- * @param is_variadic true, if the argument is variadic.
+ *
+ * @param sig The signature.
+ * @param is_use non-zero, if the argument is a use, else it is
+ * considered a def.
+ * @param num The index of the argument.
+ * @param name The name of the argument.
+ * @param mc The mode class of the argument.
+ * @param is_variadic non-zero, if the argument is variadic.
* @param mode_equals This variable has following meaning: If the
* argument is variadic, a 1 indicates that all operands binding to this
* argument must have the same mode. A 0 indicates, that their mode must
* @return The index of the argument. Only use this index in mode_equals
* parameters of other arguments.
*/
-int rflct_signature_set_arg(rflct_sig_t *sig, bool is_use, int num,
- const char *name, rflct_mode_class_t mc, bool is_variadic, int mode_equals);
+int rflct_signature_set_arg(rflct_sig_t *sig, int is_use, int num,
+ const char *name, rflct_mode_class_t mc, int is_variadic, int mode_equals);
/**
* Get the arguments array index for an argument.
- * @param sig The signature.
- * @param is_use True, if the argument indicates a use or def argument.
- * @param num The number of the argument.
+ * @param sig The signature.
+ * @param is_use non-zero, if the argument indicates a use or def argument.
+ * @param num The number of the argument.
* @return The index into the arguments array.
*/
-int rflct_signature_get_index(const rflct_sig_t *sig, bool is_use, int num);
+int rflct_signature_get_index(const rflct_sig_t *sig, int is_use, int num);
#endif /* _FIRM_REFLECT_H */