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 &<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> <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