/**
 * Utils for properties of SDF productions
 */
module sdf/production/utils
strategies

  /**
   * Succeeds if the production is an injection of a sort to a sort,
   * without a cons attribute.
   */
  is-inject-prod =
    ?prod([sort(_)], sort(_), attrs(attrs))
    ; where(<not(get-cnstr-name)> attrs)

  is-bracket-prod = 
    ?prod(_, _, attrs(attrs))
    ; where(<contains-bracket> attrs)

  is-reject-prod =
      ?prod(_, _, attrs(attrs))
    ; where(<contains-reject> attrs)
