diff options
author | bors[bot] <26634292+bors[bot]@users.noreply.github.com> | 2020-07-29 18:18:53 +0100 |
---|---|---|
committer | GitHub <[email protected]> | 2020-07-29 18:18:53 +0100 |
commit | 2dfda0b984c45946b9a4148bd848350deac544f2 (patch) | |
tree | 1942eeab995b0bd191c6a998b47cb20a426e5dd3 /crates/ra_syntax/src/ast/node_ext.rs | |
parent | 525ae706b3e4c0f5f8b80d197e5fede0a9974442 (diff) | |
parent | 3d28292157e1b6c9675ef64eddf53786c3e7dc5f (diff) |
Merge #5572
5572: Switch to ungrammar from ast_src r=matklad a=matklad
The primary advantage of ungrammar is that it (eventually) allows one
to describe concrete syntax tree structure -- with alternatives and
specific sequence of tokens & nodes.
That should be re-usable for:
* generate `make` calls
* Rust reference
* Hypothetical parser's evented API
We loose doc comments for the time being unfortunately. I don't think
we should add support for doc comments to ungrammar -- they'll make
grammar file hard to read. We might supply docs as out-of band info,
or maybe just via a reference, but we'll think about that once things
are no longer in flux
bors r+
🤖
Co-authored-by: Aleksey Kladov <[email protected]>
Diffstat (limited to 'crates/ra_syntax/src/ast/node_ext.rs')
-rw-r--r-- | crates/ra_syntax/src/ast/node_ext.rs | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/crates/ra_syntax/src/ast/node_ext.rs b/crates/ra_syntax/src/ast/node_ext.rs index 662c6f73e..242900643 100644 --- a/crates/ra_syntax/src/ast/node_ext.rs +++ b/crates/ra_syntax/src/ast/node_ext.rs | |||
@@ -472,3 +472,19 @@ impl ast::TokenTree { | |||
472 | .filter(|it| matches!(it.kind(), T!['}'] | T![')'] | T![']'])) | 472 | .filter(|it| matches!(it.kind(), T!['}'] | T![')'] | T![']'])) |
473 | } | 473 | } |
474 | } | 474 | } |
475 | |||
476 | impl ast::DocCommentsOwner for ast::SourceFile {} | ||
477 | impl ast::DocCommentsOwner for ast::FnDef {} | ||
478 | impl ast::DocCommentsOwner for ast::StructDef {} | ||
479 | impl ast::DocCommentsOwner for ast::UnionDef {} | ||
480 | impl ast::DocCommentsOwner for ast::RecordFieldDef {} | ||
481 | impl ast::DocCommentsOwner for ast::TupleFieldDef {} | ||
482 | impl ast::DocCommentsOwner for ast::EnumDef {} | ||
483 | impl ast::DocCommentsOwner for ast::EnumVariant {} | ||
484 | impl ast::DocCommentsOwner for ast::TraitDef {} | ||
485 | impl ast::DocCommentsOwner for ast::Module {} | ||
486 | impl ast::DocCommentsOwner for ast::StaticDef {} | ||
487 | impl ast::DocCommentsOwner for ast::ConstDef {} | ||
488 | impl ast::DocCommentsOwner for ast::TypeAliasDef {} | ||
489 | impl ast::DocCommentsOwner for ast::ImplDef {} | ||
490 | impl ast::DocCommentsOwner for ast::MacroCall {} | ||