Go to file
2022-07-26 10:47:26 +01:00
.github/workflows ci: override toolchain settings 2022-07-16 20:47:22 +01:00
meta parser: support namespace statements with blocks or one-liners 2022-07-22 16:44:26 +01:00
phpast parser: support basic new expressions 2022-07-25 19:15:09 +01:00
trunk_bytecode chore: disable doc tests 2022-07-19 14:43:25 +01:00
trunk_compiler chore: disable doc tests 2022-07-19 14:43:25 +01:00
trunk_lexer lexer: produce arrow tokens 2022-07-26 10:47:26 +01:00
trunk_parser parser: support constant string expressions and concats 2022-07-25 20:27:17 +01:00
trunk_runtime runtime: init 2022-07-20 20:13:34 +01:00
.gitignore init 2022-07-16 12:40:16 +01:00
Cargo.toml runtime: init 2022-07-20 20:13:34 +01:00
README.md docs: README 2022-07-20 20:36:39 +01:00

Trunk

A set of libraries for working with PHP in Rust.

Overview

I originally started with this repository as an experiment. I wanted to see how feasible a handwritten PHP parser would be.

The goal was to have a set of tools that I could use to write my own utilities. The folders and crates in this repository serve as a guideline and target for the project.

Goals

  • A full-featured lexer and parser for PHP 8.1+
  • An experimental runtime for PHP (excl. extensions)
  • A static-analyser for PHP code.

Bold text indicates the current goal.

Contributing

All contributions are welcome. Please open a pull request with a descriptive title and description.

Please ensure all tests are passing on your pull request and that you add tests to cover your new feature or bug fix.

Credits