aboutsummaryrefslogtreecommitdiff
path: root/frontend/syntax.icl
diff options
context:
space:
mode:
Diffstat (limited to 'frontend/syntax.icl')
-rw-r--r--frontend/syntax.icl79
1 files changed, 43 insertions, 36 deletions
diff --git a/frontend/syntax.icl b/frontend/syntax.icl
index f0cf4b1..5146852 100644
--- a/frontend/syntax.icl
+++ b/frontend/syntax.icl
@@ -716,7 +716,6 @@ instance <<< ParsedSelector
where
(<<<) file {ps_field_ident,ps_field_type} = file <<< ps_field_ident <<< ps_field_type
-
instance <<< ModuleKind
where
(<<<) file kind = file
@@ -772,7 +771,15 @@ where
instance <<< ExprWithLocalDefs
where
- (<<<) file {ewl_expr,ewl_locals} = file <<< ewl_expr <<< ewl_locals
+ (<<<) file {ewl_expr,ewl_locals,ewl_nodes=[]} = file <<< ewl_expr <<< ewl_locals
+ (<<<) file {ewl_expr,ewl_locals,ewl_nodes} = file <<< ewl_nodes <<< '\n' <<< ewl_expr <<< ewl_locals
+
+instance <<< NodeDefWithLocals
+where
+ (<<<) file {ndwl_strict,ndwl_def,ndwl_locals}
+ | ndwl_strict
+ = file <<< "\n#! " <<< ndwl_def <<< ndwl_locals;
+ = file <<< "\n# " <<< ndwl_def <<< ndwl_locals;
instance <<< GuardedExpr
where
@@ -855,43 +862,43 @@ instance <<< CoercionPosition
where
(<<<) file (CP_FunArg fun_name arg_nr)
= file <<< "argument " <<< arg_nr <<< " of " <<< readable fun_name
- (<<<) file (CP_SymbArg fun_name arg_nr)
- = file <<< "argument " <<< arg_nr <<< " of " <<< readable fun_name.symb_ident
+ (<<<) file (CP_SymbArgAndExpression fun_name arg_nr expression)
+ = show_expression (file <<< "argument " <<< arg_nr <<< " of " <<< readable fun_name.symb_ident <<< " : ") expression
(<<<) file (CP_LiftedFunArg fun_name arg_name)
= file <<< "lifted argument " <<< arg_name <<< " of " <<< readable fun_name
(<<<) file (CP_Expression expression) = show_expression file expression
- where
- show_expression file (Var {var_ident})
- = file <<< var_ident
- show_expression file (FreeVar {fv_ident})
- = file <<< fv_ident
- show_expression file (App {app_symb={symb_ident}, app_args})
- | symb_ident.id_name=="_dummyForStrictAlias"
- = show_expression file (hd app_args)
- = file <<< readable symb_ident
- show_expression file (fun @ fun_args)
- = show_expression file fun
- show_expression file (Case {case_ident=No})
- = file <<< "(case ... )"
- show_expression file (Selection _ expr selectors)
- = file <<< "selection"
- show_expression file (Update expr1 selectors expr2)
- = file <<< "update"
- show_expression file (TupleSelect {ds_arity} elem_nr expr)
- = file <<< "argument " <<< (elem_nr + 1) <<< " of " <<< ds_arity <<< "-tuple"
- show_expression file (BasicExpr bv)
- = file <<< bv
- show_expression file (RecordUpdate _ _ _)
- = file <<< "update of record"
- show_expression file (MatchExpr _ expr)
- = file <<< "match expression"
- show_expression file (IsConstructor _ _ _ _ _ _)
- = file <<< "is constructor expression"
- show_expression file (Let _)
- = file <<< "(let ... ) or #"
- show_expression file _
- = file
-
+
+show_expression file (Var {var_ident})
+ = file <<< var_ident
+show_expression file (FreeVar {fv_ident})
+ = file <<< fv_ident
+show_expression file (App {app_symb={symb_ident}, app_args})
+ | symb_ident.id_name=="_dummyForStrictAlias"
+ = show_expression file (hd app_args)
+ = file <<< readable symb_ident
+show_expression file (fun @ fun_args)
+ = show_expression file fun
+show_expression file (Case {case_ident=No})
+ = file <<< "(case ... )"
+show_expression file (Selection _ expr selectors)
+ = file <<< "selection"
+show_expression file (Update expr1 selectors expr2)
+ = file <<< "update"
+show_expression file (TupleSelect {ds_arity} elem_nr expr)
+ = file <<< "argument " <<< (elem_nr + 1) <<< " of " <<< ds_arity <<< "-tuple"
+show_expression file (BasicExpr bv)
+ = file <<< bv
+show_expression file (RecordUpdate _ _ _)
+ = file <<< "update of record"
+show_expression file (MatchExpr _ expr)
+ = file <<< "match expression"
+show_expression file (IsConstructor _ _ _ _ _ _)
+ = file <<< "is constructor expression"
+show_expression file (Let _)
+ = file <<< "(let ... ) or #"
+show_expression file _
+ = file
+
instance <<< Declaration
where
(<<<) file (Declaration { decl_ident, decl_kind })