yash_syntax/parser/
lex.rs

1// This file is part of yash, an extended POSIX shell.
2// Copyright (C) 2020 WATANABE Yuki
3//
4// This program is free software: you can redistribute it and/or modify
5// it under the terms of the GNU General Public License as published by
6// the Free Software Foundation, either version 3 of the License, or
7// (at your option) any later version.
8//
9// This program is distributed in the hope that it will be useful,
10// but WITHOUT ANY WARRANTY; without even the implied warranty of
11// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12// GNU General Public License for more details.
13//
14// You should have received a copy of the GNU General Public License
15// along with this program.  If not, see <https://www.gnu.org/licenses/>.
16
17//! Lexical analyzer
18//!
19//! See the [parent module](super)'s documentation to learn how to use the
20//! [lexer](Lexer).
21
22mod core;
23
24mod arith;
25mod backquote;
26mod braced_param;
27mod command_subst;
28mod dollar;
29mod escape;
30mod heredoc;
31mod keyword;
32mod misc;
33mod modifier;
34mod op;
35mod raw_param;
36mod text;
37mod tilde;
38mod token;
39mod word;
40
41pub use self::braced_param::is_name;
42pub use self::braced_param::is_name_char;
43pub use self::core::*;
44pub use self::keyword::Keyword;
45pub use self::keyword::ParseKeywordError;
46pub use self::op::Operator;
47pub use self::op::ParseOperatorError;
48pub use self::op::TryFromOperatorError;
49pub use self::op::is_operator_char;
50pub use self::raw_param::is_portable_name;
51pub use self::raw_param::is_portable_name_char;
52pub use self::raw_param::is_single_char_name;
53pub use self::raw_param::is_special_parameter_char;
54pub use self::token::is_token_delimiter_char;