[TODO] [WIP] allow customizing AST: using clang's AST instead of treesitter's AST
Wondering how much work it'd be to abstract away the source AST to allow using clang's AST instead of treesitter's AST

clang -Xclang -ast-dump -fno-color-diagnostics -fsyntax-only tests/include/test.h

```
clang -Xclang -ast-dump -fno-color-diagnostics -fsyntax-only tests/include/test.h
TranslationUnitDecl 0x7f8d3882bce8 <<invalid sloc>> <invalid sloc>
|-TypedefDecl 0x7f8d3882c260 <<invalid sloc>> <invalid sloc> implicit __int128_t '__int128'
| `-BuiltinType 0x7f8d3882bf80 '__int128'
|-TypedefDecl 0x7f8d3882c2d0 <<invalid sloc>> <invalid sloc> implicit __uint128_t 'unsigned __int128'
| `-BuiltinType 0x7f8d3882bfa0 'unsigned __int128'
|-TypedefDecl 0x7f8d3882c5a8 <<invalid sloc>> <invalid sloc> implicit __NSConstantString 'struct __NSConstantString_tag'
| `-RecordType 0x7f8d3882c3b0 'struct __NSConstantString_tag'
|   `-Record 0x7f8d3882c328 '__NSConstantString_tag'
|-TypedefDecl 0x7f8d3882c640 <<invalid sloc>> <invalid sloc> implicit __builtin_ms_va_list 'char *'
| `-PointerType 0x7f8d3882c600 'char *'
|   `-BuiltinType 0x7f8d3882bd80 'char'
...
```

## motivation
dealing with treesitter's shortcomings, especially wrt lack of semantic analysis making it hard to deal with C++ templates etc

## note
it may be even easier to write a binary using libclang that outputs the AST in json directly instead of having to custom parse it in nimterop