diff options
author | Rory Dudley | 2024-05-17 16:14:42 -0600 |
---|---|---|
committer | Rory Dudley | 2024-05-17 16:14:42 -0600 |
commit | 40a403c412be52b713a7363840bfa3f507985a9f (patch) | |
tree | 7df199c63e2a14516497e1265eaab414f6f537f0 /src/poem/read.rs | |
parent | abc835cd020a66b40d0f39e7c950644b436c3a86 (diff) | |
download | dwarvish-40a403c412be52b713a7363840bfa3f507985a9f.tar.gz |
Rewrite of the next! macro
This patch replaces the next! macro with a next() function. It serves
the same purpose, but instead of only checking for two different
runes (a fallback, or one that matches the peek), it can now take a list
of runes/characters to look ahead for, in addition to the fallback.
Diffstat (limited to 'src/poem/read.rs')
-rw-r--r-- | src/poem/read.rs | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/poem/read.rs b/src/poem/read.rs index afa35e7..35ca2e1 100644 --- a/src/poem/read.rs +++ b/src/poem/read.rs @@ -5,7 +5,8 @@ use super::{ use core::fmt; mod parse; use crate::compose::Environment; -use crate::{next, poem, remark, string}; +use crate::{poem, remark, string}; +use parse::next; #[derive(Debug, PartialEq, Eq)] pub enum Mishap { @@ -191,9 +192,9 @@ impl Readable for Poem { verse.couplet = true; Rune::Read } - '>' => next!(chars, i, Rune::Write, Rune::Addendum, '>'), + '>' => next(&mut chars, &mut i, Rune::Write, vec![('>', Rune::Addendum)]), '|' => Rune::Couplet, - '&' => next!(chars, i, Rune::Quiet, Rune::And, '&'), + '&' => next(&mut chars, &mut i, Rune::Quiet, vec![('&', Rune::And)]), ';' => Rune::Continue, '\n' => { j += 1; |