Ivan Krysak
c6e38cd485
Return to using constant name builders
...
Because of how name builders used to lazy gather namespaces on the first
requested name, the objects were self mutating. As such only non-const
references could be used to pass them around.
Since that is no longer the case, this restores most of lost const
qualifiers.
2025-04-17 11:19:17 +03:00
Ivan Krysak
57b5eb7f98
NameBuilder: allow different name checkers
2025-04-17 11:19:17 +03:00
Ivan Krysak
645cf7fc2e
NameBuilder: sunset deduplication
...
This reworks NameBuilder to ease the transition to the system where
the model will be guaranteed to never contain any name collisions, both
between user-specified names and the automatic ones.
2025-04-15 16:35:42 +03:00
Ivan Krysak
705e4a5955
auto [...] -> auto &&[...]
2025-02-13 13:10:51 +02:00
Ivan Krysak
05faed3795
PTML: introduce a way to disable comment warnings
2025-02-13 13:09:50 +02:00
Ivan Krysak
1c9b6a70db
PTML: add statement comment support
2025-02-13 13:09:50 +02:00
Ivan Krysak
8841bc7144
Don't include model::NameBuilder from the binary
2025-02-13 13:09:50 +02:00
Ivan Krysak
929cb4b35b
Minor improvements
2025-02-13 13:09:50 +02:00
Ivan Krysak
672ee5df50
Replace std::string_view with llvm::StringRef
2024-11-06 15:43:13 +02:00
Ivan Krysak
a67ba96644
Adopt name builder across the model users
2024-11-06 15:43:13 +02:00
Ivan Krysak
99e966f6e8
ptml::TagBuilder: rename GenerateTagLessPTML
...
The new name is `IsInTaglessMode`.
This also makes it public, since their no point of keeping a const
option private.
2024-10-15 09:12:55 +02:00
Ivan Krysak
43f0304cb2
Pipeline: toString -> locationString
2024-10-15 09:12:55 +02:00
Ivan Krysak
9ebe98e5c8
PTMLIndentedOstream: rename into IndentedOstream
2024-10-15 09:12:55 +02:00
Ivan Krysak
ec19b26ee9
PTMLBuilder: rename into ptml::MarkupBuilder
2024-10-15 09:12:55 +02:00
Alessandro Di Federico
2cdedc71f4
s/serialize/toString/
...
We keep serialize for method dealing with streams.
If it returns a `std::string`, let's use `toString`.
2024-09-27 12:07:17 +02:00
Pietro Fezzardi
7fa7b3cbe2
PTMLIndentedOstream: honor GenerateTagLessPTML
...
Before this commit PTMLIndentOstream was still emitting tag around
indentation, even when GenerateTagLessPTML was true.
This commit fixes the problem.
2024-06-27 22:10:01 +02:00
Ivan Krysak
4a2db0ba4f
UpcastablePointer: streamline empty behavior
2024-06-27 11:05:52 +02:00
Ivan Krysak
51208789a0
Rename ThePTMLBuilder into just B
2024-06-27 11:05:51 +02:00
Ivan Krysak
dfa7478685
Adopt reworked model::Type
2024-06-27 11:05:51 +02:00
Ivan Krysak
ac587cbb4f
Model: rename Type into TypeDefinition
2024-06-27 11:05:48 +02:00
Ivan Krysak
0692ef0828
Doxygen: be extra explicit about layout usage
2024-03-18 19:32:34 +01:00
Ivan Krysak
d1d97fe47e
PTML: fix doxygen stack indication
2024-03-18 19:32:34 +01:00
Alessandro Di Federico
66b502f484
Doxygen: function prototype is optional
2024-02-09 10:04:21 +01:00
Ivan Krysak
b25a32de2a
Stop using std:: prefix for std::size_t
2024-01-29 11:57:54 +02:00
Alessandro Di Federico
d648f9b970
s/Layout::returnsAggregateType/Layout::hasSPTAR/
2023-12-12 12:04:34 +01:00
Giacomo Vercesi
8504a96020
RawFunctionType: use NamedTypedRegister for return
...
Use the `NamedTypedRegister` type for return values in
`RawFunctionType`. This allows return values to be renamed at the user's
discretion.
2023-12-11 12:03:45 +01:00
Pietro Fezzardi
1285c6e7af
Make RawFunctionType::StackArgumentsType a TTR
...
This is homogeneous with all other nullable references to types in the
model, such as the StackFrameType in model::Function, and others.
2023-12-05 16:19:38 +01:00
Giacomo Vercesi
db1691b03f
Adopt new PTML tags
...
Change the emitted disassembly to include the
`data-action-context-location` and `data-name-of` tags.
2023-11-03 16:30:40 +01:00
Alessandro Di Federico
d9c540247b
Doxygen: be quiet in absence of comments
2023-10-24 09:49:05 +02:00
Alessandro Di Federico
3f13fd0c08
PTML Doxygen: emit comment only if present
2023-10-05 10:19:44 +02:00
Alessandro Di Federico
bf66ecc389
{,Dynamic}Function::Prototype: support typedefs
2023-10-05 10:19:44 +02:00
Alessandro Di Federico
b67e2ac13a
Minor changes
2023-10-04 17:47:50 +02:00
Alessandro Di Federico
76984c9e8b
Doxygen: strip trailing \param whitespace
2023-08-23 16:40:51 +02:00
Alessandro Di Federico
f51af94e8f
TupleTreeReference::isValid is for assertions only
2023-08-23 16:14:05 +02:00
Ivan Krysak
ed4efb0bd9
yield::ptml: add functionComment function
2023-07-21 17:25:24 +02:00
Ivan Krysak
18204ccb9f
yield::ptml: add comment function
...
This is a generic way to format an arbitrary type with `Comment`
field as a comment and emit it using PTML.
2023-07-21 17:25:24 +02:00
Ivan Krysak
bc98e0079f
Formatting: change PenaltyReturnTypeOnItsOwnLine
...
The new value is 21.
2023-07-02 13:20:49 +02:00
Djordje Todorovic
f05c08547d
ptml: Introduce PTMLBuilder class
...
By using this class we can create ptml::Tags without
XML tags. It is useful in the revng-c part when we
want to generate Plain C. All PTML Tags, from now on,
should be created via this class only.
In addition, port `Yield` library to be using this.
2023-06-09 17:15:30 +02:00
Giacomo Vercesi
e1adce0f69
PTMLIndentedOstream: rework write_impl
...
Previous implementation would write '\n' if the buffer ended with
'\n\n'.
2022-09-01 17:46:04 +02:00
Giacomo Vercesi
efc2d36a14
Introduce ptml namespace
...
The `ptml` namespace contains utilities for easier PTML manipulation.
These include:
* A few constants (e.g. standard attributes) available in
`revng/PTML/Constants.h`
* The `Tag` class to easily construct html/xml tags with attributes
without having to use format strings.
* The `PTMLIndentedOstream`, a llvm::raw_ostream wrapper that
automatically adds tagged indentation to the output
2022-07-28 08:47:17 +02:00