public ClassFeatureBlock(ClassFeatureBlockOpenTagToken StartToken, ControlBlockStream Contents, BlockTagCloseToken EndToken) { this.StartToken = StartToken; this.Contents = Contents; this.EndToken = EndToken; }
public ControlBlock(ControlBlockTagOpenToken StartToken, ControlBlockStream Contents, BlockTagCloseToken EndToken) { this.StartToken = StartToken; this.Contents = Contents; this.EndToken = EndToken; }
// Stream public bool TryParseControlBlockStream(Lexer lexer, out ControlBlockStream result) { var list = new List <IControlBlockStreamListContent>(); while (lexer.CanReadExcept(new string[] { "#>" })) { { //if (this.TryParseSourceCodeToken(lexer, new string[] {"#>"}, out var r)) if (this.TryParseSourceCodeToken(lexer, new string[] { "#>" }, out var r)) { list.Add(r); // Start from begining of the stream priority. continue; } } } result = new ControlBlockStream(list); // Streams are always parsed with success. return(true); } // Parse method end