Create a ppddl parser.

Issue #42 new
Relić Đorđe created an issue

A Bison/Flex parser for ppddl. (issue from 10.04.2017)

Comments (6)


    Hi there! I'm not particularly familiar with the project details but being interested in probabilistic planning I couldn't help but notice this issue...

    I don't know how you plan to implement the PPDDL parser, but If you're interested in a simple bootstrap code of a Bison/Flex-based PDDL parser, please check out this repository

    Currently, it implements only :strips, :equality and :typing requirements but it should be pretty straightforward to add others (like :probabilistic-effects and :rewards).

    Cheers from Brazil!

  2. tkeller repo owner

    Hi Thiago,

    thank's for pointing us to your pddl parser. This would indeed be a good starting point for our development of a probabilistic version.

    Since I am not too firm with licensing stuff: PROST is published under GPL 3 as well. Would that allow us to incorporate your code (of course with appropriate acknowledgement) directly into PROST?



    Hi @tkeller

    Sure thing! You're totally welcome to use my parser in any way you see fit.

    I've been planning to add the necessary :mdp requirements to the parser for some time now. Perhaps, next week I'll have time to do so. Meanwhile, if you want to add them on your own and/or incorporate/integrate part of the code, please feel free!


  4. Relić Đorđe reporter

    Parsing the input files to string values is done, the same way as it was done in rddl_parser. There are some notes to be checked in both lexer.l and parser.ypp files. Those notes are mostly stating the difference between PDDL3.1 design stated here. All the domains pass the parsing, now what is left is to process them in the same way as it was done in rddl_parser.

    For writing down PDDL3.1 rules, I used the mentioned work of Dr. Kovacs and took references from Thiago's code and the paper he linked in project description (thanks @THIAGO BUENO for input).

  5. tkeller repo owner

    There is a preliminary implementation of the parser, but it doesn't create the right data structures yet simply because PPDDL cannot be fit into our existing data structure easily. We'd therefore like to alter the data structure we use to represent planning tasks to one that captures both the essence of RDDL and PPDDL. Since this is a non-trivial, larger task, we have opened 3 new issues (issue #45, issue #46 and issue #47) to prepare the data structure. Before those issues have been resolved, we won't be able to continue work in this issue.

  6. Log in to comment