diff --git a/src/parser/keyword_todo.rs b/src/parser/keyword_todo.rs index 5a009ea..821f974 100644 --- a/src/parser/keyword_todo.rs +++ b/src/parser/keyword_todo.rs @@ -44,9 +44,17 @@ pub(crate) fn todo_keywords<'s>(input: &'s str) -> Res<&'s str, (Vec<&'s str>, V } fn todo_keyword_word<'s>(input: &'s str) -> Res<&'s str, &'s str> { - verify(take_till(|c| " \t\r\n|".contains(c)), |result: &str| { + let (remaining, keyword) = verify(take_till(|c| "( \t\r\n|".contains(c)), |result: &str| { !result.is_empty() - })(input) + })(input)?; + + let (remaining, _) = opt(tuple(( + tag("("), + take_till(|c| "() \t\r\n|".contains(c)), + tag(")"), + )))(remaining)?; + + Ok((remaining, keyword)) } #[cfg(test)] mod tests {