private static bool DoBlock(Interpreter interpreter, SourceReader reader, State state) { var items = reader.ReadMultiItemScope(TokenType.LeftCurly, TokenType.RightCurly, TokenType.Pipe, BracketPairs.All).ToArray(); var attribs = interpreter.NextAttribs; interpreter._blockAttribs = new BlockAttribs(); if (!items.Any() || !interpreter.TakeChance()) return false; var rep = new Repeater(items, attribs); interpreter.PushRepeater(rep); state.AddPreBlueprint(new RepeaterBlueprint(interpreter, rep)); return true; }
public void PushRepeater(Repeater repeater) { _repeaterStack.Push(repeater); }