diff --git a/crates/nu-parser/src/parser.rs b/crates/nu-parser/src/parser.rs index 07b5a9d3a0..b715af9a44 100644 --- a/crates/nu-parser/src/parser.rs +++ b/crates/nu-parser/src/parser.rs @@ -2758,6 +2758,7 @@ pub fn parse_shape_name( b"duration" => SyntaxShape::Duration, b"error" => SyntaxShape::Error, b"expr" => SyntaxShape::Expression, + b"float" | b"decimal" => SyntaxShape::Decimal, b"filesize" => SyntaxShape::Filesize, b"full-cell-path" => SyntaxShape::FullCellPath, b"glob" => SyntaxShape::GlobPattern, @@ -2822,7 +2823,7 @@ pub fn parse_type(_working_set: &StateWorkingSet, bytes: &[u8]) -> Type { b"duration" => Type::Duration, b"error" => Type::Error, b"filesize" => Type::Filesize, - b"float" => Type::Float, + b"float" | b"decimal" => Type::Float, b"int" => Type::Int, b"list" => Type::List(Box::new(Type::Any)), b"number" => Type::Number, @@ -4442,6 +4443,7 @@ pub fn parse_value( (expression, err) } SyntaxShape::Number => parse_number(bytes, span), + SyntaxShape::Decimal => parse_float(bytes, span), SyntaxShape::Int => parse_int(bytes, span), SyntaxShape::Duration => parse_duration(working_set, span), SyntaxShape::DateTime => parse_datetime(working_set, span), diff --git a/crates/nu-protocol/src/syntax_shape.rs b/crates/nu-protocol/src/syntax_shape.rs index 898a828d19..048c736db5 100644 --- a/crates/nu-protocol/src/syntax_shape.rs +++ b/crates/nu-protocol/src/syntax_shape.rs @@ -31,6 +31,9 @@ pub enum SyntaxShape { /// A datetime value, eg `2022-02-02` or `2019-10-12T07:20:50.52+00:00` DateTime, + /// A decimal value, eg `1.0` + Decimal, + /// A directory is allowed Directory, @@ -122,6 +125,7 @@ impl SyntaxShape { SyntaxShape::Expression => Type::Any, SyntaxShape::Filepath => Type::String, SyntaxShape::Directory => Type::String, + SyntaxShape::Decimal => Type::Float, SyntaxShape::Filesize => Type::Filesize, SyntaxShape::FullCellPath => Type::Any, SyntaxShape::GlobPattern => Type::String, @@ -164,6 +168,7 @@ impl Display for SyntaxShape { SyntaxShape::Number => write!(f, "number"), SyntaxShape::Range => write!(f, "range"), SyntaxShape::Int => write!(f, "int"), + SyntaxShape::Decimal => write!(f, "decimal"), SyntaxShape::Filepath => write!(f, "path"), SyntaxShape::Directory => write!(f, "directory"), SyntaxShape::GlobPattern => write!(f, "glob"),