Rename params -> args in Call Expr

This commit is contained in:
greg 2017-10-08 22:52:05 -07:00
parent 8fe535597e
commit ff0e14d9a9
1 changed files with 14 additions and 17 deletions

View File

@ -445,7 +445,7 @@ pub enum ExpressionType {
Variable(Rc<String>), Variable(Rc<String>),
Call { Call {
name: Rc<String>, name: Rc<String>,
params: Vec<Expression>, arguments: Vec<Expression>,
}, },
Index { Index {
indexee: Box<Expression>, indexee: Box<Expression>,
@ -808,23 +808,20 @@ impl Parser {
parse_method!(identifier_expr(&mut self) -> ParseResult<Expression> { parse_method!(identifier_expr(&mut self) -> ParseResult<Expression> {
use self::ExpressionType::*; use self::ExpressionType::*;
let identifier = self.identifier()?; let identifier = self.identifier()?;
match self.peek() { Ok(match self.peek() {
LParen => { LParen => {
let call_params = self.call_expr()?; let arguments = self.call_expr()?;
Ok(Expression(Call { Expression(Call { name: identifier, arguments }, None)
name: identifier,
params: call_params,
}, None))
}, },
LSquareBracket => { LSquareBracket => {
let indexers = self.index_expr()?; let indexers = self.index_expr()?;
Ok(Expression(Index { Expression(Index {
indexee: Box::new(Expression(Variable(identifier), None)), indexee: Box::new(Expression(Variable(identifier), None)),
indexers: indexers, indexers,
}, None)) }, None)
} }
_ => Ok(Expression(Variable(identifier), None)) _ => Expression(Variable(identifier), None)
} })
}); });
parse_method!(call_expr(&mut self) -> ParseResult<Vec<Expression>> { parse_method!(call_expr(&mut self) -> ParseResult<Vec<Expression>> {
@ -1112,10 +1109,10 @@ mod parse_tests {
#[test] #[test]
fn parsing_functions() { fn parsing_functions() {
parse_test!("fn oi()", AST(vec![Declaration(FuncSig(Signature { name: rc!(oi), params: vec![], type_anno: None }))])); parse_test!("fn oi()", AST(vec![Declaration(FuncSig(Signature { name: rc!(oi), params: vec![], type_anno: None }))]));
parse_test!("oi()", AST(vec![exprstatement!(Call { name: rc!(oi), params: vec![] })])); parse_test!("oi()", AST(vec![exprstatement!(Call { name: rc!(oi), arguments: vec![] })]));
parse_test!("oi(a, 2 + 2)", AST(vec![exprstatement!(Call parse_test!("oi(a, 2 + 2)", AST(vec![exprstatement!(Call
{ name: rc!(oi), { name: rc!(oi),
params: vec![ex!(var!("a")), ex!(binexp!("+", IntLiteral(2), IntLiteral(2)))] arguments: vec![ex!(var!("a")), ex!(binexp!("+", IntLiteral(2), IntLiteral(2)))]
})])); })]));
parse_error!("a(b,,c)"); parse_error!("a(b,,c)");
@ -1127,7 +1124,7 @@ mod parse_tests {
parse_test!("fn a(x) { x() }", AST(vec![Declaration( parse_test!("fn a(x) { x() }", AST(vec![Declaration(
FuncDecl(Signature { name: rc!(a), params: vec![(rc!(x),None)], type_anno: None }, FuncDecl(Signature { name: rc!(a), params: vec![(rc!(x),None)], type_anno: None },
vec![exprstatement!(Call { name: rc!(x), params: vec![] })]))])); vec![exprstatement!(Call { name: rc!(x), arguments: vec![] })]))]));
} }
#[test] #[test]
@ -1167,8 +1164,8 @@ mod parse_tests {
#[test] #[test]
fn parsing_block_expressions() { fn parsing_block_expressions() {
parse_test!("if a() { b(); c() }", AST(vec![exprstatement!( parse_test!("if a() { b(); c() }", AST(vec![exprstatement!(
IfExpression(Box::new(ex!(Call { name: rc!(a), params: vec![]})), IfExpression(Box::new(ex!(Call { name: rc!(a), arguments: vec![]})),
vec![exprstatement!(Call { name: rc!(b), params: vec![]}), exprstatement!(Call { name: rc!(c), params: vec![] })], vec![exprstatement!(Call { name: rc!(b), arguments: vec![]}), exprstatement!(Call { name: rc!(c), arguments: vec![] })],
None) None)
)])); )]));
parse_test!(r#" parse_test!(r#"