/* %Z%%M% %I% %E% */

/*
 * Copyright (c) 1990, 1991, 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 contains the typedefs for statements: */

#ifndef STATEMENT_TYPES_H
#define STATEMENT_TYPES_H

typedef struct Breakpoint_struct	*Breakpoint;
typedef struct Statement_struct		*Statement;
typedef struct Statement_case_struct	*Statement_case;
typedef struct Statement_cond_struct	*Statement_cond;
typedef struct Statement_extract_struct	*Statement_extract;
typedef struct Statement_initialize_struct *Statement_initialize;
typedef struct Statement_loop_struct	*Statement_loop;
typedef struct Statement_label_struct	*Statement_label;
typedef struct Statement_tag_struct	*Statement_tag;
typedef enum Statement_kind_enum	Statement_kind;
typedef struct Statement_switch_struct	*Statement_switch;
typedef union Statement_value_union	Statement_value;

/* Defining the enum here shuts alint up! */
enum Statement_kind_enum {
	Statement_kind_assert,		/* Assert statement */
	Statement_kind_break,		/* break statement */
	Statement_kind_continue,	/* continue statement */
	Statement_kind_eval,		/* Assignment statement */
	Statement_kind_extract,		/* Extract statement */
	Statement_kind_if,		/* if statement */
	Statement_kind_initialize,	/* initialize statement */
	Statement_kind_loop,		/* loop statment */
	Statement_kind_none,		/* Comment */
	Statement_kind_return,		/* return statement */
	Statement_kind_signal,		/* signal statement */
	Statement_kind_switch,		/* switch statement */
	Statement_kind_until,		/* until statement */
	Statement_kind_while,		/* while statement */
	Statement_kind_yield,		/* yield statement */
	Statement_kind_size		/* Number of statement kinds */
};

#endif /* STATEMENT_TYPES_H */
