An open API service indexing awesome lists of open source software.

https://github.com/dino65-dev/lox

Lox is a lightweight, dynamically-typed programming language with a simple and minimal syntax.
https://github.com/dino65-dev/lox

ast compiler interpreter lox-language parser python scripting-language

Last synced: over 1 year ago
JSON representation

Lox is a lightweight, dynamically-typed programming language with a simple and minimal syntax.

Awesome Lists containing this project

README

          

---
# Lox ![Repo Stars](https://img.shields.io/github/stars/dino65-dev/lox?style=social) ![Forks](https://img.shields.io/github/forks/dino65-dev/lox?style=social) ![Watchers](https://img.shields.io/github/watchers/dino65-dev/lox?style=social)

Lox is a dynamically-typed, object-oriented programming language with a focus on simplicity and flexibility. I've written this code Using the Book [Crafting Interpreters](https://craftinginterpreters.com/) by [Bob Nystrom](https://github.com/munificent) Designed in Java (Jlox). Designed to be lightweight and easy to use, Lox is perfect for developers who want to experiment with scripting or dive into language design concepts. It runs on Python 3.12 and is currently under active development.

## Key Features:
- **Dynamic Typing**: Variables are not restricted by type, providing flexibility in coding.
- **Minimal Syntax**: Clean, readable code with minimal boilerplate.
- **Object-Oriented**: Supports classes and inheritance, making it ideal for modular programming.
- **Interpreted**: Lox runs without the need for compilation, allowing for rapid testing and debugging.

## Project Status:
Lox is still in development. We are actively improving the language and its interpreter. Feedback, issues, and contributions are welcome!

## Requirements:
- Python 3.6 or higher

## Usage:
#### REPL

```bash
python -m lox
```
Enter `exit` or press Ctrl+D to leave.

#### Running a file:
```bash
python -m lox path/to/file
```

## Contributing:
Contributions are encouraged! If you’d like to contribute:
1. Fork the repository.
2. Create a new branch for your feature or bugfix.
3. Submit a pull request with a clear description of the changes.

## License:
This project is licensed under the MIT License. Please see the `LICENSE` file for details.

---