===
Recipes: Parameters: Single
===

r param:

---

(file
  (recipe
    (identifier)
    (recipe_parameters
      (recipe_parameter
        (identifier)))))

===
Recipes: Parameters: Single, with default
===

r param = (if a == b { c } else { d }):

---

(file
  (recipe
    (identifier)
    (recipe_parameters
      (recipe_parameter
        (identifier)
        (value
          (expression
            (condition
              (expression
                (value
                  (identifier)))
              (expression
                (value
                  (identifier))))
            (expression
              (value
                (identifier)))
            (expression
              (value
                (identifier)))))))))

===
Recipes: Parameters: Multiple
===

r a b:

---

(file
  (recipe
    (identifier)
    (recipe_parameters
      (recipe_parameter
        (identifier))
      (recipe_parameter
        (identifier)))))

===
Recipes: Parameters: Multiple, with default
===

r a = "some string" param = (if a == b { c } else { d }):

---

(file
  (recipe
    (identifier)
    (recipe_parameters
      (recipe_parameter
        (identifier)
        (value
          (string)))
      (recipe_parameter
        (identifier)
        (value
          (expression
            (condition
              (expression
                (value
                  (identifier)))
              (expression
                (value
                  (identifier))))
            (expression
              (value
                (identifier)))
            (expression
              (value
                (identifier)))))))))

===
Recipes: Parameters: Single, with $
===

r $param:

---

(file
  (recipe
    (identifier)
    (recipe_parameters
      (recipe_parameter
        (identifier)))))

===
Recipes: Parameters: Single, with defaulti, with $
===

r $param = (if a == b { c } else { d }):

---

(file
  (recipe
    (identifier)
    (recipe_parameters
      (recipe_parameter
        (identifier)
        (value
          (expression
            (condition
              (expression
                (value
                  (identifier)))
              (expression
                (value
                  (identifier))))
            (expression
              (value
                (identifier)))
            (expression
              (value
                (identifier)))))))))

===
Recipes: Parameters: Multiple, with $
===

r $a $b:

---

(file
  (recipe
    (identifier)
    (recipe_parameters
      (recipe_parameter
        (identifier))
      (recipe_parameter
        (identifier)))))

===
Recipes: Parameters: Multiple, with default
===

r $a = "some string" $param = (if a == b { c } else { d }):

---

(file
  (recipe
    (identifier)
    (recipe_parameters
      (recipe_parameter
        (identifier)
        (value
          (string)))
      (recipe_parameter
        (identifier)
        (value
          (expression
            (condition
              (expression
                (value
                  (identifier)))
              (expression
                (value
                  (identifier))))
            (expression
              (value
                (identifier)))
            (expression
              (value
                (identifier)))))))))

===
Recipes: Parameters: variadics
===

r *a:

r *$a:

r +a:

r +$a:

r *a=value:

r *$a=value:

r +a=value:

r +$a=value:

---

(file
  (recipe
    (identifier)
    (recipe_parameters
      (variadic_parameter
        (recipe_parameter
          (identifier)))))
  (recipe
    (identifier)
    (recipe_parameters
      (variadic_parameter
        (recipe_parameter
          (identifier)))))
  (recipe
    (identifier)
    (recipe_parameters
      (variadic_parameter
        (recipe_parameter
          (identifier)))))
  (recipe
    (identifier)
    (recipe_parameters
      (variadic_parameter
        (recipe_parameter
          (identifier)))))
  (recipe
    (identifier)
    (recipe_parameters
      (variadic_parameter
        (recipe_parameter
          (identifier)
          (value
            (identifier))))))
  (recipe
    (identifier)
    (recipe_parameters
      (variadic_parameter
        (recipe_parameter
          (identifier)
          (value
            (identifier))))))
  (recipe
    (identifier)
    (recipe_parameters
      (variadic_parameter
        (recipe_parameter
          (identifier)
          (value
            (identifier))))))
  (recipe
    (identifier)
    (recipe_parameters
      (variadic_parameter
        (recipe_parameter
          (identifier)
          (value
            (identifier)))))))
