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)
commit5ff21b411149095abb421c1e1263341360072cec
treed34de93b7beaf2c032c7f26de8e85291c9b30495
parent52b162375ad7f0e1d820ae959031ac70e254aa3b
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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@198068 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/Support/LineIterator.h [new file with mode: 0644]
lib/Support/CMakeLists.txt
lib/Support/LineIterator.cpp [new file with mode: 0644]
unittests/Support/CMakeLists.txt
unittests/Support/LineIteratorTest.cpp [new file with mode: 0644]