Skip to main content

Executable Shlaer-Mellor Class Method Parser

Project description

Executable UML Class Method Parser

Parses an *.mtd file (method) to yield an abstract syntax tree using python named tuples

Why you need this

You need to process an *.mtd file in preparation for populating a database or some other purpose

Installation

Create or use a python 3.11+ environment. Then

% pip install mtd-parser

At this point you can invoke the parser via the command line or from your python script.

From your python script

You need this import statement at a minimum:

from mtd-parser.parser import MethodParser

You then specify a path as shown:

result = MethodParser.parse_file(file_input=path_to_file, debug=False)

In either case, result will be a list of parsed scrall statements. You may find the header of the visitor.py file helpful in interpreting these results.

From the command line

This is not the intended usage scenario, but may be helpful for testing or exploration. Since the parser may generate some diagnostic info you may want to create a fresh working directory and cd into it first. From there...

% mtd ping.mtd

The .mtd extension is not necessary, but the file must contain mtd text. See this repository's wiki for more about the xsm language. The grammar is defined in the method.peg file. (if the link breaks after I do some update to the code, just browse through the code looking for the method.peg file, and let me know so I can fix it)

You can also specify a debug option like this:

% mtd ping.mtd -D

This will create a diagnostics folder in your current working directory and deposit a couple of PDFs defining the parse of both the state model grammar: method_tree.pdf and your supplied text: method.pdf.

You should also see a file named mtd-parser.log in a diagnostics directory within your working directory

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mtd-parser-0.1.0.tar.gz (9.0 kB view details)

Uploaded Source

Built Distribution

mtd_parser-0.1.0-py3-none-any.whl (9.2 kB view details)

Uploaded Python 3

File details

Details for the file mtd-parser-0.1.0.tar.gz.

File metadata

  • Download URL: mtd-parser-0.1.0.tar.gz
  • Upload date:
  • Size: 9.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.4

File hashes

Hashes for mtd-parser-0.1.0.tar.gz
Algorithm Hash digest
SHA256 52edd6c6e6fe2a571c52b02e0e7963c356998f5dbbe994d772fa7459a20e20bc
MD5 847e44132c8928e58081073a232f83de
BLAKE2b-256 5d89d790029e94f65d13ed482d38759e3278caf1f3d6fd12caf78b50e171329f

See more details on using hashes here.

File details

Details for the file mtd_parser-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: mtd_parser-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 9.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.4

File hashes

Hashes for mtd_parser-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 dd4944b748cfad05671299099134a1bc0eea8cd4fe694cae30d36eeb4087af84
MD5 cbbec861981f46b42022c1a629bb281a
BLAKE2b-256 dcb8ac3088a95c269b132c5ae6de21af8b5635cfe2b97216cb7ac4709c1d52e7

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page