com php-langspec: Fix print precedence: spec/10-expressions.md spec/19-grammar.md
| From: | Nikita Popov | Date: | Fri, 15 Mar 2019 08:52:05 +0000 |
| Subject: | com php-langspec: Fix print precedence: spec/10-expressions.md spec/19-grammar.md | ||
| Groups: | php.standards.cvs | ||
| Request: | Send a blank email to standards--cvs+get-427@lists.php.net to get a copy of this message | ||
Commit: 63d72a6df5d2c7b1b7a8aedde1410c780cfd92af
Author: Nikita Popov <nikita.ppv@gmail.com> Fri, 15 Mar 2019 09:52:05 +0100
Parents: b0dadd509b0fa94667f96ef32af4481ff2a23e1e
Branches: master
Link: http://git.php.net/?p=php-langspec.git;a=commitdiff;h=63d72a6df5d2c7b1b7a8aedde1410c780cfd92af
Log:
Fix print precedence
Changed paths:
M spec/10-expressions.md
M spec/19-grammar.md
Diff:
diff --git a/spec/10-expressions.md b/spec/10-expressions.md
index 3ae61b3..988acaf 100644
--- a/spec/10-expressions.md
+++ b/spec/10-expressions.md
@@ -322,7 +322,6 @@ intrinsic:
eval-intrinsic
exit-intrinsic
isset-intrinsic
- print-intrinsic
-->
<pre>
@@ -331,7 +330,6 @@ intrinsic:
<i><a href="#grammar-eval-intrinsic">eval-intrinsic</a></i>
<i><a href="#grammar-exit-intrinsic">exit-intrinsic</a></i>
<i><a href="#grammar-isset-intrinsic">isset-intrinsic</a></i>
- <i><a href="#grammar-print-intrinsic">print-intrinsic</a></i>
</pre>
**Semantics**
@@ -521,48 +519,6 @@ $v1 = TRUE; $v2 = 12.3; $v3 = NULL;
isset($v1, $v2, $v3); // results in FALSE
```
-#### print
-
-**Syntax**
-
-<!-- GRAMMAR
-print-intrinsic:
- 'print' expression
--->
-
-<pre>
-<i id="grammar-print-intrinsic">print-intrinsic:</i>
- print <i><a href="#grammar-expression">expression</a></i>
-</pre>
-
-**Constraints**
-
-*expression* value must be [convertable to a string](08-conversions.md#converting-to-string-type).
-In particular, it should not be an array and if it is an object, it must implement
-a [
__toString method](14-classes.md#method-__tostring).
-
-**Semantics**
-
-After converting its *expression*'s value to a string, if necessary,
-print writes the resulting string to
[STDOUT](06-constants.md#core-predefined-constants).
-Unlike [echo](11-statements.md#the-echo-statement), print can be used in
any context
-allowing an expression. It always returns the value 1.
-
-See also: [double quoted strings](09-lexical-structure.md#double-quoted-string-literals) and
-[heredoc documents](09-lexical-structure.md#heredoc-string-literals), [conversion to
string](08-conversions.md#converting-to-string-type).
-
-**Examples**
-
-```PHP
-$v1 = TRUE;
-$v2 = 123;
-print '>>' . $v1 . '|' . $v2 . "<<\n"; // outputs
">>1|123<<"
-print ('>>' . $v1 . '|' . $v2 . "<<\n"); // outputs
">>1|123<<"
-$v3 = "qqq{$v2}zzz";
-print "$v3\n"; // outputs "qqq123zzz"
-$a > $b ? print "..." : print "...";
-```
-
### Anonymous Function Creation
**Syntax**
@@ -3219,6 +3175,50 @@ foreach ($g as $yielded) {
}
```
+## Print expression
+
+**Syntax**
+
+<!-- GRAMMAR
+print-expression:
+ yield-expression
+ 'print' print-expression
+-->
+
+<pre>
+<i id="grammar-print-expression">print-expression:</i>
+ <i><a
href="#grammar-yield-expression">yield-expression</a></i>
+ print <i><a
href="#grammar-print-expression">print-expression</a></i>
+</pre>
+
+**Constraints**
+
+*print-expression* value must be [convertable to a
string](08-conversions.md#converting-to-string-type).
+In particular, it should not be an array and if it is an object, it must implement
+a [__toString method](14-classes.md#method-__tostring).
+
+**Semantics**
+
+After converting *print-expression*'s value into a string, if necessary,
+print writes the resulting string to
[STDOUT](06-constants.md#core-predefined-constants).
+Unlike [echo](11-statements.md#the-echo-statement), print can be used in
any context
+allowing an expression. It always returns the value 1.
+
+See also: [double quoted strings](09-lexical-structure.md#double-quoted-string-literals) and
+[heredoc documents](09-lexical-structure.md#heredoc-string-literals), [conversion to
string](08-conversions.md#converting-to-string-type).
+
+**Examples**
+
+```PHP
+$v1 = TRUE;
+$v2 = 123;
+print '>>' . $v1 . '|' .. $v2 . "<<\n"; // outputs
">>1|123<<"
+print ('>>' . $v1 . '|' . $v2 . "<<\n"); // outputs
">>1|123<<"
+$v3 = "qqq{$v2}zzz";
+print "$v3\n"; // outputs "qqq123zzz"
+$a > $b ? print "..." : print "...";
+```
+
## Logical AND Operator (form 2)
**Syntax**
diff --git a/spec/19-grammar.md b/spec/19-grammar.md
index 8d51d22..6b66633 100644
--- a/spec/19-grammar.md
+++ b/spec/19-grammar.md
@@ -389,7 +389,6 @@ The grammar notation is described in [Grammars section](09-lexical-structure.md#
<i><a href="#grammar-eval-intrinsic">eval-intrinsic</a></i>
<i><a href="#grammar-exit-intrinsic">exit-intrinsic</a></i>
<i><a href="#grammar-isset-intrinsic">isset-intrinsic</a></i>
- <i><a href="#grammar-print-intrinsic">print-intrinsic</a></i>
<i id="grammar-empty-intrinsic">empty-intrinsic:</i>
empty ( <i><a
href="#grammar-expression">expression</a></i> )
@@ -410,9 +409,6 @@ The grammar notation is described in [Grammars section](09-lexical-structure.md#
<i><a href="#grammar-variable">variable</a></i>
<i><a href="#grammar-variable-list">variable-list</a></i> ,
<i><a href="#grammar-variable">variable</a></i>
-<i id="grammar-print-intrinsic">print-intrinsic:</i>
- print <i><a href="#grammar-expression">expression</a></i>
-
<i
id="grammar-anonymous-function-creation-expression">anonymous-function-creation-expression:</i>
static<sub>opt</sub> function &<sub>opt</sub> (
<i><a
href="#grammar-parameter-declaration-list">parameter-declaration-list</a></i><sub>opt</sub>
) <i><a
href="#grammar-anonymous-function-use-clause">anonymous-function-use-clause</a></i><sub>opt</sub>
<i><a
href="#grammar-return-type">return-type</a></i><sub>opt</sub>
<i><a
href="#grammar-compound-statement">compound-statement</a></i>
@@ -681,6 +677,10 @@ The grammar notation is described in [Grammars
section](09-lexical-structure.md#
yield <i><a
href="#grammar-yield-expression">yield-expression</a></i>
yield <i><a
href="#grammar-yield-from-expression">yield-from-expression</a></i>
=> <i><a
href="#grammar-yield-expression">yield-expression</a></i>
+<i id="grammar-print-expression">print-expression:</i>
+ <i><a
href="#grammar-yield-expression">yield-expression</a></i>
+ print <i><a
href="#grammar-print-expression">print-expression</a></i>
+
<i id="grammar-logical-AND-expression-2">logical-AND-expression-2:</i>
<i><a
href="#grammar-yield-expression">yield-expression</a></i>
<i><a
href="#grammar-logical-AND-expression-2">logical-AND-expression-2</a></i>
and <i><a
href="#grammar-yield-expression">yield-expression</a></i>