PHPackages                             verfriemelt/pp - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. verfriemelt/pp

ActiveLibrary

verfriemelt/pp
==============

for educational purposes only

1.0.0(1y ago)0488MITPHPPHP ^8.2

Since Nov 20Pushed 1y ago1 watchersCompare

[ Source](https://github.com/verfriemelt-dot-org/pp)[ Packagist](https://packagist.org/packages/verfriemelt/pp)[ RSS](/packages/verfriemelt-pp/feed)WikiDiscussions main Synced today

READMEChangelogDependencies (6)Versions (2)Used By (0)

pp - a php parser combinator
============================

[](#pp---a-php-parser-combinator)

this is a little research project inspired by this excellent youtube series by [low level javascript](https://www.youtube.com/watch?v=6oQLRhw5Ah0&list=PLP29wDx6QmW5yfO1LAgO8kU3aQEj8SIrU&index=1).

elf parser

```
$ php src/run.php false.i386
Array
(
    [header] => 7fELF
    [plattform] => 32bit
    [endianess] => little endian
    [version] => 1
    [os ( mostly wrong )] => System V
    [ABI Version] => 0
    [unsed] =>
    [object type] => ET_DYN
    [architecture] => x86
)

```

ipv4 packet parser

```
$ php src/ip4.php
Array
(
    [Version] => 4
    [IHL] => 5
    [DSCP] => 0
    [ECN] => 0
    [Total Length] => 68
    [Identification] => 44299
    [Flags] => 0
    [Fragment Offset] => 0
    [TTL] => 64
    [Protocol] => 17
    [Header Checksum] => 29298
    [Source Ip] => 172.20.2.253
    [Destination Ip] => 172.20.0.6
)

```

polish notation evaluation

```
$ php src/polish.php "(+ (+ (* 1 1000) (* 33 10)) 7)"                                                                                                                                                                                                                                    47ms » ✓
array(2) {
  ["type"]=>
  string(9) "operation"
  ["value"]=>
  array(3) {
    ["op"]=>
    string(1) "+"
    ["a"]=>
    array(2) {
      ["type"]=>
      string(9) "operation"
      ["value"]=>
      array(3) {
        ["op"]=>
        string(1) "+"
        ["a"]=>
        array(2) {
          ["type"]=>
          string(9) "operation"
          ["value"]=>
          array(3) {
            ["op"]=>
            string(1) "*"
            ["a"]=>
            array(2) {
              ["type"]=>
              string(6) "number"
              ["value"]=>
              string(1) "1"
            }
            ["b"]=>
            array(2) {
              ["type"]=>
              string(6) "number"
              ["value"]=>
              string(4) "1000"
            }
          }
        }
        ["b"]=>
        array(2) {
          ["type"]=>
          string(9) "operation"
          ["value"]=>
          array(3) {
            ["op"]=>
            string(1) "*"
            ["a"]=>
            array(2) {
              ["type"]=>
              string(6) "number"
              ["value"]=>
              string(2) "33"
            }
            ["b"]=>
            array(2) {
              ["type"]=>
              string(6) "number"
              ["value"]=>
              string(2) "10"
            }
          }
        }
      }
    }
    ["b"]=>
    array(2) {
      ["type"]=>
      string(6) "number"
      ["value"]=>
      string(1) "7"
    }
  }
}
float(1337)

```

###  Health Score

31

—

LowBetter than 71% of packages

Maintenance41

Moderate activity, may be stable

Popularity15

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity50

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

486d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/d830c219d94e734fd7c7e174bef03c304ec80fcd7e3f48ece63c266e1d14ab52?d=identicon)[verfriemelt-dot-org](/maintainers/verfriemelt-dot-org)

---

Top Contributors

[![verfriemelt-dot-org](https://avatars.githubusercontent.com/u/1136869?v=4)](https://github.com/verfriemelt-dot-org "verfriemelt-dot-org (35 commits)")

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Code StylePHP CS Fixer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/verfriemelt-pp/health.svg)

```
[![Health](https://phpackages.com/badges/verfriemelt-pp/health.svg)](https://phpackages.com/packages/verfriemelt-pp)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
