Identical chunker body to code-c-ast-v1 (per-language work happens in the CppAstExtractor, Task C). Snapshot fixture covers nested namespace + class + ctor/dtor + method + operator overload + template fn + free fn + top-level main, verifying namespace::Class::method symbol convention per design §3.4. 5 chunks emitted: - <top-level> (includes, namespace opening) - kebab::chunk::MdHeadingV1Chunker (class unit) - kebab::identity (template function) - kebab::global_helper (free function in namespace) - main (top-level main function) Template function symbols emit without <T> parameters per spec convention. Namespace::Class::method pattern verified. All tests pass. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
41 lines
606 B
C++
41 lines
606 B
C++
#include <string>
|
|
#include <vector>
|
|
|
|
namespace kebab {
|
|
namespace chunk {
|
|
|
|
class MdHeadingV1Chunker {
|
|
public:
|
|
MdHeadingV1Chunker() = default;
|
|
~MdHeadingV1Chunker() = default;
|
|
|
|
std::string chunk_doc(const std::string& doc) {
|
|
return doc;
|
|
}
|
|
|
|
int operator()(int x) const {
|
|
return x * 2;
|
|
}
|
|
|
|
private:
|
|
int counter_ = 0;
|
|
};
|
|
|
|
template <typename T>
|
|
T identity(T value) {
|
|
return value;
|
|
}
|
|
|
|
} // namespace chunk
|
|
|
|
void global_helper() {
|
|
// free function in kebab namespace
|
|
}
|
|
|
|
} // namespace kebab
|
|
|
|
int main() {
|
|
kebab::chunk::MdHeadingV1Chunker c;
|
|
return 0;
|
|
}
|