Merge branch 'main' of https://github.com/nushell/engine-q into parse-error

This commit is contained in:
Fernando Herrera
2021-09-11 08:26:29 +01:00
5 changed files with 16 additions and 7 deletions

View File

@ -10,6 +10,7 @@ pub enum FlatShape {
Range,
InternalCall,
External,
ExternalArg,
Literal,
Operator,
Signature,
@ -55,8 +56,14 @@ pub fn flatten_expression(
}
output
}
Expr::ExternalCall(..) => {
vec![(expr.span, FlatShape::External)]
Expr::ExternalCall(name, args) => {
let mut output = vec![(*name, FlatShape::External)];
for arg in args {
output.push((*arg, FlatShape::ExternalArg));
}
output
}
Expr::Garbage => {
vec![(expr.span, FlatShape::Garbage)]

View File

@ -80,14 +80,14 @@ fn check_name(working_set: &mut StateWorkingSet, spans: &[Span]) -> Option<Parse
}
pub fn parse_external_call(
working_set: &mut StateWorkingSet,
_working_set: &mut StateWorkingSet,
spans: &[Span],
) -> (Expression, Option<ParseError>) {
// TODO: add external parsing
let mut args = vec![];
let name = working_set.get_span_contents(spans[0]).to_vec();
let name = spans[0];
for span in &spans[1..] {
args.push(working_set.get_span_contents(*span).to_vec());
args.push(*span);
}
(
Expression {