#ifndef GCC_F_STT_H
#define GCC_F_STT_H
typedef struct _ffest_case_list_ *ffesttCaseList;
typedef struct _ffest_dim_list_ *ffesttDimList;
typedef struct _ffest_expr_list_ *ffesttExprList;
typedef struct _ffest_format_value_ ffesttFormatValue;
typedef struct _ffest_format_list_ *ffesttFormatList;
typedef struct _ffest_imp_list_ *ffesttImpList;
typedef struct _ffest_token_item_ *ffesttTokenItem;
typedef struct _ffest_token_list_ *ffesttTokenList;
#include "top.h"
#include "bld.h"
#include "info.h"
#include "lex.h"
#include "stp.h"
struct _ffest_case_list_
{
ffesttCaseList next;
ffesttCaseList previous;
ffelexToken t;
ffebld expr1;
ffebld expr2;
bool range;
};
struct _ffest_dim_list_
{
ffesttDimList next;
ffesttDimList previous;
ffelexToken t;
ffebld lower;
ffebld upper;
};
struct _ffest_expr_list_
{
ffesttExprList next;
ffesttExprList previous;
ffelexToken t;
ffebld expr;
};
struct _ffest_token_item_
{
ffesttTokenItem next;
ffesttTokenItem previous;
ffelexToken t;
};
struct _ffest_token_list_
{
ffesttTokenItem first;
ffesttTokenItem last;
int count;
};
struct _ffest_format_value_
{
bool present;
bool rtexpr;
ffelexToken t;
union
{
ffeUnionLongPtr unused;
long signed_val;
unsigned long unsigned_val;
ffebld expr;
}
u;
};
struct _ffest_format_list_
{
ffesttFormatList next;
ffesttFormatList previous;
ffelexToken t;
ffestpFormatType type;
union ffest_format_
{
struct
{
ffesttFormatValue R1004;
ffesttFormatValue R1006;
ffesttFormatValue R1007_or_R1008;
ffesttFormatValue R1009;
}
R1005;
struct
{
ffesttFormatValue val;
}
R1010;
struct
{
ffesttFormatValue R1004;
ffesttFormatList format;
}
R1003D;
struct
{
ffesttFormatList parent;
}
root;
}
u;
};
void ffestt_caselist_append (ffesttCaseList list, bool range, ffebld case1,
ffebld case2, ffelexToken t);
ffesttCaseList ffestt_caselist_create (void);
void ffestt_caselist_kill (ffesttCaseList list);
void ffestt_dimlist_append (ffesttDimList list, ffebld lower, ffebld upper,
ffelexToken t);
ffebld ffestt_dimlist_as_expr (ffesttDimList list, ffeinfoRank *rank,
ffebld *array_size, ffebld *extents,
bool is_ugly_assumed);
ffesttDimList ffestt_dimlist_create (void);
void ffestt_dimlist_kill (ffesttDimList list);
ffestpDimtype ffestt_dimlist_type (ffesttDimList dims, bool is_ugly_assumed);
void ffestt_exprlist_append (ffesttExprList list, ffebld expr, ffelexToken t);
ffesttExprList ffestt_exprlist_create (void);
void ffestt_exprlist_drive (ffesttExprList list, void (*fn) (ffebld, ffelexToken));
void ffestt_exprlist_kill (ffesttExprList list);
ffesttFormatList ffestt_formatlist_append (ffesttFormatList list);
ffesttFormatList ffestt_formatlist_create (ffesttFormatList parent,
ffelexToken t);
void ffestt_formatlist_kill (ffesttFormatList list);
void ffestt_implist_append (ffesttImpList list, ffelexToken first,
ffelexToken last);
ffesttImpList ffestt_implist_create (void);
void ffestt_implist_drive (ffesttImpList list, void (*fn) (ffelexToken, ffelexToken));
void ffestt_implist_kill (ffesttImpList list);
void ffestt_tokenlist_append (ffesttTokenList list, ffelexToken t);
ffesttTokenList ffestt_tokenlist_create (void);
void ffestt_tokenlist_drive (ffesttTokenList list, void (*fn) (ffelexToken));
ffelexHandler ffestt_tokenlist_handle (ffesttTokenList list,
ffelexHandler handler);
void ffestt_tokenlist_kill (ffesttTokenList list);
#define ffestt_init_0()
#define ffestt_init_1()
#define ffestt_init_2()
#define ffestt_init_3()
#define ffestt_init_4()
#define ffestt_terminate_0()
#define ffestt_terminate_1()
#define ffestt_terminate_2()
#define ffestt_terminate_3()
#define ffestt_terminate_4()
#define ffestt_tokenlist_count(tl) ((tl)->count)
#endif