{'fraction_non_alphanumeric': 0.022408963585434174, 'fraction_numerical': 0.0, 'mean_word_length': 5.269005847953216, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 1, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Grammar-centered Development of VDM Support

Starting from the ISO language reference, we have developed an industrial strength grammar for the VDM specification language. We summarize both the development process and its result. The employed methodology can be described as iterative grammar engineering and includes application of techniques such as grammar metrication, unit testing, and test coverage analysis. The result is a VDM grammar of industrial strength, in the sense that it is well-tested, it can be used for fast parsing of high volumes of VDM specifications, and it allows automatic generation of support for syntax tree representation, traversal, and interchange. In particular, we have generated Haskell support for parsing VDM, traversing the resulting ASTs, representing the ASTs in XML and in the ATerm maximal sharing interchange format, and for pretty-printing the ASTs back to VDM’s surface syntax. This front-end has proven its usefulness in the implementation of VooDooM, a tool that supports generation of relational models from VDM data types.