Skip to content

Commit 256534b

Browse files
committed
Cleanup echo/isset/unset grammar
isset and unset accept only variables. For echo, merge the single and multiple expression cases.
1 parent 0fd1786 commit 256534b

File tree

2 files changed

+20
-30
lines changed

2 files changed

+20
-30
lines changed

spec/10-expressions.md

Lines changed: 12 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -333,12 +333,11 @@ other values or expressions could be used.
333333

334334
<pre>
335335
<i>echo-intrinsic:</i>
336-
echo <i>expression</i>
337-
echo <i>expression-list-two-or-more</i>
336+
echo <i>expression-list</i>
338337

339338
<i>expression-list-two-or-more:</i>
340-
<i>expression</i> , <i>expression</i>
341-
<i>expression-list-two-or-more</i> , <i>expression</i>
339+
<i>expression</i>
340+
<i>expression-list</i> , <i>expression</i>
342341
</pre>
343342

344343
**Defined elsewhere**
@@ -508,25 +507,21 @@ exit;
508507

509508
<pre>
510509
<i>isset-intrinsic:</i>
511-
isset ( <i>expression-list-one-or-more</i> )
510+
isset ( <i>variable-list</i> )
512511

513-
<i>expression-list-one-or-more</i>:
514-
<i>expression</i>
515-
<i>expression-list-one-or-more</i> , <i>expression</i>
512+
<i>variable-list</i>:
513+
<i>variable</i>
514+
<i>variable-list</i> , <i>variable</i>
516515
</pre>
517516

518517
**Defined elsewhere**
519518

520-
* [*expression*](#general-6)
521-
522-
**Constraints**
523-
524-
Each *expression* must designate a variable.
519+
* [*variable*](#variables)
525520

526521
**Semantics**
527522

528523
This intrinsic returns `TRUE` if all the variables designated by
529-
*expression*s are set and their values are not `NULL`. Otherwise, it
524+
*variables*s are set and their values are not `NULL`. Otherwise, it
530525
returns `FALSE`.
531526

532527
If this intrinsic is used with an expression that designate a [dynamic
@@ -708,21 +703,17 @@ $a > $b ? print "..." : print "...";
708703

709704
<pre>
710705
<i>unset-intrinsic:</i>
711-
unset ( <i>expression-list-one-or-more</i> )
706+
unset ( <i>variable-list</i> )
712707
</pre>
713708

714709
**Defined elsewhere**
715710

716-
* [*expression-list-one-or-more*](#isset)
717-
718-
**Constraints**
719-
720-
Each *expression* must designate a variable.
711+
* [*variable-list*](#isset)
721712

722713
**Semantics**
723714

724715
This intrinsic [unsets](07-variables.md#general) the variables designated by each
725-
*expression* in *expression-list-one-or-more*. No value is returned. An
716+
*variable* in *variable-list*. No value is returned. An
726717
attempt to unset a non-existent variable (such as a non-existent element
727718
in an array) is ignored.
728719

spec/19-grammar.md

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -393,12 +393,11 @@ The grammar notation is described in [Grammars section](09-lexical-structure.md#
393393
<i>print-intrinsic</i>
394394

395395
<i>echo-intrinsic:</i>
396-
echo <i>expression</i>
397-
echo <i>expression-list-two-or-more</i>
396+
echo <i>expression-list</i>
398397

399398
<i>expression-list-two-or-more:</i>
400-
<i>expression</i> , <i>expression</i>
401-
<i>expression-list-two-or-more</i> , <i>expression</i>
399+
<i>expression</i>
400+
<i>expression-list</i> , <i>expression</i>
402401

403402
<i>empty-intrinsic:</i>
404403
empty ( <i>expression</i> )
@@ -413,11 +412,11 @@ The grammar notation is described in [Grammars section](09-lexical-structure.md#
413412
die ( <i>expression<sub>opt</sub></i> )
414413

415414
<i>isset-intrinsic:</i>
416-
isset ( <i>expression-list-one-or-more</i> )
415+
isset ( <i>variable-list</i> )
417416

418-
<i>expression-list-one-or-more</i>:
419-
<i>expression</i>
420-
<i>expression-list-one-or-more</i> , <i>expression</i>
417+
<i>variable-list</i>:
418+
<i>variable</i>
419+
<i>variable-list</i> , <i>variable</i>
421420

422421
<i>list-intrinsic:</i>
423422
list ( <i>list-expression-list<sub>opt</sub></i> )
@@ -443,7 +442,7 @@ The grammar notation is described in [Grammars section](09-lexical-structure.md#
443442
print <i>expression</i>
444443

445444
<i>unset-intrinsic:</i>
446-
unset ( <i>expression-list-one-or-more</i> )
445+
unset ( <i>variable-list</i> )
447446

448447
<i>anonymous-function-creation-expression:</i>
449448
static<sub>opt</sub> function &<sub>opt</sub> ( <i>parameter-declaration-list<sub>opt<sub></i> ) <i>return-type<sub>opt</sub></i> <i>anonymous-function-use-clause<sub>opt</sub></i>

0 commit comments

Comments
 (0)