pddl-parser 0.2.3

A Rust library for parsing PDDL files
Documentation
; Test comment
; Test multiline comment

(define (domain letseat)
    (:requirements :typing)

    (:types
        location locatable - object ; comment
        bot cupcake - locatable
        robot - bot
    )

    (:predicates
        (on ?obj - locatable ?loc - location)
        (holding ?arm - locatable ?cupcake - locatable)
        (arm-empty)
        (path ?location1 - location ?location2 - location)
    )

    (:action pick-up
        :parameters (?arm - bot ?cupcake - locatable ?loc - location)
        :precondition (and
            (on ?arm ?loc)
            (on ?cupcake ?loc)
            (arm-empty)
        )
        :effect (and
            (not (on ?cupcake ?loc))
            (holding ?arm ?cupcake)
            (not (arm-empty))
        )
    )

    (:action drop
        :parameters (?arm - bot ?cupcake - locatable ?loc - location)
        :precondition (and
            (on ?arm ?loc)
            (holding ?arm ?cupcake)
        )
        :effect (and
            (on ?cupcake ?loc)
            (arm-empty)
            (not (holding ?arm ?cupcake))
        )
    )

    (:action move
        :parameters (?arm - bot ?from - location ?to - location)
        :precondition (and
            (on ?arm ?from)
            (path ?from ?to)
        )
        :effect (and
            (not (on ?arm ?from))
            (on ?arm ?to)
        )
    )
)