Coding a parser for a domain specific language in Java

Posted by Bruno Rothgiesser on Stack Overflow See other posts from Stack Overflow or by Bruno Rothgiesser
Published on 2010-03-08T11:28:38Z Indexed on 2010/03/08 11:36 UTC
Read the original article Hit count: 700

We want to design a simple domain specific language for writing test scripts to automatically test a XML-based interface of one of our applications. A sample test would be:

  • Get an input XML file from network shared folder or subversion repository
  • Import the XML file using the interface
  • Check if the import result message was successfull
  • Export the XML corresponding to the object that was just imported using the interface and check if it correct.

If the domain specific language can be declarative and its statements look as close as my sentences in the sample above as possible, it will be awesome because people won't necessarily have to be programmers to understand/write/maintain the tests. Something like:

newObject = GET FILE "http://svn/repos/template1.xml"
reponseMessage = IMPORT newObject
newObjectID = GET PROPERTY '/object/id/' FROM responseMessage
(..)

But then I'm not sure how to implement a simple parser for that languange in Java. Back in school, 10 years ago, I coded a language parser using Lex and Yacc for the C language. Maybe an approach would be to use some equivalent for Java?

Or, I could give up the idea of having a declarative language and choose an XML-based language instead, which would possibly be easier to create a parser for? What approach would you recommend?

© Stack Overflow or respective owner

Related posts about java

Related posts about domain-specific-languages