Caustic's parsing framework
Project description
Caustic's Parser -- uses grammar specification to compile Caustic source code into a CST (Caustic AST)
Uses ParGlare for parsing, meant to work with CausticGrammar to create a CST (Caustic AST)
CLI usage
See cap --help
Module usage
import sys
import parglare
from pprint import pprint
from pathlib import Path
from caustic import parser
grammar = parglare.Grammar.from_file(parser.builtin_grammar('canonical/canonical.pg'))
# ^ builtin_grammar fetches the builtin grammar path from caustic.grammar,
# optionally adding a subdirectory and checking if it exists
parser_ = parglare.GLRParser(grammar, lexical_disambiguation=True,
actions=parser.actions.action.all)
# ^ the actions module supplies some generally useful actions,
# as well as actions specifically for creating CST nodes
try:
forest = parser_.parse(input())
except parglare.ParseError as e:
# custom error formatting
print(parser.errors.format_exc(e), file=sys.stderr)
cst = parser_.call_actions(forest.get_first_tree())
pprint(cst)
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
caustic.parser-3.0.0.tar.gz
(11.6 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file caustic.parser-3.0.0.tar.gz.
File metadata
- Download URL: caustic.parser-3.0.0.tar.gz
- Upload date:
- Size: 11.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
72babc122df78c439e732be847e47c9fa99564f90176a91fd38c4a151c3f0e7d
|
|
| MD5 |
2f4a7144668161d16c7c9f103474e3a7
|
|
| BLAKE2b-256 |
9e354bf5b7929fc45ca16ce45705d938c035ee45d22108d7c9100865bb05e09e
|
File details
Details for the file caustic.parser-3.0.0-py3-none-any.whl.
File metadata
- Download URL: caustic.parser-3.0.0-py3-none-any.whl
- Upload date:
- Size: 12.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8c4faac75dc0d1b0bef23e360bcd148720e1d86b11448d94f1f3aa71703ade48
|
|
| MD5 |
227bfed46b46cebf90b2be4811a607a9
|
|
| BLAKE2b-256 |
0cfca20bf3dd03b9330128b997d11ec683f2946d2fea1fcf79e11a337f938dc6
|