1: <?php
2: namespace Pharborist;
3:
4: use Pharborist\Types\ArrayElementNode;
5:
6: /**
7: * Interface for nodes that represent expressions.
8: *
9: * An expression is any snippet of code which represents or produces a value.
10: * Expressions include, but aren't limited to:
11: *
12: * - Variables: `$mork`
13: * - Assignments: `$foo = $bar`
14: * - Arithmetic: `$a = $b + $c`
15: * - Function or method calls: `foo(); $foo->baz();`
16: * - Logical expressions: `($a && $b)`
17: * - Function call arguments: `foo(--$baz)`
18: * - Comparisons: `$a > $b`
19: *
20: * Expressions are "smaller" than statements, in the sense that a statement
21: * is usually composed of least one expression. Expressions can contain other
22: * expressions -- a nested function call, for instance. Any node that implements
23: * this interface is considered by PHP to be an expression.
24: */
25: interface ExpressionNode extends NodeInterface, ArrayElementNode {
26:
27: }
28: