Skip to main content
Marso MIT licensed Python package

Marso is a Move language parser that supports error recovery and round-trip parsing . Marso is also able to list multiple syntax errors in your move source file.

Marso has been battle-tested by jedi.

Marso consists of a small API to parse Move language and analyse the syntax tree.

A simple example:

>>> import marso
>>> module = marso.parse('hello + 1', version="3.6")
>>> expr = module.children[0]
>>> expr
PythonNode(arith_expr, [<Name: hello@1,0>, <Operator: +>, <Number: 1>])
>>> print(expr.get_code())
hello + 1
>>> name = expr.children[0]
>>> name
<Name: hello@1,0>
>>> name.end_pos
(1, 5)
>>> expr.end_pos
(1, 9)

To list multiple issues:

>>> grammar = marso.load_grammar()
>>> module = grammar.parse('foo +\nbar\ncontinue')
>>> error1, error2 = grammar.iter_errors(module)
>>> error1.message
'SyntaxError: invalid syntax'
>>> error2.message
"SyntaxError: 'continue' not properly in loop"

Resources

Installation

pip install marso

Acknowledgements

  • David Halter (@davidhalter) for the original Parso project.

  • Guido van Rossum (@gvanrossum) for creating the parser generator pgen2 (originally used in lib2to3).

Changelog

0.0.1 (2020-05-29)

  • Test publish as a pip package, not work yet.

Metadata

Release files for marso 0.0.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for marso 0.0.3
File Size Uploaded
marso-0.0.3.tar.gz 460.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for marso 0.0.3
File Interpreter ABI Platform
marso-0.0.3-py2.py3-none-any.whl Python 2, Python 3 none any Details

Total release size: 656.9 kB

Release files / marso-0.0.3.tar.gz

Download URL marso-0.0.3.tar.gz
Size 460.0 kB
Tags Source
SHA-256 checksum
How to use checksums
83b27e0724832a6dfa38896fc632a4617f03cc58c1f2f6390a8f8ed3cfca00c2
BLAKE2b-256 checksum
How to use checksums
c588af7808b82fc8636efdbe9837c06607ba6c8c81d045e7c278f4c254205b40
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/39.0.1 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.7.5

Release files / marso-0.0.3-py2.py3-none-any.whl

Download URL marso-0.0.3-py2.py3-none-any.whl
Size 196.9 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
8e73e56f7d0702612c0b1d5c9dbb711184c2184c6a2e9f2528b069a1fd8e8314
BLAKE2b-256 checksum
How to use checksums
492ecac6b47fd2203ce3b13859ba9444a574ea0ec10dd0270f1bf36403982b68
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/39.0.1 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.7.5

Release history Release notifications | RSS feed

This release

0.0.3 This release

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page