Introduce a simple line-by-line iterator type into the Support library.
authorChandler Carruth <chandlerc@gmail.com>
Fri, 27 Dec 2013 04:28:57 +0000 (04:28 +0000)
committerChandler Carruth <chandlerc@gmail.com>
Fri, 27 Dec 2013 04:28:57 +0000 (04:28 +0000)
commitf8c5281c875fd529dc6e4c0a9b2e3a0b3fedf519
tree324f933122164da211782a769d8376683fea2ecb
parentae50a9e6763f8a2abd97950208031ed416dc5d8a
Introduce a simple line-by-line iterator type into the Support library.

This is an iterator which you can build around a MemoryBuffer. It will
iterate through the non-empty, non-comment lines of the buffer as
a forward iterator. It should be small and reasonably fast (although it
could be made much faster if anyone cares, I don't really...).

This will be used to more simply support the text-based sample
profile file format, and is largely based on the original patch by
Diego. I've re-worked the style of it and separated it from the work of
producing a MemoryBuffer from a file which both simplifies the interface
and makes it easier to test.

The style of the API follows the C++ standard naming conventions to fit
in better with iterators in general, much like the Path and FileSystem
interfaces follow standard-based naming conventions.

llvm-svn: 198068
llvm/include/llvm/Support/LineIterator.h [new file with mode: 0644]
llvm/lib/Support/CMakeLists.txt
llvm/lib/Support/LineIterator.cpp [new file with mode: 0644]
llvm/unittests/Support/CMakeLists.txt
llvm/unittests/Support/LineIteratorTest.cpp [new file with mode: 0644]