diff options
author | ronny | 2002-08-27 08:32:11 +0000 |
---|---|---|
committer | ronny | 2002-08-27 08:32:11 +0000 |
commit | e72dcd192141f9eaf8942aebf6e88a9611a6b853 (patch) | |
tree | b10c80d6073b35b8ff65b6a9c65e5fec77020dd1 | |
parent | remove record fields: ui_convert_module_n and ui_conversion_table (diff) |
Added FailExpr node
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1193 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
-rw-r--r-- | backend/backendconvert.icl | 2 | ||||
-rw-r--r-- | frontend/syntax.dcl | 1 | ||||
-rw-r--r-- | frontend/syntax.icl | 2 |
3 files changed, 5 insertions, 0 deletions
diff --git a/backend/backendconvert.icl b/backend/backendconvert.icl index a005f04..a196f12 100644 --- a/backend/backendconvert.icl +++ b/backend/backendconvert.icl @@ -1696,6 +1696,8 @@ convertRootExpr aliasDummyId (Case kees=:{case_expr, case_guards}) main_dcl_modu -> abort "backendconvert:defaultCase, case without id" // otherwise = DefaultCaseNone +convertRootExpr _ (FailExpr fail_ident) _ + = beNormalNode (beLiteralSymbol BEFailSymb fail_ident.id_name) beNoArgs convertRootExpr _ expr main_dcl_module_n = convertExpr expr main_dcl_module_n diff --git a/frontend/syntax.dcl b/frontend/syntax.dcl index 15d9c02..7d10d81 100644 --- a/frontend/syntax.dcl +++ b/frontend/syntax.dcl @@ -1235,6 +1235,7 @@ cIsNotStrict :== False | TypeCodeExpression !TypeCodeExpression | EE | NoBind ExprInfoPtr /* auxiliary, to store fields that are not specified in a record expression */ + | FailExpr !Ident // only allowed on (case) root positions :: CodeBinding variable :== Env String variable diff --git a/frontend/syntax.icl b/frontend/syntax.icl index 09c8e73..9db1f27 100644 --- a/frontend/syntax.icl +++ b/frontend/syntax.icl @@ -1226,6 +1226,7 @@ cIsNotStrict :== False | TypeCodeExpression !TypeCodeExpression | EE | NoBind ExprInfoPtr /* auxiliary, to store fields that are not specified in a record expression */ + | FailExpr !Ident // only allowed on (case) root positions :: CodeBinding variable :== Env String variable @@ -1746,6 +1747,7 @@ where (<<<) file (FreeVar {fv_name}) = file <<< fv_name (<<<) file (ClassVariable info_ptr) = file <<< "ClassVariable " <<< info_ptr + (<<<) file (FailExpr _) = file <<< "** FAIL **" (<<<) file expr = abort ("<<< (Expression) [line 1290]" )//<<- expr) instance <<< LetBind |