com php-langspec: Fix print precedence: spec/10-expressions.md spec/19-grammar.md

[email protected] (Nikita Popov) Fri, 15 Mar 2019 08:52:05 +0000
Newsgroups php.standards.cvs
Message-ID <[email protected]>
Commit:    63d72a6df5d2c7b1b7a8aedde1410c780cfd92af=0AAuthor:    Nikita Pop=
ov <[email protected]>         Fri, 15 Mar 2019 09:52:05 +0100=0AParents=
:   b0dadd509b0fa94667f96ef32af4481ff2a23e1e=0ABranches:  master=0A=0ALink:=
       http://git.php.net/?p=3Dphp-langspec.git;a=3Dcommitdiff;h=3D63d72a6d=
f5d2c7b1b7a8aedde1410c780cfd92af=0A=0ALog:=0AFix print precedence=0A=0AChan=
ged paths:=0A  M  spec/10-expressions.md=0A  M  spec/19-grammar.md=0A=0A=0A=
Diff:=0Adiff --git a/spec/10-expressions.md b/spec/10-expressions.md=0Ainde=
x 3ae61b3..988acaf 100644=0A--- a/spec/10-expressions.md=0A+++ b/spec/10-ex=
pressions.md=0A@@ -322,7 +322,6 @@ intrinsic:=0A   eval-intrinsic=0A   exit=
-intrinsic=0A   isset-intrinsic=0A-  print-intrinsic=0A -->=0A =0A <pre>=0A=
@@ -331,7 +330,6 @@ intrinsic:=0A    <i><a href=3D"#grammar-eval-intrinsic"=
>eval-intrinsic</a></i>=0A    <i><a href=3D"#grammar-exit-intrinsic">exit-i=
ntrinsic</a></i>=0A    <i><a href=3D"#grammar-isset-intrinsic">isset-intrin=
sic</a></i>=0A-   <i><a href=3D"#grammar-print-intrinsic">print-intrinsic</=
a></i>=0A </pre>=0A =0A **Semantics**=0A@@ -521,48 +519,6 @@ $v1 =3D TRUE; =
$v2 =3D 12.3; $v3 =3D NULL;=0A isset($v1, $v2, $v3);  // results in FALSE=
=0A ```=0A =0A-#### print=0A-=0A-**Syntax**=0A-=0A-<!-- GRAMMAR=0A-print-in=
trinsic:=0A-  'print' expression=0A--->=0A-=0A-<pre>=0A-<i id=3D"grammar-pr=
int-intrinsic">print-intrinsic:</i>=0A-   print   <i><a href=3D"#grammar-ex=
pression">expression</a></i>=0A-</pre>=0A-=0A-**Constraints**=0A-=0A-*expre=
ssion* value must be [convertable to a string](08-conversions.md#converting=
-to-string-type).=0A-In particular, it should not be an array and if it is =
an object, it must implement=0A-a [`__toString` method](14-classes.md#metho=
d-__tostring).=0A-=0A-**Semantics**=0A-=0A-After converting its *expression=
*'s value to a string, if necessary,=0A-`print` writes the resulting string=
 to [`STDOUT`](06-constants.md#core-predefined-constants).=0A-Unlike [`echo=
`](11-statements.md#the-echo-statement), `print` can be used in any context=
=0A-allowing an expression. It always returns the value 1.=0A-=0A-See also:=
 [double quoted strings](09-lexical-structure.md#double-quoted-string-liter=
als) and=0A-[heredoc documents](09-lexical-structure.md#heredoc-string-lite=
rals), [conversion to string](08-conversions.md#converting-to-string-type).=
=0A-=0A-**Examples**=0A-=0A-```PHP=0A-$v1 =3D TRUE;=0A-$v2 =3D 123;=0A-prin=
t  '>>' . $v1 . '|' . $v2 . "<<\n";   // outputs ">>1|123<<"=0A-print ('>>'=
 . $v1 . '|' . $v2 . "<<\n");  // outputs ">>1|123<<"=0A-$v3 =3D "qqq{$v2}z=
zz";=0A-print "$v3\n";            // outputs "qqq123zzz"=0A-$a > $b ? print=
 "..." : print "...";=0A-```=0A-=0A ### Anonymous Function Creation=0A =0A =
**Syntax**=0A@@ -3219,6 +3175,50 @@ foreach ($g as $yielded) {=0A }=0A ```=
=0A =0A+## Print expression=0A+=0A+**Syntax**=0A+=0A+<!-- GRAMMAR=0A+print-=
expression:=0A+  yield-expression=0A+  'print' print-expression=0A+-->=0A+=
=0A+<pre>=0A+<i id=3D"grammar-print-expression">print-expression:</i>=0A+  =
 <i><a href=3D"#grammar-yield-expression">yield-expression</a></i>=0A+   pr=
