Hi Theodore,

> I meant to say "statement", e.g.
> I suspect it is a statement and not an optional piece of data on a
> statement, like say `public`.

I assume this would boil down to a disagreement on what we mean by statement, 
and could be clarified by using whatever that definition was instead of 
"statement" or "declaration".
For example, I might broadly mean that there are expressions, statements, and 
statement lists in PHP, and statements can be a certain list of node types 
composed of statements/expressions/nodes (plus standalone expressions), 
expressions can contain expressions or statement lists, but not statements. 
(and statement lists can contain 0 or more statements)
(e.g. closures are expressions)

- And then there are nodes that are parts of statements/expressions but neither 
statements nor expressions, such as parameter declarations
- The php language specification is more complicated than that and my 
definition would inevitably be over-simplifying, the definition I'd meant was 
https://github.com/php/php-langspec/blob/master/spec/11-statements.md

By statement, I'd be referring to what parsers generally categorize as 
statements.
For example, the list of nodes in 
https://github.com/nikic/PHP-Parser/tree/master/lib/PhpParser/Node/Stmt
- This has changed in the past, e.g. the "throw expression" RFC.
- Still, I'd believe the attributes would be metadata associated with a class 
statement, a method/function statement, a parameter node, or a closure 
declaration expression

Regards,
- Tyson
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: https://www.php.net/unsub.php

Reply via email to