aboutsummaryrefslogtreecommitdiff
path: root/frontend/syntax.dcl
diff options
context:
space:
mode:
Diffstat (limited to 'frontend/syntax.dcl')
-rw-r--r--frontend/syntax.dcl21
1 files changed, 12 insertions, 9 deletions
diff --git a/frontend/syntax.dcl b/frontend/syntax.dcl
index 3d5eb75..c9427dc 100644
--- a/frontend/syntax.dcl
+++ b/frontend/syntax.dcl
@@ -427,6 +427,11 @@ cIsNonCoercible :== 2
, fc_index :: !Index
}
+/* Sjaak 19-3-2001 ... */
+
+FI_IsMacroFun :== 1 // whether the function is a local function of a macro
+FI_HasTypeSpec :== 2 // whether the function has u user defined type
+
:: FunInfo =
{ fi_calls :: ![FunCall]
, fi_group_index :: !Index
@@ -434,8 +439,9 @@ cIsNonCoercible :== 2
, fi_free_vars :: ![FreeVar]
, fi_local_vars :: ![FreeVar]
, fi_dynamics :: ![ExprInfoPtr]
- , fi_is_macro_fun :: !Bool // whether the function is a local function of a macro
+ , fi_properties :: !BITVECT
}
+/* ... Sjaak 19-3-2001 */
:: ParsedBody =
{ pb_args :: ![ParsedExpr]
@@ -486,7 +492,6 @@ cIsNonCoercible :== 2
, fun_index :: !Int
, fun_kind :: !DefOrImpFunKind
, fun_lifted :: !Int
-// , fun_type_ptr :: !TypeVarInfoPtr
, fun_info :: !FunInfo
}
@@ -909,14 +914,12 @@ cNonRecursiveAppl :== False
:: BasicValue = BVI !String | BVC !String | BVB !Bool | BVR !String | BVS !String
-
-//:: TypeKind = KindVar !KindInfoPtr | KindConst | KindArrow !Int
:: TypeKind = KindVar !KindInfoPtr | KindConst | KindArrow ![TypeKind]
-instance toString TypeKind
-instance <<< TypeKind
-instance == TypeKind
-instance toString KindInfo
+instance toString TypeKind
+instance <<< TypeKind
+instance == TypeKind
+instance toString KindInfo
/* A few obscure type definitions */
@@ -1267,7 +1270,7 @@ MakeAttributedType type :== { at_attribute = TA_None, at_annotation = AN_None, a
MakeAttributedTypeVar type_var :== { atv_attribute = TA_None, atv_annotation = AN_None, atv_variable = type_var }
EmptyFunInfo :== { fi_calls = [], fi_group_index = NoIndex, fi_def_level = NotALevel,
- fi_free_vars = [], fi_local_vars = [], fi_dynamics = [], fi_is_macro_fun=False }
+ fi_free_vars = [], fi_local_vars = [], fi_dynamics = [], fi_properties=0 }
BottomSignClass :== { sc_pos_vect = 0, sc_neg_vect = 0 }
PostiveSignClass :== { sc_pos_vect = bitnot 0, sc_neg_vect = 0 }