diff options
author | Norbert Preining <norbert@preining.info> | 2021-06-04 03:02:48 +0000 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2021-06-04 03:02:48 +0000 |
commit | a5ae129f3aa3a3a0aeaa21c55b75a1d543fe4111 (patch) | |
tree | fe5e1e212aec203e668df8581a17374cdde352a1 /support/texlab/src/syntax/bibtex/parser.rs | |
parent | d231c6331f53a048d29c2f847254a9f56d5ee2dd (diff) |
CTAN sync 202106040302
Diffstat (limited to 'support/texlab/src/syntax/bibtex/parser.rs')
-rw-r--r-- | support/texlab/src/syntax/bibtex/parser.rs | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/support/texlab/src/syntax/bibtex/parser.rs b/support/texlab/src/syntax/bibtex/parser.rs index ffdb1c94a0..6e8c4b3b59 100644 --- a/support/texlab/src/syntax/bibtex/parser.rs +++ b/support/texlab/src/syntax/bibtex/parser.rs @@ -174,7 +174,7 @@ impl<'a> Parser<'a> { self.builder.finish_node(); return; } - self.eat(); + self.key(); while let Some(kind) = self.peek() { match kind { @@ -190,6 +190,18 @@ impl<'a> Parser<'a> { self.builder.finish_node(); } + fn key(&mut self) { + self.builder.start_node(KEY.into()); + while self + .peek() + .filter(|&kind| matches!(kind, WORD | WHITESPACE)) + .is_some() + { + self.eat(); + } + self.builder.finish_node(); + } + fn field(&mut self) { self.builder.start_node(FIELD.into()); self.eat(); |