annotate vendor/theseer/tokenizer/README.md @ 19:fa3358dc1485 tip

Add ndrum files
author Chris Cannam
date Wed, 28 Aug 2019 13:14:47 +0100
parents 1fec387a4317
children
rev   line source
Chris@14 1 # Tokenizer
Chris@14 2
Chris@14 3 A small library for converting tokenized PHP source code into XML.
Chris@14 4
Chris@14 5 [![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/theseer/tokenizer/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/theseer/tokenizer/?branch=master)
Chris@14 6 [![Code Coverage](https://scrutinizer-ci.com/g/theseer/tokenizer/badges/coverage.png?b=master)](https://scrutinizer-ci.com/g/theseer/tokenizer/?branch=master)
Chris@14 7 [![Build Status](https://scrutinizer-ci.com/g/theseer/tokenizer/badges/build.png?b=master)](https://scrutinizer-ci.com/g/theseer/tokenizer/build-status/master)
Chris@14 8
Chris@14 9 ## Installation
Chris@14 10
Chris@14 11 You can add this library as a local, per-project dependency to your project using [Composer](https://getcomposer.org/):
Chris@14 12
Chris@14 13 composer require theseer/tokenizer
Chris@14 14
Chris@14 15 If you only need this library during development, for instance to run your project's test suite, then you should add it as a development-time dependency:
Chris@14 16
Chris@14 17 composer require --dev theseer/tokenizer
Chris@14 18
Chris@14 19 ## Usage examples
Chris@14 20
Chris@14 21 ```php
Chris@14 22 $tokenizer = new TheSeer\Tokenizer\Tokenizer();
Chris@14 23 $tokens = $tokenizer->parse(file_get_contents(__DIR__ . '/src/XMLSerializer.php'));
Chris@14 24
Chris@14 25 $serializer = new TheSeer\Tokenizer\XMLSerializer();
Chris@14 26 $xml = $serializer->toXML($tokens);
Chris@14 27
Chris@14 28 echo $xml;
Chris@14 29 ```
Chris@14 30
Chris@14 31 The generated XML structure looks something like this:
Chris@14 32
Chris@14 33 ```xml
Chris@14 34 <?xml version="1.0"?>
Chris@14 35 <source xmlns="https://github.com/theseer/tokenizer">
Chris@14 36 <line no="1">
Chris@14 37 <token name="T_OPEN_TAG">&lt;?php </token>
Chris@14 38 <token name="T_DECLARE">declare</token>
Chris@14 39 <token name="T_OPEN_BRACKET">(</token>
Chris@14 40 <token name="T_STRING">strict_types</token>
Chris@14 41 <token name="T_WHITESPACE"> </token>
Chris@14 42 <token name="T_EQUAL">=</token>
Chris@14 43 <token name="T_WHITESPACE"> </token>
Chris@14 44 <token name="T_LNUMBER">1</token>
Chris@14 45 <token name="T_CLOSE_BRACKET">)</token>
Chris@14 46 <token name="T_SEMICOLON">;</token>
Chris@14 47 </line>
Chris@14 48 </source>
Chris@14 49 ```