/* %Z%%M% %I% %E% */ /* * Copyright (c) 1990, 1991, 1992, 1993, 1995 by Wayne C. Gramlich. * All rights reserved. * * Permission to use, copy, modify, distribute, and sell this software * for any purpose is hereby granted without fee provided that the above * copyright notice and this permission are retained. The author makes * no representations about the suitability of this software for any purpose. * It is provided "as is" without express or implied warranty. */ /* This file defines all of the type definitions need for call objects: */ #ifndef CALL_TYPES_H #define CALL_TYPES_H typedef struct Call_struct *Call; typedef struct Call_assign_struct *Call_assign; typedef struct Call_binary_struct *Call_binary; typedef struct Call_cast_struct *Call_cast; typedef struct Call_if_struct *Call_if; typedef struct Call_invoke_struct *Call_invoke; typedef struct Call_multi_struct *Call_multi; typedef struct Call_routine_struct *Call_routine; typedef struct Call_routine_param_struct *Call_routine_param; typedef struct Call_temp_struct *Call_temp; typedef struct Call_var_struct *Call_var; typedef union Call_value_union Call_value; typedef struct Convert_struct *Convert; /* Defining the enum here shuts alint up! */ enum Call_type_enum { Call_type_and_if, /* && */ Call_type_assign, /* var := ( */ Call_type_cast, /* (type_ref) */ Call_type_error, /* error */ Call_type_if, /* ? : */ Call_type_integer, /* */ Call_type_invoke, /* (... */ Call_type_multi, /* temp1, ..., tempN := (... */ Call_type_not, /* ! */ Call_type_object, /* contant object reference */ Call_type_or_if, /* && */ Call_type_routine, /* @ */ Call_type_routine_param, /* Routine parameter block */ Call_type_string, /* "String" */ Call_type_temp, /* Temporary variable */ Call_type_text, /* 'text' */ Call_type_var /* */ }; typedef enum Call_type_enum Call_type; #endif /* CALL_TYPES_H */