From 8c5918840be13dd7b1db9c64938c27a8944aea6b Mon Sep 17 00:00:00 2001 From: Лач Date: Thu, 04 Jun 2020 17:25:55 +0000 Subject: [PATCH] fix(parser): desugar % to std.mod --- --- a/crates/jsonnet-parser/src/expr.rs +++ b/crates/jsonnet-parser/src/expr.rs @@ -50,8 +50,8 @@ pub enum BinaryOpType { Mul, Div, - Mod, - + // Mod is desugared to stdlib + // Mod, Add, Sub, --- a/crates/jsonnet-parser/src/lib.rs +++ b/crates/jsonnet-parser/src/lib.rs @@ -246,7 +246,12 @@ -- a:(@) _ "*" _ b:@ {loc_expr_todo!(Expr::BinaryOp(a, BinaryOpType::Mul, b))} a:(@) _ "/" _ b:@ {loc_expr_todo!(Expr::BinaryOp(a, BinaryOpType::Div, b))} - a:(@) _ "%" _ b:@ {loc_expr_todo!(Expr::BinaryOp(a, BinaryOpType::Mod, b))} + a:(@) _ "%" _ b:@ {loc_expr_todo!(Expr::Apply( + el!(Expr::Index( + el!(Expr::Var("std".to_owned())), + el!(Expr::Str("mod".to_owned())) + )), ArgsDesc(vec![Arg(None, a), Arg(None, b)]) + ))} -- "-" _ b:@ {loc_expr_todo!(Expr::UnaryOp(UnaryOpType::Minus, b))} "!" _ b:@ {loc_expr_todo!(Expr::UnaryOp(UnaryOpType::Not, b))} -- gitstuff