mirror of
https://github.com/nushell/nushell
synced 2024-12-29 14:33:13 +00:00
193b00764b
* Moves off of draining between filters. Instead, the sink will pull on the stream, and will drain element-wise. This moves the whole stream to being lazy. * Adds ctrl-c support and connects it into some of the key points where we pull on the stream. If a ctrl-c is detect, we immediately halt pulling on the stream and return to the prompt. * Moves away from having a SourceMap where anchor locations are stored. Now AnchorLocation is kept directly in the Tag. * To make this possible, split tag and span. Span is largely used in the parser and is copyable. Tag is now no longer copyable.
31 lines
1 KiB
Rust
31 lines
1 KiB
Rust
pub(crate) mod deserializer;
|
|
pub(crate) mod hir;
|
|
pub(crate) mod parse;
|
|
pub(crate) mod parse_command;
|
|
pub(crate) mod registry;
|
|
|
|
use crate::errors::ShellError;
|
|
|
|
pub(crate) use deserializer::ConfigDeserializer;
|
|
pub(crate) use hir::syntax_shape::flat_shape::FlatShape;
|
|
pub(crate) use hir::TokensIterator;
|
|
pub(crate) use parse::call_node::CallNode;
|
|
pub(crate) use parse::files::Files;
|
|
pub(crate) use parse::flag::{Flag, FlagKind};
|
|
pub(crate) use parse::operator::Operator;
|
|
pub(crate) use parse::parser::{nom_input, pipeline};
|
|
pub(crate) use parse::pipeline::{Pipeline, PipelineElement};
|
|
pub(crate) use parse::text::Text;
|
|
pub(crate) use parse::token_tree::{DelimitedNode, Delimiter, TokenNode};
|
|
pub(crate) use parse::tokens::{RawNumber, RawToken};
|
|
pub(crate) use parse::unit::Unit;
|
|
pub(crate) use registry::CommandRegistry;
|
|
|
|
pub fn parse(input: &str) -> Result<TokenNode, ShellError> {
|
|
let _ = pretty_env_logger::try_init();
|
|
|
|
match pipeline(nom_input(input)) {
|
|
Ok((_rest, val)) => Ok(val),
|
|
Err(err) => Err(ShellError::parse_error(err)),
|
|
}
|
|
}
|