Giacomo Vercesi
bbce0b33e5
revng-check-conventions: introduce isort
2022-04-20 09:57:08 +02:00
Giacomo Vercesi
46821cee5f
revng-check-conventions: introduce mypy
2022-04-20 09:57:01 +02:00
Giacomo Vercesi
31a836e48c
revng-check-conventions: introduce flake8
2022-04-20 09:56:44 +02:00
Massimo Fioravanti
44720eedbd
Redesign TupleTreeDiff
...
`TupleTreeDiff` is now type-safe and owns the changes.
2022-04-15 15:14:13 +02:00
Giacomo Vercesi
a2b5dbb1dc
TupleTreeGenerator: autogenerate Kind
2022-04-08 17:36:59 +02:00
Giacomo Vercesi
457d782ea8
UpcastablePointer::YAMLTraits: use Kind
2022-04-08 17:32:12 +02:00
Ivan Krysak
326624f517
Fix TupleTreeCompatible linkage problem
...
Now all the generated `.cpp` include `Binary.h`. This ensures we don't
trigger the wrong concept due to forward declarations.
Also, this commit introduces a couple of `static_assert`s which should
enable us to early identification of similar problems.
2022-03-28 15:33:30 +02:00
Filippo Cremonese
70a460c46a
TupleTreeGenerator: use dataclasses
...
Give up on pydantic.
2022-03-22 17:52:02 +01:00
Alessandro Di Federico
69cd0db81f
tuple_tree_generator: make Key strongly typed
2022-03-08 12:25:47 +01:00
Filippo Cremonese
d5e5e16887
Apply and enforce python formatting with black
2022-02-23 18:02:39 +01:00
Filippo Cremonese
1dc7efe2b0
tuple_tree_generator: emit jsonschema
2022-02-23 17:37:03 +01:00
Filippo Cremonese
8511cbf40b
tuple_tree_generator: drop tags
...
They were more harmful than beneficial.
2022-02-23 17:36:34 +01:00
Alessandro Di Federico
10dc6744b4
mv include/revng/{Model,TupleTree}/EnumTraits.h
...
`EnumTraits.h` is not model-specific.
2022-02-23 17:32:50 +01:00
Alessandro Di Federico
78be0e9268
Explode TupleTree.h
2022-01-31 16:28:26 +01:00
Alessandro Di Federico
f3634e165f
Introduce model::Type::localCompare
2022-01-27 11:51:03 +01:00
Alessandro Di Federico
54fcc1d7fe
struct_impl.cpp.tpl: include headers in any case
2022-01-27 11:51:03 +01:00
Alessandro Di Federico
7ea55326e1
tuple_tree_generator: use all_optional_fields
2022-01-27 11:50:37 +01:00
Filippo Cremonese
31354a4cd6
metaschema.yml: actually enforce validation
...
Previously, we didn't specify the type of the root object, which led to
accept any input.
2022-01-21 18:05:52 +01:00
Alessandro Di Federico
3ab32cd2ef
tuple_tree_generator: make fully standalone
2022-01-21 18:05:51 +01:00
Filippo Cremonese
c7a0d05379
tuple_tree_generator: remove unused include
2022-01-21 18:05:49 +01:00
Filippo Cremonese
610d5112c7
tuple_tree_generator: fix type lookup
2022-01-21 18:03:07 +01:00
Filippo Cremonese
0a70383e12
tuple_tree_generator: Jinja2 compatibility issue
...
This commit fixes a compatibility issue with Jinja2 2.10.
2022-01-17 16:35:01 +01:00
Filippo Cremonese
74217b4fe5
Generate C++ model from YAML definition
...
Model classes are now described by a YAML document, which is used to
generate C++ headers containing classes and all the boilerplate
required for YAML serialization/deserialization, usage in
SortedVectors, etc. See the README in include/revng/Model for more
info.
2022-01-13 14:34:11 +01:00