Fixed the parser on normal ALT guards, after the extended rendezvous change broke it
This commit is contained in:
parent
838de8a366
commit
a48be18109
|
@ -1716,7 +1716,7 @@ channelInput inAlt
|
||||||
eol
|
eol
|
||||||
indent
|
indent
|
||||||
p <- process
|
p <- process
|
||||||
mp <- if inAlt then return Nothing else (tryVX process outdent >>* Just) <|> (outdent >> return Nothing)
|
mp <- if inAlt then return (Just $ error "internal ALT error") else (tryVX process outdent >>* Just) <|> (outdent >> return Nothing)
|
||||||
return (c, A.InputSimple m is (Just p), mp)
|
return (c, A.InputSimple m is (Just p), mp)
|
||||||
|
|
||||||
extCaseInput m c
|
extCaseInput m c
|
||||||
|
@ -1726,7 +1726,8 @@ channelInput inAlt
|
||||||
indent
|
indent
|
||||||
p <- process
|
p <- process
|
||||||
mp <- if inAlt then return Nothing else (tryVX process outdent >>* Just) <|> (outdent >> return Nothing)
|
mp <- if inAlt then return Nothing else (tryVX process outdent >>* Just) <|> (outdent >> return Nothing)
|
||||||
return (c, A.InputCase m A.InputCaseExtended (A.Only m (tl p mp)), Nothing)
|
return (c, A.InputCase m A.InputCaseExtended (A.Only m (tl p mp)),
|
||||||
|
if inAlt then Just $ error "internal ALT error" else Nothing)
|
||||||
|
|
||||||
timerInput :: OccParser (A.Variable, A.InputMode)
|
timerInput :: OccParser (A.Variable, A.InputMode)
|
||||||
timerInput
|
timerInput
|
||||||
|
@ -2012,15 +2013,15 @@ guardedAlternative
|
||||||
guard :: OccParser (A.Process -> A.Alternative, Bool)
|
guard :: OccParser (A.Process -> A.Alternative, Bool)
|
||||||
guard
|
guard
|
||||||
= do m <- md
|
= do m <- md
|
||||||
(c, im, _) <- input True
|
(c, im, ext) <- input True
|
||||||
return (A.Alternative m (A.True m) c im, True)
|
return (A.Alternative m (A.True m) c im, isJust ext)
|
||||||
<|> do m <- md
|
<|> do m <- md
|
||||||
sSKIP
|
sSKIP
|
||||||
eol
|
eol
|
||||||
return (A.AlternativeSkip m (A.True m), False)
|
return (A.AlternativeSkip m (A.True m), False)
|
||||||
<|> do m <- md
|
<|> do m <- md
|
||||||
b <- tryVX expression sAmp
|
b <- tryVX expression sAmp
|
||||||
do { (c, im, _) <- input True; return (A.Alternative m b c im, True) }
|
do { (c, im, ext) <- input True; return (A.Alternative m b c im, isJust ext) }
|
||||||
<|> do { sSKIP; eol; return (A.AlternativeSkip m b, False) }
|
<|> do { sSKIP; eol; return (A.AlternativeSkip m b, False) }
|
||||||
<?> "guard"
|
<?> "guard"
|
||||||
--}}}
|
--}}}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user