Metadata-Version: 2.4
Name: weavly
Version: 0.6.0
Summary: Compiler for the Weavly dialogue scripting language
Author: Weavly contributors
License-Expression: MIT
Project-URL: Repository, https://github.com/weavly-lang/weavly-compiler
Project-URL: Documentation, https://weavly-lang.github.io/weavly-docs/
Project-URL: Issues, https://github.com/weavly-lang/weavly-compiler/issues
Keywords: weavly,dialogue,compiler,godot,interactive-fiction
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Games/Entertainment
Classifier: Topic :: Software Development :: Compilers
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: lark>=1.3.1
Requires-Dist: typer>=0.21.0
Dynamic: license-file

# Weavly Compiler

Compiles Weavly dialogue scripts (`.wvl`) to JSON for the [Weavly Godot addon](https://github.com/weavly-lang/weavly-godot-addon).

Weavly is in alpha. The language and the JSON output change between releases without backward compatibility, so use the addon release that matches your compiler version.

## Install

Install [uv](https://docs.astral.sh/uv/getting-started/installation/), then:

```bash
uv tool install weavly
```

Upgrade with `uv tool upgrade weavly`. With Python 3.11+ installed, `pipx install weavly` works too.

## Usage

```bash
weavly init my-project   # creates my-project/src/nodes.wvl
cd my-project
weavly build             # compiles src/**/*.wvl into build/
weavly build --pretty    # same, with indented JSON
weavly --version
```

The build writes one `build/<path>.wvl.json` per source file and a merged `build/env.json` with every declaration of the project. Errors are printed as `file:line:column: error: ...` and fail the build with exit code 1, leaving the previous `build/` untouched. Warnings use the same format and don't fail the build.

## Development

```bash
git clone https://github.com/weavly-lang/weavly-compiler.git
cd weavly-compiler
uv sync --group dev
```

See [CONTRIBUTING.md](CONTRIBUTING.md).

## License

[MIT](LICENSE)
