From 3b35dcb61928fa22cf174dff77e89460cbc9f382 Mon Sep 17 00:00:00 2001 From: Yehuda Katz Date: Sat, 22 Jun 2019 10:08:53 -0400 Subject: [PATCH] Finish nom upgrade --- .cargo/config | 1 - src/evaluate/evaluator.rs | 2 +- src/parser/hir.rs | 4 +--- src/parser/hir/baseline_parse.rs | 18 +------------- src/parser/hir/baseline_parse_tokens.rs | 32 +++++-------------------- src/parser/hir/path.rs | 2 +- src/parser/parse2/span.rs | 2 +- src/parser/parse2/token_tree.rs | 21 ---------------- src/parser/parse2/tokens.rs | 27 --------------------- 9 files changed, 11 insertions(+), 98 deletions(-) diff --git a/.cargo/config b/.cargo/config index 6727dab680..e69de29bb2 100644 --- a/.cargo/config +++ b/.cargo/config @@ -1 +0,0 @@ -paths = ["C:\\Users\\wycat\\Code\\nom_locate"] \ No newline at end of file diff --git a/src/evaluate/evaluator.rs b/src/evaluate/evaluator.rs index 70cd486e71..7163bf6973 100644 --- a/src/evaluate/evaluator.rs +++ b/src/evaluate/evaluator.rs @@ -1,7 +1,7 @@ use crate::object::base::Block; use crate::parser::{ hir::{self, Expression, RawExpression}, - CommandRegistry, Span, Spanned, Text, + CommandRegistry, Spanned, Text, }; use crate::prelude::*; use derive_new::new; diff --git a/src/parser/hir.rs b/src/parser/hir.rs index 70b5f5c3be..7ab79a8d93 100644 --- a/src/parser/hir.rs +++ b/src/parser/hir.rs @@ -9,9 +9,7 @@ use derive_new::new; use getset::Getters; crate use baseline_parse::baseline_parse_single_token; -crate use baseline_parse_tokens::{ - baseline_parse_next_expr, baseline_parse_tokens, ExpressionKindHint, -}; +crate use baseline_parse_tokens::{baseline_parse_next_expr, ExpressionKindHint}; crate use binary::Binary; crate use named::NamedArguments; crate use path::Path; diff --git a/src/parser/hir/baseline_parse.rs b/src/parser/hir/baseline_parse.rs index 1150434fcb..ae9240cd4c 100644 --- a/src/parser/hir/baseline_parse.rs +++ b/src/parser/hir/baseline_parse.rs @@ -1,20 +1,4 @@ -use crate::errors::ShellError; -use crate::parser::{hir, CommandRegistry, RawToken, Token, TokenNode}; - -// pub fn baseline_parse_token( -// token_node: TokenNode, -// _registry: &dyn CommandRegistry, -// ) -> Result { -// match token_node { -// TokenNode::Token(token) => Ok(baseline_parse_single_token(token)), -// TokenNode::Call(_call) => Err(ShellError::unimplemented("baseline_parse Call")), -// TokenNode::Delimited(_delimited) => { -// Err(ShellError::unimplemented("baseline_parse Delimited")) -// } -// TokenNode::Pipeline(_pipeline) => Err(ShellError::unimplemented("baseline_parse Pipeline")), -// TokenNode::Path(_path) => Err(ShellError::unimplemented("baseline_parse Path")), -// } -// } +use crate::parser::{hir, RawToken, Token}; pub fn baseline_parse_single_token(token: &Token, source: &str) -> hir::Expression { match *token.item() { diff --git a/src/parser/hir/baseline_parse_tokens.rs b/src/parser/hir/baseline_parse_tokens.rs index 4cf8ae86bb..39c1fcaee8 100644 --- a/src/parser/hir/baseline_parse_tokens.rs +++ b/src/parser/hir/baseline_parse_tokens.rs @@ -23,6 +23,7 @@ pub fn baseline_parse_tokens( Ok(exprs) } +#[allow(unused)] #[derive(Debug)] pub enum ExpressionKindHint { Literal, @@ -134,15 +135,15 @@ pub fn baseline_parse_semantic_token( ) -> Result { match token { TokenNode::Token(token) => Ok(baseline_parse_single_token(token, source)), - TokenNode::Call(call) => unimplemented!(), - TokenNode::Delimited(delimited) => unimplemented!(), - TokenNode::Pipeline(pipeline) => unimplemented!(), + TokenNode::Call(_call) => unimplemented!(), + TokenNode::Delimited(_delimited) => unimplemented!(), + TokenNode::Pipeline(_pipeline) => unimplemented!(), TokenNode::Operator(_op) => unreachable!(), - TokenNode::Flag(flag) => unimplemented!(), + TokenNode::Flag(_flag) => unimplemented!(), TokenNode::Identifier(_span) => unreachable!(), TokenNode::Whitespace(_span) => unreachable!(), TokenNode::Error(error) => Err(*error.item.clone()), - TokenNode::Path(path) => unimplemented!(), + TokenNode::Path(_path) => unimplemented!(), } } @@ -154,24 +155,3 @@ fn next_token(nodes: &mut impl Iterator) -> Option<&'a Tok } } } - -fn baseline_parse_token( - token_node: &TokenNode, - _registry: &dyn CommandRegistry, - source: &str, -) -> Result { - match token_node { - TokenNode::Token(token) => Ok(hir::baseline_parse_single_token(token, source)), - TokenNode::Call(_call) => Err(ShellError::unimplemented("baseline_parse Call")), - TokenNode::Delimited(_delimited) => { - Err(ShellError::unimplemented("baseline_parse Delimited")) - } - TokenNode::Pipeline(_pipeline) => Err(ShellError::unimplemented("baseline_parse Pipeline")), - TokenNode::Path(_path) => Err(ShellError::unimplemented("baseline_parse Path")), - TokenNode::Operator(_op) => Err(ShellError::unimplemented("baseline_parse Operator")), - TokenNode::Flag(_op) => Err(ShellError::unimplemented("baseline_parse Flag")), - TokenNode::Identifier(_op) => Err(ShellError::unimplemented("baseline_parse Identifier")), - TokenNode::Whitespace(_op) => Err(ShellError::unimplemented("baseline_parse Whitespace")), - TokenNode::Error(err) => Err(*err.item.clone()), - } -} diff --git a/src/parser/hir/path.rs b/src/parser/hir/path.rs index 132f3112b8..02bf8e5ce3 100644 --- a/src/parser/hir/path.rs +++ b/src/parser/hir/path.rs @@ -1,4 +1,4 @@ -use crate::parser::{hir::Expression, Operator, Spanned}; +use crate::parser::{hir::Expression, Spanned}; use derive_new::new; use getset::Getters; diff --git a/src/parser/parse2/span.rs b/src/parser/parse2/span.rs index 4214d29aaa..928352d69b 100644 --- a/src/parser/parse2/span.rs +++ b/src/parser/parse2/span.rs @@ -32,7 +32,7 @@ impl Spanned { } crate fn copy_span(&self, output: U) -> Spanned { - let Spanned { span, item } = self; + let Spanned { span, .. } = self; Spanned { span: *span, diff --git a/src/parser/parse2/token_tree.rs b/src/parser/parse2/token_tree.rs index 9718e9def5..e618feaa93 100644 --- a/src/parser/parse2/token_tree.rs +++ b/src/parser/parse2/token_tree.rs @@ -44,13 +44,6 @@ impl TokenNode { self.span().slice(source) } - pub fn is_ws(&self) -> bool { - match self { - TokenNode::Whitespace(_) => true, - _ => false, - } - } - pub fn is_bare(&self) -> bool { match self { TokenNode::Token(Spanned { @@ -61,20 +54,6 @@ impl TokenNode { } } - crate fn as_string(&self, source: &str) -> Option> { - match self { - TokenNode::Token(Spanned { - item: RawToken::Bare, - span, - }) => Some(Spanned::from_item(span.slice(source).to_string(), span)), - TokenNode::Token(Spanned { - item: RawToken::String(inner), - span, - }) => Some(Spanned::from_item(inner.slice(source).to_string(), span)), - _ => None, - } - } - crate fn as_flag(&self, value: &str, source: &str) -> Option> { match self { TokenNode::Flag( diff --git a/src/parser/parse2/tokens.rs b/src/parser/parse2/tokens.rs index 3e415c5261..e2d36b3d76 100644 --- a/src/parser/parse2/tokens.rs +++ b/src/parser/parse2/tokens.rs @@ -1,5 +1,3 @@ -use crate::parser::parse2::flag::*; -use crate::parser::parse2::operator::*; use crate::parser::parse2::span::*; use crate::parser::parse2::unit::*; @@ -13,28 +11,3 @@ pub enum RawToken { } pub type Token = Spanned; - -impl Token { - pub fn to_semantic_token(&self) -> Option { - let semantic_token = match self.item { - RawToken::Integer(int) => RawSemanticToken::Integer(int), - RawToken::Size(int, unit) => RawSemanticToken::Size(int, unit), - RawToken::String(span) => RawSemanticToken::String(span), - RawToken::Variable(span) => RawSemanticToken::Variable(span), - RawToken::Bare => RawSemanticToken::Bare, - }; - - Some(Spanned::from_item(semantic_token, self.span)) - } -} - -#[derive(Debug, Clone, Copy, Eq, PartialEq, Ord, PartialOrd, Hash)] -pub enum RawSemanticToken { - Integer(i64), - Size(i64, Unit), - String(Span), - Variable(Span), - Bare, -} - -pub type SemanticToken = Spanned;