fn parse_cast(&mut self, kind: ScalarKind) -> WeldResult<Box<Expr>> {
        if *self.next() != TOpenParen {
            return compile_err!("Expected '('");
        }
        let child_expr = self.expr()?;
        if *self.next() != TCloseParen {
            return compile_err!("Expected ')'");
        }
        let cast_expr = expr_box(Cast { kind, child_expr }, Annotations::new());
        Ok(cast_expr)
    }
Parses a cast operation, the type being cast to is passed in as an argument.
weld/src/syntax/parser.rs