/
githubmirror
/
sway
Обзор
Документация
Войти
/
githubmirror
/
sway
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
sway-parse/src/test_utils.rs
35 строк
1 KB
Igor Rončević
Add support for experimental features in the parsing phase (#7124)
29 апр 2025, 02:36
Не верифицирован
29 апр 2025, 02:36
76268dc
Код
Авторство
О чём код?
use crate::{priv_prelude::ParseToEnd, Parse, Parser}; use sway_error::handler::Handler; use sway_features::ExperimentalFeatures; pub fn parse<T>(input: &str) -> T where T: Parse, { let handler = Handler::default(); let ts = crate::token::lex(&handler, input.into(), 0, input.len(), None).unwrap(); let r = Parser::new(&handler, &ts, ExperimentalFeatures::default()).parse(); if handler.has_errors() || handler.has_warnings() { panic!("{:?}", handler.consume()); } r.unwrap_or_else(|_| panic!("Parse error: {:?}", handler.consume().0)) } pub fn parse_to_end<T>(input: &str) -> T where T: ParseToEnd, { let handler = <_>::default(); let ts = crate::token::lex(&handler, input.into(), 0, input.len(), None).unwrap(); let r = Parser::new(&handler, &ts, ExperimentalFeatures::default()) .parse_to_end() .map(|(m, _)| m); if handler.has_errors() || handler.has_warnings() { panic!("{:?}", handler.consume()); } r.unwrap_or_else(|_| panic!("Parse error: {:?}", handler.consume().0)) }