Executable Shlaer-Mellor State Model Parser
Project description
Executable State Model Parser
Parses an *.xsm file (Executable State Model) to yield an abstract syntax tree using python named tuples
Why you need this
You need to process an *.xsm file in preparation for populating a database or some other purpose
Installation
Create or use a python 3.11+ environment. Then
% pip install xsm-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 xsm-parser.parser import StateModelParser
You then specify a path as shown:
result = StateModelParser.parse_file(file_input=path_to_file, debug=False)
Check the code in parser.py
to verify I haven't changed these parameters on you wihtout updating the readme.
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...
% xsm cabin.xsm
The .xsm extension is not necessary, but the file must contain xsm text. See this repository's wiki for more about the xsm language. The grammar is defined in the state_model.peg file. (if the link breaks after I do some update to the code, just browse through the code looking for the state_model.peg file, and let me know so I can fix it)
You can also specify a debug option like this:
% xsm cabin.xsm -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: state_model_tree.pdf
and your supplied text: state_model.pdf
.
You should also see a file named xsm-parser.log
in a diagnostics directory within your working directory
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file xsm-parser-0.1.2.tar.gz
.
File metadata
- Download URL: xsm-parser-0.1.2.tar.gz
- Upload date:
- Size: 11.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 57e0d963aa854704cd9373e3bae59a5a2a7fd773a48ab9445089597d7f9f2a53 |
|
MD5 | 300bf9d54a5857599cad57dac0af3b92 |
|
BLAKE2b-256 | 057cf6ce89de75dfcfdb774bf119344d97b90034051a6e6d6dcfcd9815d7a351 |
File details
Details for the file xsm_parser-0.1.2-py3-none-any.whl
.
File metadata
- Download URL: xsm_parser-0.1.2-py3-none-any.whl
- Upload date:
- Size: 11.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b253b4e495777a1e97ace586ba3207d9e4442d651cf69545354e519f2b8492d5 |
|
MD5 | 33372efeb3097647d6bd42a8ef2657d3 |
|
BLAKE2b-256 | 52dd2cbe2e21fa8c298a2cad0fc8f49b85cba4e471ce676dddbfa553ffc4a162 |