# Single case

class A {switch(i){case 1:break;}}

==>

[GLOBAL]:
  A CLASS
  [CLASS] A:
    [BLOCK] SWITCH:
      [BLOCK] COMPOUND:

errors:

SEMANTIC ERROR: Identifier: i is not declared


# Single case with braces

class A {switch(i){case 1:{break;}}}

==>

[GLOBAL]:
  A CLASS
  [CLASS] A:
    [BLOCK] SWITCH:
      [BLOCK] COMPOUND:

errors:

SEMANTIC ERROR: Identifier: i is not declared


# Multiple cases and default

class A {switch(i){case 1:break;case 2:{i++;break;}default:i--;}}

==>

[GLOBAL]:
  A CLASS
  [CLASS] A:
    [BLOCK] SWITCH:
      [BLOCK] COMPOUND:
      [BLOCK] COMPOUND#1:
      [BLOCK] COMPOUND#2:

errors:

SEMANTIC ERROR: Identifier: i is not declared
SEMANTIC ERROR: Identifier: i is not declared
SEMANTIC ERROR: Identifier: i is not declared


# Multiple cases with no break and default

class A {switch(i){case 1:i++;case 2:i++;default:i--;}}

==>

[GLOBAL]:
  A CLASS
  [CLASS] A:
    [BLOCK] SWITCH:
      [BLOCK] COMPOUND:
      [BLOCK] COMPOUND#1:
      [BLOCK] COMPOUND#2:

errors:

SEMANTIC ERROR: Identifier: i is not declared
SEMANTIC ERROR: Identifier: i is not declared
SEMANTIC ERROR: Identifier: i is not declared
SEMANTIC ERROR: Identifier: i is not declared


# Multiple cases with no break and no expression and default

class A {switch(i){case 1:case 2:i++;default:i--;}}

==>

[GLOBAL]:
  A CLASS
  [CLASS] A:
    [BLOCK] SWITCH:
      [BLOCK] COMPOUND:
      [BLOCK] COMPOUND#1:
      [BLOCK] COMPOUND#2:

errors:

SEMANTIC ERROR: Identifier: i is not declared
SEMANTIC ERROR: Identifier: i is not declared
SEMANTIC ERROR: Identifier: i is not declared
