Download the PHP package silentbyte/sb-dynlex without Composer
On this page you can find all versions of the php package silentbyte/sb-dynlex. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download silentbyte/sb-dynlex
More information about silentbyte/sb-dynlex
Files in silentbyte/sb-dynlex
Package sb-dynlex
Short Description A dynamically configurable lexer library featuring a fluid API.
License MIT
Homepage https://github.com/SilentByte/sb-dynlex
Informations about the package sb-dynlex
DynLex Dynamically Configurable Lexer Library
This is the main repository of the SilentByte DynLex Lexer Library.
DynLex is an easy-to-use library for PHP that provides the functionality to create and use dynamically configurable lexers accessed via a fluid interface.
Official documentations can be found here: http://docs.silentbyte.com/dynlex
Installation
To install the latest version, either checkout and include the source directly or use:
General Usage
DynLex allows the definition of a set of lexer rules that determine how the input is scanned and what tokens can be created. The following code is a simple example that tokenizes words and numbers:
DynLex also allows the specification of lexer actions that will be executed each time the associated token is matched in the input stream. Extending the previous example, we can implement a program that counts the number of words and numbers within the input stream:
Using this concept, it is possible to easily create lexers for different kinds of applications. A more elaborate example that demonstrates how to use DynLex to create HTML syntax highlighters for programming languages can be found under examples/04-syntax-highlighting.php
.
It is generally advised to check out the examples
folder for further information and examples on how to use DynLex. Also have a look into the source code for more detailed documentation.
Contributing
See CONTRIBUTING.md.
FAQ
Under what license is DynLex released?
MIT license. Check out license.txt
for details. More information regarding the MIT license can be found here: https://opensource.org/licenses/MIT
Why do rules sometimes not get matched correctly?
You have to ensure that rules that may conflict with each other are listed in the correct order from most specific to most general. For example, if you want to tokenize integers ([0-9]+
) and floats ([0-9]+\.[0-9]+
), the rule for floats must be listed before the rule for integers because the integer rule matches the first part of the float rule.