Commit Graph

28 Commits

Author SHA1 Message Date
Emmanuel Briot
73d90b439d Upgrade tree-sitter to version 20.6 2024-01-05 08:16:49 +01:00
Piotr Trojanek
a1e54e4e03 Accept pragmas within declare expressions
(_declare_item): accept pragmas

Assert pragmas (and other "executable" pragmas) are specifically allowed
in declare expressions, thanks to a recent AI22-0045. They are accepted
by the latest GNAT compilers.

Regenerate grammar using tree-sitter-linux-x64-0.20.7; add test.
2024-01-03 14:43:22 +01:00
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
b6507d0a88 Revert "feat: use the i flag for Regex"
Since upstream tree-sitter hasn't been released yet (nor the node
 package updated), it is cumbersome to build things.  For now keep
 the old regexp.
This reverts commit 99d845cd94.
2023-08-28 07:26:11 +02:00
Amaan Qureshi
9c6c5e2a18
chore: generate 2023-08-12 22:44:04 -04: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
de1a5f3038 Commit the generated files
This provides easier installation
2022-12-08 11:53:54 +01:00