Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add lexer and parser generator script #28

Open
wants to merge 13 commits into
base: PHP-8.3
Choose a base branch
from
Open

Conversation

petk
Copy link
Owner

@petk petk commented Dec 21, 2024

This improves usability to simply call:

cmake -P cmake/scripts/GenerateGrammar.cmake

instead of doing the entire CMake configuration phase and then executing some target to generate files.

@petk petk force-pushed the patch-lexers-parsers branch 3 times, most recently from 62ff762 to 2be4310 Compare December 29, 2024 10:04
petk added 11 commits January 1, 2025 22:11
This improves usability to simply call:

    cmake -P cmake/scripts/GenerateLexersParsers.cmake

instead of doing the entire CMake configuration phase and then executing
some target to generate files.
- This adds new BISON and RE2C utility modules on top of the find
  modules to have common configuration at one place.
- Zend patching improved a bit
- More common naming for lexers and parsers used in filenames: "grammar"
- ...
The --conditions option is available since re2c 1.1.
Find modules are not meant to provide functions. This is an edge bad
practice learned from some existing modules out there for convenience.

Find modules should ideally only deal with finding packages and
providing the imported targets.

Ideally, how the package is used should be done in some wrapper module,
which provides these functions. Here, the php_bison() and php_re2c().

Also, downloading is moved to these modules for now.
@petk petk force-pushed the patch-lexers-parsers branch from dd9fb8e to ba15f0b Compare January 5, 2025 21:34
petk added 2 commits January 6, 2025 09:53
This simplifies downloading, configuring etc. The Bison downloading and
configuring for now works only for GNU Bison. Should be improved
further.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant