From 51c83f4e947dd953a6cc66994c89243d77cf2958 Mon Sep 17 00:00:00 2001 From: Adam Sampson Date: Thu, 26 Apr 2007 02:25:37 +0000 Subject: [PATCH] Fix abbreviation parsing --- fco2/Parse.hs | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/fco2/Parse.hs b/fco2/Parse.hs index 7ca8a0f..6c509fc 100644 --- a/fco2/Parse.hs +++ b/fco2/Parse.hs @@ -1098,9 +1098,8 @@ abbreviation valIsAbbrev :: OccParser A.Specification valIsAbbrev = do m <- md - sVAL - (n, t, e) <- do { (n, e) <- tryVXV newVariableName sIS expression; sColon; eol; t <- typeOfExpression e; return (n, t, e) } - <|> do { s <- specifier; n <- newVariableName; sIS; e <- expressionOfType s; sColon; eol; return (n, s, e) } + (n, t, e) <- do { n <- tryXVX sVAL newVariableName sIS; e <- expression; sColon; eol; t <- typeOfExpression e; return (n, t, e) } + <|> do { (s, n) <- tryXVVX sVAL specifier newVariableName sIS; e <- expressionOfType s; sColon; eol; return (n, s, e) } return $ A.Specification m n $ A.IsExpr m A.ValAbbrev t e "VAL IS abbreviation"