private void ParseBlockSequence(BufferedTokenEnumerator tokenEnumerator, List <Region> regions) { Token previousBlockEntry = null; while (tokenEnumerator.MoveNext()) { var token = tokenEnumerator.Current; var isBlockEnd = token is BlockEnd; if (isBlockEnd || token is BlockEntry) { if (previousBlockEntry != null && previousBlockEntry.End.Line != tokenEnumerator.Previous.End.Line) { regions.Add(new Region(previousBlockEntry.End, tokenEnumerator.Previous.End)); } if (isBlockEnd) { return; } previousBlockEntry = token; } else if (token is BlockSequenceStart) { ParseBlockSequence(tokenEnumerator, regions); } else if (token is BlockMappingStart) { ParseBlockMapping(tokenEnumerator, regions); } } }
private void ParseBlockMapping(BufferedTokenEnumerator tokenEnumerator, List<Region> regions) { Token currentValueEntry = null; while (tokenEnumerator.MoveNext()) { var token = tokenEnumerator.Current; var isBlockEnd = token is BlockEnd; if (isBlockEnd || token is Key) { if (currentValueEntry != null && currentValueEntry.End.Line != tokenEnumerator.Previous.End.Line) { regions.Add(new Region(currentValueEntry.End, tokenEnumerator.Previous.End)); } if (isBlockEnd) { return; } } else if (token is Value) { currentValueEntry = token; } else if (token is BlockSequenceStart) { ParseBlockSequence(tokenEnumerator, regions); } else if (token is BlockMappingStart) { ParseBlockMapping(tokenEnumerator, regions); } } }
private void ParseRegions(BufferedTokenEnumerator tokenEnumerator, List <Region> regions) { while (tokenEnumerator.MoveNext()) { var token = tokenEnumerator.Current; if (token is BlockSequenceStart) { ParseBlockSequence(tokenEnumerator, regions); } else if (token is BlockMappingStart) { ParseBlockMapping(tokenEnumerator, regions); } } }
private void ParseRegions(BufferedTokenEnumerator tokenEnumerator, List<Region> regions) { while (tokenEnumerator.MoveNext()) { var token = tokenEnumerator.Current; if (token is BlockSequenceStart) { ParseBlockSequence(tokenEnumerator, regions); } else if (token is BlockMappingStart) { ParseBlockMapping(tokenEnumerator, regions); } } }