fuel_pest_meta/
lib.rs

1// pest. The Elegant Parser
2// Copyright (c) 2018 DragoČ™ Tiselice
3//
4// Licensed under the Apache License, Version 2.0
5// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT
6// license <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
7// option. All files in the project carrying such notice may not be copied,
8// modified, or distributed except according to those terms.
9
10#![allow(clippy::range_plus_one)]
11
12extern crate maplit;
13#[cfg(test)]
14#[macro_use]
15extern crate pest;
16#[cfg(not(test))]
17extern crate pest;
18
19use std::fmt::Display;
20
21pub mod ast;
22pub mod optimizer;
23pub mod parser;
24pub mod validator;
25
26pub fn unwrap_or_report<T, E>(result: Result<T, E>) -> T
27where
28    E: IntoIterator,
29    E::Item: Display,
30{
31    result.unwrap_or_else(|e| {
32        panic!(
33            "grammar error\n\n{}",
34            &e.into_iter()
35                .map(|error| format!("{}", error))
36                .collect::<Vec<_>>()
37                .join("\n\n")
38        )
39    })
40}
41
42#[doc(hidden)]
43pub static UNICODE_PROPERTY_NAMES: &[&str] = &[
44    /* BINARY */ "ALPHABETIC",
45    "BIDI_CONTROL",
46    "CASE_IGNORABLE",
47    "CASED",
48    "CHANGES_WHEN_CASEFOLDED",
49    "CHANGES_WHEN_CASEMAPPED",
50    "CHANGES_WHEN_LOWERCASED",
51    "CHANGES_WHEN_TITLECASED",
52    "CHANGES_WHEN_UPPERCASED",
53    "DASH",
54    "DEFAULT_IGNORABLE_CODE_POINT",
55    "DEPRECATED",
56    "DIACRITIC",
57    "EXTENDER",
58    "GRAPHEME_BASE",
59    "GRAPHEME_EXTEND",
60    "GRAPHEME_LINK",
61    "HEX_DIGIT",
62    "HYPHEN",
63    "IDS_BINARY_OPERATOR",
64    "IDS_TRINARY_OPERATOR",
65    "ID_CONTINUE",
66    "ID_START",
67    "IDEOGRAPHIC",
68    "JOIN_CONTROL",
69    "LOGICAL_ORDER_EXCEPTION",
70    "LOWERCASE",
71    "MATH",
72    "NONCHARACTER_CODE_POINT",
73    "OTHER_ALPHABETIC",
74    "OTHER_DEFAULT_IGNORABLE_CODE_POINT",
75    "OTHER_GRAPHEME_EXTEND",
76    "OTHER_ID_CONTINUE",
77    "OTHER_ID_START",
78    "OTHER_LOWERCASE",
79    "OTHER_MATH",
80    "OTHER_UPPERCASE",
81    "PATTERN_SYNTAX",
82    "PATTERN_WHITE_SPACE",
83    "PREPENDED_CONCATENATION_MARK",
84    "QUOTATION_MARK",
85    "RADICAL",
86    "REGIONAL_INDICATOR",
87    "SENTENCE_TERMINAL",
88    "SOFT_DOTTED",
89    "TERMINAL_PUNCTUATION",
90    "UNIFIED_IDEOGRAPH",
91    "UPPERCASE",
92    "VARIATION_SELECTOR",
93    "WHITE_SPACE",
94    "XID_CONTINUE",
95    "XID_START",
96    /* CATEGORY */ "CASED_LETTER",
97    "CLOSE_PUNCTUATION",
98    "CONNECTOR_PUNCTUATION",
99    "CONTROL",
100    "CURRENCY_SYMBOL",
101    "DASH_PUNCTUATION",
102    "DECIMAL_NUMBER",
103    "ENCLOSING_MARK",
104    "FINAL_PUNCTUATION",
105    "FORMAT",
106    "INITIAL_PUNCTUATION",
107    "LETTER",
108    "LETTER_NUMBER",
109    "LINE_SEPARATOR",
110    "LOWERCASE_LETTER",
111    "MARK",
112    "MATH_SYMBOL",
113    "MODIFIER_LETTER",
114    "MODIFIER_SYMBOL",
115    "NONSPACING_MARK",
116    "NUMBER",
117    "OPEN_PUNCTUATION",
118    "OTHER",
119    "OTHER_LETTER",
120    "OTHER_NUMBER",
121    "OTHER_PUNCTUATION",
122    "OTHER_SYMBOL",
123    "PARAGRAPH_SEPARATOR",
124    "PRIVATE_USE",
125    "PUNCTUATION",
126    "SEPARATOR",
127    "SPACE_SEPARATOR",
128    "SPACING_MARK",
129    "SURROGATE",
130    "SYMBOL",
131    "TITLECASE_LETTER",
132    "UNASSIGNED",
133    "UPPERCASE_LETTER",
134];