From 433be2105b04722f86ac4da62c4cec9acc972e62 Mon Sep 17 00:00:00 2001 From: Neil Brown Date: Tue, 14 Apr 2009 12:07:41 +0000 Subject: [PATCH] Corrected the parser to accept normal channels with only one end shared --- frontends/ParseOccam.hs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/frontends/ParseOccam.hs b/frontends/ParseOccam.hs index 20a6190..f3ac162 100644 --- a/frontends/ParseOccam.hs +++ b/frontends/ParseOccam.hs @@ -601,7 +601,12 @@ dataType channelType :: OccParser A.Type channelType = do { sCHAN; optional sOF; p <- protocol; return $ A.Chan A.ChanAttributes {A.caWritingShared = A.Unshared, A.caReadingShared = A.Unshared} p } - <|> do { sSHARED; sCHAN; optional sOF; p <- protocol; return $ A.Chan A.ChanAttributes {A.caWritingShared = A.Shared, A.caReadingShared = A.Shared} p } + <|> do { tryXX sSHARED sCHAN; optional sOF; p <- protocol; return $ A.Chan A.ChanAttributes + {A.caWritingShared = A.Shared, A.caReadingShared = A.Shared} p } + <|> do { tryXXX sSHARED sBang sCHAN; optional sOF; p <- protocol; return $ A.Chan A.ChanAttributes + {A.caWritingShared = A.Shared, A.caReadingShared = A.Unshared} p } + <|> do { tryXXX sSHARED sQuest sCHAN; optional sOF; p <- protocol; return $ A.Chan A.ChanAttributes + {A.caWritingShared = A.Unshared, A.caReadingShared = A.Shared} p } <|> arrayType channelType "channel type"