Laurent Thévenoux
042d578dd5
U920-002: avoid mismatched type error on root node
...
As the LexicalEnv.get method always return an array of root nodes
while the root node is defined in user code, we need to turn the Node
and LexicalEnv classes into generic traits and instantiate them using
the actual root node.
To make this works, root node declaration has to be changed from
`class FooNode : Node` to `class FooNode implements Node[FooNode]`,
which required to refactor a bit almost all the lkt tests.
2021-09-27 17:39:36 +02:00
Raphaël AMIARD
3eef9cdc25
RA22-015: make Node a base class rt. a trait
2020-06-30 15:43:53 +02:00
Raphaël AMIARD
119379f643
RA22-015 dsl_unparse: Unparse @with_lexer annotation
2020-06-30 15:43:53 +02:00
Pierre-Marie de Rodat
6600963d0f
dsl_unparse: fix handling for abstract properties
...
TN: RA22-015
2020-06-23 16:19:45 +02:00
Pierre-Marie de Rodat
71f773e0ff
Rename SymbolNode to TokenNode
...
TN: RA22-015
2020-06-17 11:45:07 +02:00
Raphaël AMIARD
2060a7c36d
RA22-015: make token_node/root_node traits
2020-06-16 15:19:35 +02:00
Pierre-Marie de Rodat
cc52e46c10
Generate and interpret the @@has_abstract_list node annotation
...
TN: RA22-015
2020-06-11 14:37:13 +02:00
Pierre-Marie de Rodat
770513f43d
Generate and interpret the @token_node node annotation
...
TN: RA22-015
2020-06-11 14:37:13 +02:00
Pierre-Marie de Rodat
2b9b33d6a0
Remove __future__ imports and adjust stylechecks
...
TN: T511-017
2020-05-26 12:33:48 +02:00
Pierre-Marie de Rodat
d3db6f97a3
dsl_unparse: make the order of fields in New() expressions deterministic
...
TN: T511-017
2020-05-26 12:33:48 +02:00
Raphaël AMIARD
4e14e1f2b3
RA22-015: don't emit EnvAssoc
2020-05-14 17:07:42 +02:00
Raphaël AMIARD
e5357ae48a
RA22-015: cleanup method vs field emission
2020-03-27 16:46:10 +01:00
Pierre-Marie de Rodat
de58c96d16
Testsuite: factorize common lexers in the concrete syntax
...
TN: RA22-015
2020-03-16 10:41:18 +01:00
Pierre-Marie de Rodat
05ca4fbcb1
Slightly change lexer annotation syntax
...
Since @text, @trivia and @symbol take arguments, enforce parens for
them.
TN: RA22-015
2020-03-16 10:41:18 +01:00
Raphaël AMIARD
d49038c3f3
RA22-015: SymbolType -> Symbol in dsl_unparse
2020-03-12 14:37:52 +01:00
Pierre-Marie de Rodat
a5a0cb8509
Lkt: restore type-inferred list parser: list+(...)/list*(...)
...
TN: RA22-015
2020-03-06 11:42:49 +01:00
Romain Beguet
0612dde534
RA22-015: Make WithText the default token action.
2020-03-05 17:01:26 +01:00
Romain Beguet
7287f3f275
RA22-015: Fix syntax of token families.
2020-03-05 17:01:26 +01:00
Pierre-Marie de Rodat
7b274d372e
Lkt: change the syntax for grammar pick expressions
...
TN: RA22-015
2020-02-27 18:17:42 +01:00
Pierre-Marie de Rodat
8d0ca9eb51
Lkt: change the syntax for grammar list expressions
...
TN: RA22-015
2020-02-27 18:17:42 +01:00
Pierre-Marie de Rodat
383670d486
Extend support for LKT grammars, transition tests
...
TN: RA22-015
2020-02-27 13:43:20 +01:00
Romain Beguet
9467a5a42c
RA22-015: Add lexer parser and unparser to concrete syntax.
2020-02-27 11:41:20 +01:00
Romain Beguet
e723071116
RA22-015: Unparse token names in lower case and avoid conflicts.
2020-02-26 17:06:07 +01:00
Pierre-Marie de Rodat
fed6874e3b
dsl_unparse: change the naming convention for grammars
...
TN: RA22-015
2020-02-26 12:09:38 +01:00
Pierre-Marie de Rodat
03514cf10d
Extend the concrete syntax to support List parsers' list_cls setting
...
TN: RA22-015
2020-02-26 12:09:38 +01:00