Evaluating variables

So far, our parser can evaluate static expressions, starting with simple ones such as 3 (which evaluates, what a surprise, to 3) up to arbitrarily complicated ones such as (5 + 3.14) * (14 + (29 - 2 * 3.918)) (which, by the way, evaluates to 286.23496). However, all of these expressions are static; they will always evaluate to the same result.

In order to make this more dynamic, we will now extend our grammar to allow variables. An example of an expression with variables is 3 + a, which could then be evaluated multiple times with different values for a.

This time, let's start by modifying the object model for the syntax tree. First, we'll need a new node type, Packt\Chp8\DSL\AST\Variable, allowing for example the 3 + a expression ...

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.