diff options
Diffstat (limited to 'testsuite/tests/programs/joao-circular/Data_Lazy.hs')
-rw-r--r-- | testsuite/tests/programs/joao-circular/Data_Lazy.hs | 273 |
1 files changed, 273 insertions, 0 deletions
diff --git a/testsuite/tests/programs/joao-circular/Data_Lazy.hs b/testsuite/tests/programs/joao-circular/Data_Lazy.hs new file mode 100644 index 0000000000..d5ab24a9ca --- /dev/null +++ b/testsuite/tests/programs/joao-circular/Data_Lazy.hs @@ -0,0 +1,273 @@ +module Data_Lazy where + +import LrcPrelude + +-- +-- Abstract Syntax +-- +-- +data P + = C_RootProd_1 !Defs + deriving (Show , Eq , Ord) + +data Defs + = C_Defs2_1 !Def !Defs + | C_NoDefs_1 + deriving (Show , Eq , Ord) + +data Def + = C_Arraydecl_1 !Type !Name !INT + | C_Declfunc_1 !Type !Name !FormPars !Stats + | C_Declfunc_header_1 !Type !Name !FormPars !Stats + | C_Declfunc_header_novar_1 !Type !Name !FormPars !Stats + | C_Vardecl_1 !Type !Name + deriving (Show , Eq , Ord) + +data Type + = C_Booltype_1 + | C_Chartype_1 + | C_Errortype_1 + | C_Inttype_1 + | C_Realtype_1 + deriving (Show , Eq , Ord) + +data Name + = C_Ident_1 !STR + deriving (Show , Eq , Ord) + +data FormPars + = C_Emptyformpars_1 + | C_Lstformpars_1 !FormPar !FormPars + deriving (Show , Eq , Ord) + +data FormPar + = C_Declformpar_1 !Type !Name + deriving (Show , Eq , Ord) + +data Stats + = C_Emptystat_1 + | C_Lststats_1 !Stat !Stats + deriving (Show , Eq , Ord) + +data Stat + = C_ArrAssign_1 !ArrayUse !Exp + | C_Assign_1 !Name !Exp + | C_Funccall_1 !Name !ActPars + | C_If_t_e_1 !Exp !Stats !Stats + | C_Input_1 !Name + | C_LocalDecl_1 !Type !Name + | C_Print_1 !Exp + | C_While_1 !Exp !Stats + deriving (Show , Eq , Ord) + +data ArrayUse + = C_ArrayInd_1 !Name !Exp + deriving (Show , Eq , Ord) + +data Exp + = C_AddExp_1 !Exp !Exp + | C_AndExp_1 !Exp !Exp + | C_DivExp_1 !Exp !Exp + | C_EqExp_1 !Exp !Exp + | C_Factor_1 !Fac + | C_GTExp_1 !Exp !Exp + | C_LTExp_1 !Exp !Exp + | C_MinExp_1 !Exp + | C_MulExp_1 !Exp !Exp + | C_NotExp_1 !Exp + | C_OrExp_1 !Exp !Exp + | C_SubExp_1 !Exp !Exp + deriving (Show , Eq , Ord) + +data Fac + = C_ArrayConst_1 !ArrayUse + | C_BoolConst_1 !BOOL + | C_CNIdent_1 !Name + | C_Expr_1 !Exp + | C_Funcinv_1 !Name !ActPars + | C_IntConst_1 !INT + | C_RealConst_1 !REAL + deriving (Show , Eq , Ord) + +data ActPars + = C_Emptyactpars_1 + | C_Lstactpars_1 !Exp !ActPars + deriving (Show , Eq , Ord) + +data PPRoot + = C_All_1 !PPS + | C_Best_1 !PPS + deriving (Show , Eq , Ord) + +data PPS + = C_Above_1 !PPS !PPS + | C_Apply_1 !PPC !PPSArgs + | C_Beside_1 !PPS !PPS + | C_Dup_1 !PPS !PPS + | C_Empty_1 + | C_FillBlock_1 !INT !FillList + | C_Filla_1 !FillList + | C_Indent_1 !INT !PPS + | C_Join_1 !PPS + | C_Text_1 !STR + deriving (Show , Eq , Ord) + +data PPC + = C_AboveC_1 !PPC !PPC + | C_ApplyC_1 !PPC !PPCArgs + | C_BesideC_1 !PPC !PPC + | C_DupC_1 !PPC !PPC + | C_IndentC_1 !INT !PPC + | C_JoinC_1 !PPC + | C_ParC_1 + deriving (Show , Eq , Ord) + +data PPCArgs + = C_ConsPPCArgs_1 !PPC !PPCArgs + | C_NilPPCArgs_1 + deriving (Show , Eq , Ord) + +data PPSArgs + = C_ConsArgs_1 !PPS !PPSArgs + | C_NilArgs_1 + deriving (Show , Eq , Ord) + +data FillList + = C_ConsFillList_1 !PPS !FillList + | C_NilFillList_1 + deriving (Show , Eq , Ord) + + +-- +-- Type of Attributes +-- +-- +type Code = [Instr] + +type CodeParams = [Code] + +data Disp + = C_Displ_1 !PPS + deriving (Show , Eq , Ord) + +data ENTRY + = C_Consarray_1 !Type !INT !INT + | C_Consfunc_1 !Type !INT !LSTPARAM + | C_Consvar_1 !Type !INT + | C_EmptyEntry_1 + deriving (Show , Eq , Ord) + +type ERROR = [OneError] + +data Format + = C_Elem_1 !INT !INT !INT !Lst_Str + deriving (Show , Eq , Ord) + +type Formats = [Format] + +data Instr + = C_ALabel_1 !Name + | C_Add_1 + | C_And_1 + | C_Call_1 !Name + | C_Cod_1 + | C_Data_1 + | C_Div_1 + | C_Eq_1 + | C_Gt_1 + | C_Halt_1 + | C_IIn_1 + | C_IOut_1 + | C_Jump_1 !Name + | C_Jumpf_1 !Name + | C_Load_1 + | C_Lt_1 + | C_Minus_1 + | C_Mul_1 + | C_Neq_1 + | C_Not_1 + | C_Or_1 + | C_Pusha_1 !Name !INT + | C_Pushb_1 !BOOL + | C_Pushi_1 !INT + | C_Pushr_1 !REAL + | C_Ret_1 + | C_Store_1 + | C_Sub_1 + | C_Var_1 !Name !INT !Type + deriving (Show , Eq , Ord) + +type LSTPARAM = [OneParam] + +type Lst_Str = [STR] + +data OneError + = C_E_FormParam_AD_1 !Name + | C_E_Fun_ND_1 !Name + | C_E_Loc_Name_AD_1 !Name + | C_E_Name_AD_1 !Name + | C_E_Name_ND_1 !Name + deriving (Show , Eq , Ord) + +data OneParam + = C_AParam_1 !Type !Name + deriving (Show , Eq , Ord) + +data OneTypeError + = C_E_T_ActParam_1 + | C_E_T_BOP_1 + | C_E_T_DT_1 !Name + | C_E_T_IndArrNotInt_1 + | C_E_T_NC_1 !Type !Type + | C_E_T_NotArithExp_1 + | C_E_T_NotBooleanExp_1 + | C_E_T_if_t_e_1 + | C_E_T_while_1 + | C_NoTypeError_1 + deriving (Show , Eq , Ord) + +data Pair_Formats + = C_C_Pair_Formats_1 !Formats !BOOL + deriving (Show , Eq , Ord) + +data Pair_Lst_T_Errs + = C_CPair_Lst_T_Errs_1 !T_Errs !T_Errs + deriving (Show , Eq , Ord) + +data Pair_Lst_T_Fmts + = C_CPair_Lst_T_Fmts_1 !T_Fmts !T_Fmts + deriving (Show , Eq , Ord) + +data Pair_Lst_T_Mins + = C_CPair_Lst_T_Mins_1 !T_Mins !T_Mins + deriving (Show , Eq , Ord) + +data Pair_T_Formats + = C_C_Pair_T_Formats_1 !T_Formats !BOOL + deriving (Show , Eq , Ord) + +data Sizes + = C_Triple_1 !INT !INT !INT + deriving (Show , Eq , Ord) + +type TYPES = [Type] + +type T_Errs = [BOOL] + +type T_Fmts = [T_Formats] + +data T_Formats + = C_AFormat_1 !Formats + | C_TFormats_1 !Formats !Formats !BOOL !BOOL + deriving (Show , Eq , Ord) + +data T_Frame + = C_F_1 !INT !INT + deriving (Show , Eq , Ord) + +type T_Mins = [Sizes] + +type T_Reqs = [T_Frame] + +type TypeError = [OneTypeError] + |