10 Commits

Author SHA1 Message Date
Pierre-Marie de Rodat
6e88d6ec25 Lkt: revamp the module system 2026-01-20 16:03:43 +00:00
Hugo Guerrier
565f495544 Adapt Java testing tools to the new GraalVM version 2025-08-22 09:26:09 +00:00
Pierre-Marie de Rodat
50f50f9f85 Generic API: add bindings for the rewriting features
Move the implementation of the rewriting engine to Langkit_Support and
add bindings to it in the generic API. Rework the C bindings to be
implemented on top of the generic API.

Note that no new testcase is added: the generic API is tested indirectly
by all existing rewriting testcases by the virtue of being the
common implementation behind all the other rewriting APIs. The Ada API
testcase will transition to the generic API once the Ada API is removed.
2025-05-21 08:49:08 +00:00
Pierre-Marie de Rodat
259a1317dc CompiledType.dsl_name: switch to Lkt notations
Also rename `dsl_*` properties, attributes, arguments, ... to `lkt_*`
for consistency.
2025-04-04 09:55:05 +00:00
Pierre-Marie de Rodat
9514b56cf6 Let language specs enable unparsers with a grammar annotation
Whether unparsers are generated or not has implications on legality
checks for the grammar, so it makes sense for this to be a property of
the grammar itself: introduce an Lkt annotation as well as a
langkit.parsers.Grammar argument for it, and remove the corresponding
CompileCtx argument.

Also rename "generate_unparser" to "generate_unparsers" for consistency
across the codebase.
2024-11-05 08:58:12 +00:00
Pierre-Marie de Rodat
e1c4fe5804 Introduce the lkt_build_and_run test driver
Transition all relevant testcases to it. In the process, port
docstrings/comments from test.py files to expected_concrete_syntax.lkt
(now test.lkt) sources and fix stylechecks issues there.
2024-10-15 14:13:10 +00:00
Romain Beguet
05362a5e93 Improve style and fix formatting issues in dsl_unparse. 2024-07-03 08:23:35 +00:00
Pierre-Marie de Rodat
ec4872e418 Lkt: change naming convention for token names for lower to camel
This makes the convention consistent with the DSL, and avoids
workarounds for conflicts with Lkt keywords: in Libadalang, the Null
token can stay Null, instead of null_tok (no API breakage needed).
2024-06-28 08:41:26 +00:00
Hugo Guerrier
faedfbe1a0 Remove the old and new rewriting contexts equivalence test
This test fails sometimes because it makes no sense at all. There is no
information about rewriting context being equivalent when closing and
reopening a new one (see doc for 'langkit.rewriting.start_rewriting').
2024-04-11 15:44:58 +02:00
Hugo Guerrier
577a999b96 Bind the rewriting API in Java 2024-04-03 14:31:47 +02:00