function() {
    const result = this.node("switch");
    this.expect(this.tok.T_SWITCH) && this.next();
    this.expect("(") && this.next();
    const test = this.read_expr();
    this.expect(")") && this.next();
    const shortForm = this.token === ":";
    const body = this.read_switch_case_list();
    return result(test, body, shortForm);
  }
function() {
    const result = this.node("switch");
    this.expect(this.tok.T_SWITCH) && this.next();
    this.expect("(") && this.next();
    const test = this.read_expr();
    this.expect(")") && this.next();
    const shortForm = this.token === ":";
    const body = this.read_switch_case_list();
    return result(test, body, shortForm);
  }
function ( ) { const result = this . node ( "switch" ) ; this . expect ( this . tok . T_SWITCH ) && this . next ( ) ; this . expect ( "(" ) && this . next ( ) ; const test = this . read_expr ( ) ; this . expect ( ")" ) && this . next ( ) ; const shortForm = this . token === ":" ; const body = this . read_switch_case_list ( ) ; return result ( test , body , shortForm ) ; }
Reads a switch statement
```ebnf
switch ::= T_SWITCH '(' expr ')' switch_case_list
```
@return {Switch}
@see http://php.net/manual/en/control-structures.switch.php
Reads a switch statement ebnf switch :: = T_SWITCH ( expr ) switch_case_list