Languages and grammars

In order for a parser to be able to understand a program, it needs a formal description of that language-a grammar. In this chapter, we will work with a so-called parsing expression grammar (PEG). A PEG is (relatively) easy to define and there are libraries that can generate a parser for a given grammar automatically.

A grammar consists of terminal symbols and non-terminal symbols. A non-terminal symbol is a symbol that maybe composed of several other symbols, following certain rules (production rules). For example, a grammar could contain a number as non-terminal symbol. Each number could be defined as an arbitrary-length sequence of digits. As a digit could then be any of the characters from 0 to 9 (with each of the actual ...

Get PHP 7 Programming Blueprints now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.