On this page:
3.1 DEPEND structs
pdepflag
pdependency
pdepend
3.2 DEPEND conversion
pdepend->string
port->pdepend
string->pdepend
3.3 DEPEND querying
pdepend->dependencies
8.12

3 DEPEND🔗ℹ

 (require pmsf/depend) package: pmsf-depend

3.1 DEPEND structs🔗ℹ

struct

(struct pdepflag (name operator default)
    #:extra-constructor-name make-pdepflag
    #:transparent)
  name : string?
  operator : (or/c #false '= '!= '? '!? '-)
  default : (or/c #false 'disabled 'enabled)

Example:
> (pdepflag "X" '? 'disabled)

(pdepflag "X" '? 'disabled)

struct

(struct pdependency (block
    constraint
    complete
    glob
    slot
    slotoperator
    flags)
    #:extra-constructor-name make-pdependency
    #:transparent)
  block : (or/c #false string?)
  constraint : (or/c #false string?)
  complete : pcomplete?
  glob : boolean?
  slot : (or/c #false pslot?)
  slotoperator : (or/c #false string?)
  flags : (listof pdepflag?)

Examples:
> (pdependency #false
               #false
               (pcomplete "app-misc" (pfull "asd" #false))
               #false
               #false
               #false
               '())

(pdependency #f #f (pcomplete "app-misc" (pfull "asd" #f)) #f #f #f '())

> (pdependency "!!"
               ">="
               (pcomplete "app-misc"
                          (pfull "asd"
                                 (pversion "1.2" '() '() '() '() '() 0)))
               #true
               (pslot "0" #false)
               "*"
               (list (pdepflag "X" '? 'disabled)))

(pdependency

 "!!"

 ">="

 (pcomplete "app-misc" (pfull "asd" (pversion "1.2" '() '() '() '() '() 0)))

 #t

 (pslot "0" #f)

 "*"

 (list (pdepflag "X" '? 'disabled)))

struct

(struct pdepend (dependencies)
    #:extra-constructor-name make-pdepend
    #:transparent)
  dependencies : (listof (or/c list? pcondition? pdependency?))

Example:
> (pdepend
   (list
    (pdependency #false
                 #false
                 (pcomplete "app-misc" (pfull "asd" #false))
                 #false
                 #false
                 #false
                 '())))

(pdepend

 (list

  (pdependency #f #f (pcomplete "app-misc" (pfull "asd" #f)) #f #f #f '())))

3.2 DEPEND conversion🔗ℹ

 (require pmsf/depend/convert) package: pmsf-depend

procedure

(pdepend->string input-pdepend)  string?

  input-pdepend : pdepend?

Example:
> (pdepend->string
   (pdepend
    (list
     (pdependency #false
                  #false
                  (pcomplete "app-misc" (pfull "asd" #false))
                  #false
                  #false
                  #false
                  '()))))

"app-misc/asd"

procedure

(port->pdepend input-port)  pdepend?

  input-port : input-port?

procedure

(string->pdepend input-string)  pdepend?

  input-string : string?

Examples:
> (string->pdepend "app-misc/asd")

(pdepend

 (list

  (pdependency #f #f (pcomplete "app-misc" (pfull "asd" #f)) #f #f #f '())))

> (string->pdepend "asd? ( || ( app-misc/asd:= >=app-misc/dsa-1:1=[asd] ) )")

(pdepend

 (list

  (pcondition

   "asd"

   (list

    (pcondition

     'inclusive-or

     (list

      (pdependency #f #f (pcomplete "app-misc" (pfull "asd" #f)) #f #f "=" '())

      (pdependency

       #f

       ">="

       (pcomplete

        "app-misc"

        (pfull "dsa" (pversion "1" '() '() '() '() '() 0)))

       #f

       (pslot "1" #f)

       "="

       (list (pdepflag "asd" #f #f)))))))))

3.3 DEPEND querying🔗ℹ

 (require pmsf/depend/query) package: pmsf-depend

procedure

(pdepend->dependencies input-pdepend)  (listof pdependency?)

  input-pdepend : pdepend?
Extract dependencies from given pdepend, all conditions are thrown away.

Example:
> (pdepend->dependencies
   (string->pdepend "asd? ( || ( app-misc/asd:= >=app-misc/dsa-1:1=[asd] ) )"))

(list

 (pdependency #f #f (pcomplete "app-misc" (pfull "asd" #f)) #f #f "=" '())

 (pdependency

  #f

  ">="

  (pcomplete "app-misc" (pfull "dsa" (pversion "1" '() '() '() '() '() 0)))

  #f

  (pslot "1" #f)

  "="

  (list (pdepflag "asd" #f #f))))