# Simple

class A {int(3) a[3];}

==>

[GLOBAL]:
  A CLASS
  [CLASS] A:
    members:
      a VARIABLE INTEGER []
    a VARIABLE INTEGER []


# Reserved multiple dimensions with mixed explicit and partial dimensions

class MyClass{}
class A {reserved MyClass a[3][[2]];}

==>

[GLOBAL]:
  MyClass CLASS
  A CLASS
  [CLASS] MyClass:
  [CLASS] A:
    members:
      a VARIABLE (class: MyClass) []
    a VARIABLE (class: MyClass) []


# Implicit dimension

class MyClass{}
class A {MyClass a[1..3];}

==>

[GLOBAL]:
  MyClass CLASS
  A CLASS
  [CLASS] MyClass:
  [CLASS] A:
    members:
      a VARIABLE (class: MyClass) []
    a VARIABLE (class: MyClass) []

errors:

SEMANTIC ERROR: Implicit arrays can only contain classes which have a classId defined.
