Ktoś może podpowiedzieć jak stworzyć prosty przykład z użyciem cppast https://github.com/standardese/cppast ?
chatgpt zaproponował rozwiązanie ale sie nie kompiluje
#include <cppast/cpp_file.hpp>
#include <cppast/cpp_class.hpp>
#include <cppast/visitor.hpp>
#include <cppast/cpp_entity.hpp>
#include <cppast/parser.hpp>
#include <iostream>
#include <string>
#include <fstream>
void visit_class(const cppast::cpp_class& cls) {
std::cout << "Class found: " << cls.name() << std::endl;
}
int main() {
const std::string filename = "ex1.h"; // Ścieżka do pliku nagłówkowego
// Otwórz plik i przygotuj parser
std::ifstream file_stream(filename);
if (!file_stream.is_open()) {
std::cerr << "Nie mogę otworzyć pliku: " << filename << std::endl;
return 1;
}
// Wczytaj plik C++ i stwórz obiekt cpp_file
cppast::cpp_file file;
try {
cppast::cpp_parser parser(file_stream);
file = parser.parse();
} catch (const std::exception& e) {
std::cerr << "Błąd podczas parsowania pliku: " << e.what() << std::endl;
return 1;
}
// Iteracja po jednostkach w pliku i wypisywanie nazw klas
for (const auto& entity : file) {
if (entity.kind() == cppast::cpp_entity_kind::class_t) {
visit_class(static_cast<const cppast::cpp_class&>(entity));
}
}
return 0;
}