X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Fsoftware%2Fmatita%2Fcontribs%2Fassembly%2Fcompiler%2Fpreast_tree.ma;h=6ad8c3d62e8834a1f6c65a8a900277a7f4701d63;hb=c22f39a5d5afc0ef55beb221e00e2e6703b13d90;hp=fcc1fbf4a7edea1690fe76bc262e2efba9770ca6;hpb=21f1fb39b5e1187ef87387f20522e60abe4f7c19;p=helm.git diff --git a/helm/software/matita/contribs/assembly/compiler/preast_tree.ma b/helm/software/matita/contribs/assembly/compiler/preast_tree.ma index fcc1fbf4a..6ad8c3d62 100755 --- a/helm/software/matita/contribs/assembly/compiler/preast_tree.ma +++ b/helm/software/matita/contribs/assembly/compiler/preast_tree.ma @@ -20,8 +20,6 @@ (* ********************************************************************** *) include "string/string.ma". -include "compiler/utility.ma". -include "freescale/word32.ma". include "compiler/ast_type.ma". (* ****************** *) @@ -44,6 +42,9 @@ inductive preast_expr : Type ≝ | PREAST_EXPR_DIV: preast_expr → preast_expr → preast_expr | PREAST_EXPR_SHR: preast_expr → preast_expr → preast_expr | PREAST_EXPR_SHL: preast_expr → preast_expr → preast_expr +| PREAST_EXPR_AND: preast_expr → preast_expr → preast_expr +| PREAST_EXPR_OR: preast_expr → preast_expr → preast_expr +| PREAST_EXPR_XOR: preast_expr → preast_expr → preast_expr | PREAST_EXPR_GT : preast_expr → preast_expr → preast_expr | PREAST_EXPR_GTE: preast_expr → preast_expr → preast_expr @@ -69,6 +70,25 @@ with preast_var : Type ≝ (* -------------------------- *) +(* inizializzatori: ... valori ... *) +inductive preast_init_val : Type ≝ + PREAST_INIT_VAL_BYTE8: byte8 → preast_init_val +| PREAST_INIT_VAL_WORD16: word16 → preast_init_val +| PREAST_INIT_VAL_WORD32: word32 → preast_init_val +| PREAST_INIT_VAL_ARRAY: ne_list preast_init_val → preast_init_val +| PREAST_INIT_VAL_STRUCT: ne_list preast_init_val → preast_init_val. + +(* + inizializzatori: ammesse solo due forme, no ibridi + 1) var1 = var2 + 2) var = ... valori ... +*) +inductive preast_init : Type ≝ + PREAST_INIT_VAR: preast_var → preast_init +| PREAST_INIT_VAL: preast_init_val → preast_init. + +(* -------------------------- *) + (* statement: assegnamento/while/if else if else *) inductive preast_stm : Type ≝ PREAST_STM_ASG: preast_var → preast_expr → preast_stm @@ -78,7 +98,8 @@ inductive preast_stm : Type ≝ (* dichiarazioni *) with preast_decl : Type ≝ PREAST_NO_DECL: list preast_stm → preast_decl -| PREAST_DECL: bool → aux_str_type → ast_type → option preast_expr → preast_decl → preast_decl. +| PREAST_CONST_DECL: aux_str_type → ast_type → preast_init → preast_decl → preast_decl +| PREAST_VAR_DECL: aux_str_type → ast_type → option preast_init → preast_decl → preast_decl. (* -------------------------- *)