Corrected the parser to accept normal channels with only one end shared

This commit is contained in:
Neil Brown 2009-04-14 12:07:41 +00:00
parent d2260e1736
commit 433be2105b

View File

@ -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"