File tree Expand file tree Collapse file tree 1 file changed +21
-2
lines changed Expand file tree Collapse file tree 1 file changed +21
-2
lines changed Original file line number Diff line number Diff line change 1
- #!/usr/bin/env python3
2
- # TODO this should probably be split in different generators now: ql, qltest, maybe qlipa
1
+ """
2
+ QL code generation
3
+
4
+ `generate(opts, renderer)` will generate in the library directory:
5
+ * generated/Raw.qll with thin class wrappers around DB types
6
+ * generated/Synth.qll with the base algebraic datatypes for AST entities
7
+ * generated/<group>/<Class>.qll with generated properties for each class
8
+ * if not already modified, a elements/<group>/<Class>.qll stub to customize the above classes
9
+ * elements.qll importing all the above stubs
10
+ * if not already modified, a elements/<group>/<Class>Constructor.qll stub to customize the algebraic datatype
11
+ characteristic predicate
12
+ * generated/SynthConstructors.qll importing all the above constructor stubs
13
+ * generated/PureSynthConstructors.qll importing constructor stubs for pure synthesized types (that is, not
14
+ corresponding to raw types)
15
+ Moreover in the test directory for each <Class> in <group> it will generate beneath the
16
+ extractor-tests/generated/<group>/<Class> directory either
17
+ * a `MISSING_SOURCE.txt` explanation file if no `swift` source is present, or
18
+ * one `<Class>.ql` test query for all single properties and on `<Class>_<property>.ql` test query for each optional or
19
+ repeated property
20
+ """
21
+ # TODO this should probably be split in different generators now: ql, qltest, maybe qlsynth
3
22
4
23
import logging
5
24
import pathlib
You can’t perform that action at this time.
0 commit comments