mirror of
https://github.com/github/semantic.git
synced 2024-12-22 06:11:49 +03:00
Children assignments continue after the last child assignment.
This commit is contained in:
parent
ca0d4328ff
commit
ec8be238d1
@ -104,7 +104,7 @@ runAssignment = iterFreer run . fmap (\ a state -> Result (state, a))
|
||||
(Location, []) -> yield (Info.Range stateOffset stateOffset :. Info.SourceSpan statePos statePos :. Nil) state
|
||||
(Source, Rose (_ :. range :. _) _ : _) -> yield (Source.sourceText (Source.slice (offsetRange range (negate stateOffset)) stateSource)) (advanceState state)
|
||||
(Children childAssignment, Rose _ children : _) -> case assignAllFrom childAssignment state { stateNodes = children } of
|
||||
Result (_, a) -> yield a (advanceState state)
|
||||
Result (state', a) -> yield a (advanceState state' { stateNodes = stateNodes })
|
||||
Error e -> Error e
|
||||
(Choose choices, Rose (symbol :. _) _ : _) | Just a <- IntMap.lookup (fromEnum symbol) choices -> yield a state
|
||||
-- Nullability: some rules, e.g. 'pure a' and 'many a', should match at the end of input. Either side of an alternation may be nullable, ergo Alt can match at the end of input.
|
||||
|
Loading…
Reference in New Issue
Block a user