The following sections describe the two main roles (and distinct skills) of VisualLangLab users and the workflow that connects their activities. The same individual could (and perhaps typically will) of course perform both roles.
Before proceeding any further, readers should note the following definitions.
Note: Readers, particularly those who will be Using the API, should be aware that Scala's parser combinators (which VisualLangLab uses internally) assigns a type called Parser to parser-rules (and even the nodes that comprise them). VisualLangLab documentation however avoids using that meaning of parser, preferring the definition given above instead. So, be careful when reading Using the API which has to use both the meanings. The Relationship with Scala Parser Combinators has more details.
Figure-1 below illustrates the development workflow, and shows the different ways in which different groups of people use the VisualLangLab software.
Figure-1. Development workflow using VisualLangLab
The grammar expert is responsible for developing and testing a parser. From the grammar expert's point of view, a parser is not an application or piece of code, but a set of visual gramamar-trees that may be further processed as described below. This parser may be saved as an XML file (with suffix vll) that can be reopened in the IDE for reviewing, testing, or modification. These saved-grammar files can also be published for use by application developers.
The GUI (the grammar editor) can be run by following the instructions in Download Install and Run, and a grammar can be created or edited by following the instructions in Editing the Grammar Tree. An understanding of the Relationship with Scala Parser Combinators provides a bridge to the Application developer's perspective.
An application developer uses pre-existing saved-grammar files to create applications for specific requirements. While an applicaion developer may use The GUI to understand and review the grammar, his primary focus is Using the API and the description of the AST and Action Code. The Examples are also expected to be helpful.
An application developer also needs to be an expert in the use of programming tools, have a good understanding of at least one JVM language (including Java or Scala), and have access to a domain expert who understands the application's requirements well.
The Application user is typically unaware of the constituents of his dedicated application, and the process that was used to design and develop it. The VisualLangLab runtime library and one or more grammar files are embedded in the product, and depending on the nature or purpose of the application it may or may not be necessary for the user to be aware of these factors.