diff options
Diffstat (limited to 'src/construct')
-rw-r--r-- | src/construct/definition.rs | 1 | ||||
-rw-r--r-- | src/construct/partial_destination.rs | 7 |
2 files changed, 4 insertions, 4 deletions
diff --git a/src/construct/definition.rs b/src/construct/definition.rs index 69d8d9b..f8dc249 100644 --- a/src/construct/definition.rs +++ b/src/construct/definition.rs @@ -173,6 +173,7 @@ fn destination_before(tokenizer: &mut Tokenizer, code: Code) -> StateFnResult { t, c, DestinationOptions { + limit: usize::MAX, destination: TokenType::DefinitionDestination, literal: TokenType::DefinitionDestinationLiteral, marker: TokenType::DefinitionDestinationLiteralMarker, diff --git a/src/construct/partial_destination.rs b/src/construct/partial_destination.rs index 823ce99..b2ceeb8 100644 --- a/src/construct/partial_destination.rs +++ b/src/construct/partial_destination.rs @@ -57,6 +57,8 @@ pub struct Options { pub raw: TokenType, /// Token for a the string. pub string: TokenType, + /// Maximum unbalanced parens. + pub limit: usize, } /// State needed to parse destination. @@ -176,12 +178,9 @@ fn enclosed_escape(tokenizer: &mut Tokenizer, code: Code, info: Info) -> StateFn /// a|b /// ``` fn raw(tokenizer: &mut Tokenizer, code: Code, mut info: Info) -> StateFnResult { - // To do: configurable. - let limit = usize::MAX; - match code { Code::Char('(') => { - if info.balance >= limit { + if info.balance >= info.options.limit { (State::Nok, None) } else { tokenizer.consume(code); |