int   <i><a href=3D"#grammar-print-expression">print-expression</a></i>=0A+=
</pre>=0A+=0A+**Constraints**=0A+=0A+*print-expression* value must be [conv=
ertable to a string](08-conversions.md#converting-to-string-type).=0A+In pa=
rticular, it should not be an array and if it is an object, it must impleme=
nt=0A+a [`__toString` method](14-classes.md#method-__tostring).=0A+=0A+**Se=
mantics**=0A+=0A+After converting *print-expression*'s value into a string,=
 if necessary,=0A+`print` writes the resulting string to [`STDOUT`](06-cons=
tants.md#core-predefined-constants).=0A+Unlike [`echo`](11-statements.md#th=
e-echo-statement), `print` can be used in any context=0A+allowing an expres=
sion. It always returns the value 1.=0A+=0A+See also: [double quoted string=
s](09-lexical-structure.md#double-quoted-string-literals) and=0A+[heredoc d=
ocuments](09-lexical-structure.md#heredoc-string-literals), [conversion to =
string](08-conversions.md#converting-to-string-type).=0A+=0A+**Examples**=
=0A+=0A+```PHP=0A+$v1 =3D TRUE;=0A+$v2 =3D 123;=0A+print  '>>' . $v1 . '|' =
. $v2 . "<<\n";   // outputs ">>1|123<<"=0A+print ('>>' . $v1 . '|' . $v2 .=
 "<<\n");  // outputs ">>1|123<<"=0A+$v3 =3D "qqq{$v2}zzz";=0A+print "$v3\n=
";            // outputs "qqq123zzz"=0A+$a > $b ? print "..." : print "..."=
;=0A+```=0A+=0A ## Logical AND Operator (form 2)=0A =0A **Syntax**=0Adiff -=
-git a/spec/19-grammar.md b/spec/19-grammar.md=0Aindex 8d51d22..6b66633 100=
644=0A--- a/spec/19-grammar.md=0A+++ b/spec/19-grammar.md=0A@@ -389,7 +389,=
6 @@ The grammar notation is described in [Grammars section](09-lexical-str=
ucture.md#=0A    <i><a href=3D"#grammar-eval-intrinsic">eval-intrinsic</a><=
/i>=0A    <i><a href=3D"#grammar-exit-intrinsic">exit-intrinsic</a></i>=0A =
   <i><a href=3D"#grammar-isset-intrinsic">isset-intrinsic</a></i>=0A-   <i=
><a href=3D"#grammar-print-intrinsic">print-intrinsic</a></i>=0A =0A <i id=
=3D"grammar-empty-intrinsic">empty-intrinsic:</i>=0A    empty   (   <i><a h=
ref=3D"#grammar-expression">expression</a></i>   )=0A@@ -410,9 +409,6 @@ Th=
e grammar notation is described in [Grammars section](09-lexical-structure.=
md#=0A    <i><a href=3D"#grammar-variable">variable</a></i>=0A    <i><a hre=
f=3D"#grammar-variable-list">variable-list</a></i>   ,   <i><a href=3D"#gra=
mmar-variable">variable</a></i>=0A =0A-<i id=3D"grammar-print-intrinsic">pr=
int-intrinsic:</i>=0A-   print   <i><a href=3D"#grammar-expression">express=
ion</a></i>=0A-=0A <i id=3D"grammar-anonymous-function-creation-expression"=
>anonymous-function-creation-expression:</i>=0A    static<sub>opt</sub>   f=
unction   &amp;<sub>opt</sub>   (   <i><a href=3D"#grammar-parameter-declar=
ation-list">parameter-declaration-list</a></i><sub>opt</sub>   )   <i><a hr=
ef=3D"#grammar-anonymous-function-use-clause">anonymous-function-use-clause=
</a></i><sub>opt</sub>   <i><a href=3D"#grammar-return-type">return-type</a=
></i><sub>opt</sub>   <i><a href=3D"#grammar-compound-statement">compound-s=
tatement</a></i>=0A =0A@@ -681,6 +677,10 @@ The grammar notation is describ=
ed in [Grammars section](09-lexical-structure.md#=0A    yield   <i><a href=
=3D"#grammar-yield-expression">yield-expression</a></i>=0A    yield   <i><a=
 href=3D"#grammar-yield-from-expression">yield-from-expression</a></i>   =
=3D&gt;   <i><a href=3D"#grammar-yield-expression">yield-expression</a></i>=
=0A =0A+<i id=3D"grammar-print-expression">print-expression:</i>=0A+   <i><=
a href=3D"#grammar-yield-expression">yield-expression</a></i>=0A+   print  =
 <i><a href=3D"#grammar-print-expression">print-expression</a></i>=0A+=0A <=
i id=3D"grammar-logical-AND-expression-2">logical-AND-expression-2:</i>=0A =
   <i><a href=3D"#grammar-yield-expression">yield-expression</a></i>=0A    =
<i><a href=3D"#grammar-logical-AND-expression-2">logical-AND-expression-2</=
a></i>   and   <i><a href=3D"#grammar-yield-expression">yield-expression</a=
></i>=0A