// pest. The Elegant Parser // Copyright (c) 2018 DragoČ™ Tiselice // // Licensed under the Apache License, Version 2.0 // or the MIT // license , at your // option. All files in the project carrying such notice may not be copied, // modified, or distributed except according to those terms. #![allow(clippy::range_plus_one)] extern crate maplit; #[cfg(test)] #[macro_use] extern crate pest; #[cfg(not(test))] extern crate pest; use std::fmt::Display; pub mod ast; pub mod optimizer; pub mod parser; pub mod validator; pub fn unwrap_or_report(result: Result) -> T where E: IntoIterator, E::Item: Display, { result.unwrap_or_else(|e| { panic!( "grammar error\n\n".to_owned() + &e.into_iter() .map(|error| format!("{}", error)) .collect::>() .join("\n\n") ) }) } #[doc(hidden)] pub static UNICODE_PROPERTY_NAMES: &[&str] = &[ /* BINARY */ "ALPHABETIC", "BIDI_CONTROL", "CASE_IGNORABLE", "CASED", "CHANGES_WHEN_CASEFOLDED", "CHANGES_WHEN_CASEMAPPED", "CHANGES_WHEN_LOWERCASED", "CHANGES_WHEN_TITLECASED", "CHANGES_WHEN_UPPERCASED", "DASH", "DEFAULT_IGNORABLE_CODE_POINT", "DEPRECATED", "DIACRITIC", "EXTENDER", "GRAPHEME_BASE", "GRAPHEME_EXTEND", "GRAPHEME_LINK", "HEX_DIGIT", "HYPHEN", "IDS_BINARY_OPERATOR", "IDS_TRINARY_OPERATOR", "ID_CONTINUE", "ID_START", "IDEOGRAPHIC", "JOIN_CONTROL", "LOGICAL_ORDER_EXCEPTION", "LOWERCASE", "MATH", "NONCHARACTER_CODE_POINT", "OTHER_ALPHABETIC", "OTHER_DEFAULT_IGNORABLE_CODE_POINT", "OTHER_GRAPHEME_EXTEND", "OTHER_ID_CONTINUE", "OTHER_ID_START", "OTHER_LOWERCASE", "OTHER_MATH", "OTHER_UPPERCASE", "PATTERN_SYNTAX", "PATTERN_WHITE_SPACE", "PREPENDED_CONCATENATION_MARK", "QUOTATION_MARK", "RADICAL", "REGIONAL_INDICATOR", "SENTENCE_TERMINAL", "SOFT_DOTTED", "TERMINAL_PUNCTUATION", "UNIFIED_IDEOGRAPH", "UPPERCASE", "VARIATION_SELECTOR", "WHITE_SPACE", "XID_CONTINUE", "XID_START", /* CATEGORY */ "CASED_LETTER", "CLOSE_PUNCTUATION", "CONNECTOR_PUNCTUATION", "CONTROL", "CURRENCY_SYMBOL", "DASH_PUNCTUATION", "DECIMAL_NUMBER", "ENCLOSING_MARK", "FINAL_PUNCTUATION", "FORMAT", "INITIAL_PUNCTUATION", "LETTER", "LETTER_NUMBER", "LINE_SEPARATOR", "LOWERCASE_LETTER", "MARK", "MATH_SYMBOL", "MODIFIER_LETTER", "MODIFIER_SYMBOL", "NONSPACING_MARK", "NUMBER", "OPEN_PUNCTUATION", "OTHER", "OTHER_LETTER", "OTHER_NUMBER", "OTHER_PUNCTUATION", "OTHER_SYMBOL", "PARAGRAPH_SEPARATOR", "PRIVATE_USE", "PUNCTUATION", "SEPARATOR", "SPACE_SEPARATOR", "SPACING_MARK", "SURROGATE", "SYMBOL", "TITLECASE_LETTER", "UNASSIGNED", "UPPERCASE_LETTER", ];