From 68a2f4498a328c0d152cd535ffde5f7195cb6331 Mon Sep 17 00:00:00 2001 From: sof Date: Mon, 26 May 1997 04:24:36 +0000 Subject: [PATCH] [project @ 1997-05-26 04:24:36 by sof] labelled field fixes --- ghc/compiler/parser/syntax.c | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/ghc/compiler/parser/syntax.c b/ghc/compiler/parser/syntax.c index 4194377..73b39f0 100644 --- a/ghc/compiler/parser/syntax.c +++ b/ghc/compiler/parser/syntax.c @@ -318,6 +318,7 @@ lhs_is_patt(tree e) case llist: case tuple: case negate: + case record: expORpat(LEGIT_PATT, e); return TRUE; @@ -327,13 +328,17 @@ lhs_is_patt(tree e) case ap: { tree f = function(e); - tree a = garg(e); /* do not "unparen", otherwise the error - fromInteger ((x,y) {-no comma-} z) - will be missed. - */ - /* definitions must have pattern arguments */ +/* These lines appear to duplicate what's in function(e). + Nuked SLPJ May 97 + + tree a = garg(e); -- do not "unparen", otherwise the error + -- fromInteger ((x,y) {-no comma-} z) + -- will be missed. + + -- definitions must have pattern arguments expORpat(LEGIT_PATT, a); +*/ if(ttree(f) == ident) return(isconstr(qid_to_string(gident(f)))); @@ -342,7 +347,7 @@ lhs_is_patt(tree e) return(lhs_is_patt(f)); else - hsperror("Not a legal pattern binding in LHS"); + hsperror("Syntax error: not a legal pattern binding in LHS"); } case infixap: @@ -363,7 +368,7 @@ lhs_is_patt(tree e) /* Anything else must be an illegal LHS */ default: - hsperror("Not a valid LHS"); + hsperror("Syntax error: not a valid LHS"); } abort(); /* should never get here */ @@ -372,7 +377,8 @@ lhs_is_patt(tree e) /* - Return the function at the root of a series of applications. + Return the function at the root of a series of applications, + checking on the way that the arguments are patterns. */ tree -- 1.7.10.4