This repository holds engineering artifacts for a PLUS language processor which parses PLUS (based on PlantUML) and produces Protocol Verifier job definitions formatted as JSON.
plus2json requires some files to be generated (Antlr-based parser and schema gen). To generate the necessary files run:
python bundle.py dev
|
Note
|
For this build to work, the WORKSPACE variable must be set to an
Eclipse workspace containing the plus BridgePoint project. The antlr4-tools
python package must also be installed.
|
To run plus2json in the repository, run:
python -m plus2json
To print usage and help, run:
python -m plus2json -h
usage: python plus2json.pyz <command> [-v] [-h] [--debug] [--pretty-print] [-o dir] [filenames ...]
plus2json is a utility for processing PLUS job definitions and producing JSON ouptut for congifuring and testing the protocol verifier.
Commands:
--job Ouput PLUS job definition
--play Generate runtime event data
Global Options:
-v, --version show program's version number and exit
-h, --help Show this help message and exit
--debug Enable debug logging
-p, --pretty-print Print human readable debug output
-o dir, --outdir dir Path to output directory
filenames Input .puml files
Play Options:
--integer-ids Use deterministic integer IDs
Examples:
# load Tutorial_1.puml and print a human readable version of the definition to the console
python plus2json.pyz job Tutorial_1.puml --pretty-print
# convert Tutorial_1.puml into JSON and output to the console
python plus2json.pyz job Tutorial_1.puml
# convert all .puml files in the 'puml' directory and write each to a JSON file in 'job_definitions'
python plus2json.pyz job -o job_definitions puml/*.puml
# load Tutorial_1.puml and print a human readable stream of events to the console
python plus2json.pyz play Tutorial_1.puml --pretty-print
# load Tutorial_1.puml and print a JSON stream of events to the console
python plus2json.pyz play Tutorial_1.puml
# load all .puml files in the 'puml' directory and write steam of events for each to a JSON file in 'job_definitions'
python plus2json.pyz play -o job_definitions puml/*.puml
