Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/parser/src/parser.rs')
| -rw-r--r-- | crates/parser/src/parser.rs | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/crates/parser/src/parser.rs b/crates/parser/src/parser.rs index 051461243a..df53e13f6e 100644 --- a/crates/parser/src/parser.rs +++ b/crates/parser/src/parser.rs @@ -26,13 +26,27 @@ pub(crate) struct Parser<'t> { pos: usize, events: Vec<Event>, steps: Cell<u32>, + edition: Edition, +} + +#[non_exhaustive] +pub enum Edition { + Edition2015, + Edition2018, + Edition2021, } static PARSER_STEP_LIMIT: Limit = Limit::new(15_000_000); impl<'t> Parser<'t> { - pub(super) fn new(inp: &'t Input) -> Parser<'t> { - Parser { inp, pos: 0, events: Vec::new(), steps: Cell::new(0) } + pub(super) fn new(inp: &'t Input, edition: Edition) -> Parser<'t> { + Parser { + inp, + pos: 0, + events: Vec::new(), + steps: Cell::new(0), + edition, + } } pub(crate) fn finish(self) -> Vec<Event> { |