Troy Brown
f21f13afe0
Correct parsing of discrete_choice expressions.
...
The existing grammar was causing simple expressions to be incorrectly
parsed as a subtype indication. This change raises the precedence for
a discrete choice expression to address that issue.
Updated the test corpus to reflect the parsing correction. Additional
test cases were added for discrete choice.
2023-09-05 09:17:27 +02:00
Emmanuel Briot
0f572c4dcc
Add test for #6
2023-08-28 07:32:53 +02:00
Emmanuel Briot
42cc2eb141
(package_specification): now hidden in trees
...
Instead, package_declaration replaces it. This provides
better folding in nvim: otherwise, the final ';' was not
part of the tree node, and thus the last line "end P;" was
not folded.
2023-02-13 13:51:44 +01:00
Emmanuel Briot
d625712fe1
Allow empty statements of declarations in gnatprep
...
All runtime files and all the code from Deep Blue Capital are now
parsed without errors.
2022-12-14 14:28:59 +01:00
Emmanuel Briot
faa006e5fd
Allow if-expression for discriminant constraints
...
The rule (not visible in the RM grammar) is that
if we have a single positional discriminant, we
can omit the extra pair of parenthesis.
2022-12-14 13:49:02 +01:00
Emmanuel Briot
7fe1b1edb4
Add support for gnatprep directives
...
They can be folded
2022-12-14 13:29:59 +01:00
Emmanuel Briot
39697ddca8
fix support of pragmas inside exception handlers
...
This was copied from ada_mode, but results in
confusion when we have statements after the pragma
Fix allocates with if-expression, which no longer
needs double-parenthesis.
2022-12-14 12:59:09 +01:00
Emmanuel Briot
dbd3401b14
A task type can contain pragmas
...
Not shown in the RM grammar, but explicit in 2.8
2022-12-14 12:31:43 +01:00
Emmanuel Briot
7b4bf400ab
Task types may have no task_item
...
Based literals may have exponents
2022-12-14 12:24:09 +01:00
Emmanuel Briot
fb54a00c16
Allow pragmas inside records
2022-12-14 12:08:24 +01:00
Emmanuel Briot
b9645c74b2
Add discriminant_constraint
2022-12-14 11:55:25 +01:00
Emmanuel Briot
a63a4f53d3
(extension with aggregates): allow a single positional item
2022-12-14 11:19:43 +01:00
Emmanuel Briot
c61d74d03a
Fix parsing numeric literals with underscore in decimal part
...
The regexp adapted from Emacs' ada-mode was wrong,
and also not accept "E+..."
2022-12-14 11:05:55 +01:00
Emmanuel Briot
6903869a00
Fix handling of variant records
...
Having two component_item followed by a variant_part
was not accepted
2022-12-14 10:44:51 +01:00
Emmanuel Briot
725a32a592
Fix handling of operator names in parameter_association
2022-12-14 10:06:22 +01:00
Emmanuel Briot
c25792f45c
Add support for slices
2022-12-13 12:29:02 +01:00
Emmanuel Briot
30545542d7
Remove no longer needed conflict clauses
2022-12-12 12:10:55 +01:00
Emmanuel Briot
4557f68292
Inline "statement"
2022-12-12 11:35:04 +01:00
Emmanuel Briot
d52ba823fa
Add support for "or terminate" in select statements
2022-12-12 11:27:49 +01:00
Emmanuel Briot
d6ea15a3e0
Add support for double-quotes inside strings
2022-12-12 10:58:36 +01:00
Emmanuel Briot
ec82f7b2cf
Fix support for Func(...).Value
...
Need to set associativity on selected_component
2022-12-12 10:50:59 +01:00
Emmanuel Briot
7bd8543b71
Fix error for access parameters and untyped constants
2022-12-09 14:38:08 +01:00
Emmanuel Briot
3b5200c14c
Inline all rules that do not consume any character directly
...
This simplifies the trees significantly.
2022-12-09 12:32:06 +01:00
Emmanuel Briot
a41588c541
Various inlining of rules to simplify tree
2022-12-09 11:02:26 +01:00
Emmanuel Briot
1eafd432d7
Add queries for neovim
2022-12-08 11:53:03 +01:00