llvm-project/llvm/utils
Stephen Kelly 19740652c4 [AST] Add generator for source location introspection
Generate a json file containing descriptions of AST classes and their
public accessors which return SourceLocation or SourceRange.

Use the JSON file to generate a C++ API and implementation for accessing
the source locations and method names for accessing them for a given AST
node.

This new API can be used to implement 'srcloc' output in clang-query:

  http://ce.steveire.com/z/m_kTIo

The JSON file can also be used to generate bindings for other languages,
such as Python and Javascript:

  https://steveire.wordpress.com/2019/04/30/the-future-of-ast-matching

In this first version of this feature, only the accessors for Stmt
classes are generated, not Decls, TypeLocs etc.  Those can be added
after this change is reviewed, as this change is mostly about
infrastructure of these code generators.

Also in this version, the platforms/cmake configurations are excluded as
much as possible so that support can be added iteratively.  Currently a
break on any platform causes a revert of the entire feature.  This way,
the `OR WIN32` can be removed in a future commit and if it breaks the
buildbots, only that commit gets reverted, making the entire process
easier to manage.

Differential Revision: https://reviews.llvm.org/D93164
2021-03-15 10:52:44 +00:00
..
FileCheck
KillTheDoctor
LLVMVisualizers
Misc
PerfectShuffle
Reviewing
TableGen [RISCV] Add support for VECTOR_REVERSE for scalable vector types. 2021-03-09 10:03:45 -08:00
Target/ARM
UpdateTestChecks Replace func name with regex for update test scripts 2021-03-12 17:37:09 -08:00
benchmark
bugpoint
count
crosstool
docker
emacs
fpcmp
gdb-scripts
git
gn [AST] Add generator for source location introspection 2021-03-15 10:52:44 +00:00
jedit
kate
lint
lit [lit] rewrap a few lines to 80 columns 2021-03-12 11:55:00 -05:00
llvm-lit
llvm-locstats
not
release
sanitizers
testgen
textmate
unittest
valgrind
vim
vscode
yaml-bench
DSAclean.py
DSAextract.py
GenLibDeps.pl
GetSourceVersion
UpdateCMakeLists.pl
abtest.py
add_argument_names.py
bisect
bisect-skip-count
bugpoint_gisel_reducer.py
check-each-file
check_ninja_deps.py
chunk-print-before-all.py
clang-parse-diagnostics-file
codegen-diff
collect_and_build_with_pgo.py
convert-constraint-log-to-z3.py
countloc.sh
create_ladder_graph.py
demangle_tree.py
extract-section.py [M68k] Fix extract-section.py under Python 3 2021-03-14 11:36:57 -07:00
extract_symbols.py
extract_vplan.py
findmisopt
findoptdiff
findsym.pl
getsrcs.sh
indirect_calls.py
lldbDataFormatters.py
llvm-compilers-check
llvm-gisel-cov.py
llvm-native-gxx
llvm-original-di-preservation.py [Debugify][OriginalDIMode] Export the report into JSON file 2021-03-11 01:11:13 -08:00
llvm.grm
llvmdo
llvmgrep
merge-stats.py
prepare-code-coverage-artifact.py
remote-exec.py
schedcover.py
shuffle_fuzz.py
shuffle_select_fuzz_tester.py
sort_includes.py
sysroot.py
unicode-case-fold.py
update_analyze_test_checks.py
update_cc_test_checks.py Run non-filechecked commands in update_cc_test_checks.py 2021-03-10 12:25:35 -08:00
update_llc_test_checks.py Replace func name with regex for update test scripts 2021-03-12 17:37:09 -08:00
update_mca_test_checks.py
update_mir_test_checks.py
update_test_checks.py [Utils] Check for more global information in update_test_checks 2021-03-11 23:31:16 -06:00
update_test_prefix.py
wciia.py