COMPILATION_UNIT -> COMPILATION_UNIT [2:0]
|--PACKAGE_DEF -> package [2:0]
|   |--ANNOTATIONS -> ANNOTATIONS [2:47]
|   |--DOT -> . [2:47]
|   |   |--DOT -> . [2:39]
|   |   |   |--DOT -> . [2:28]
|   |   |   |   |--DOT -> . [2:22]
|   |   |   |   |   |--DOT -> . [2:11]
|   |   |   |   |   |   |--IDENT -> com [2:8]
|   |   |   |   |   |   `--IDENT -> puppycrawl [2:12]
|   |   |   |   |   `--IDENT -> tools [2:23]
|   |   |   |   `--IDENT -> checkstyle [2:29]
|   |   |   `--IDENT -> grammar [2:40]
|   |   `--IDENT -> java15 [2:48]
|   `--SEMI -> ; [2:54]
|--CLASS_DEF -> CLASS_DEF [4:0]
|   |--MODIFIERS -> MODIFIERS [4:0]
|   |   |--LITERAL_PUBLIC -> public [4:0]
|   |   `--LITERAL_SEALED -> sealed [4:7]
|   |--LITERAL_CLASS -> class [4:14]
|   |--IDENT -> InputAstRegressionSealedAndPermits [4:20]
|   |--PERMITS_CLAUSE -> permits [4:55]
|   |   |--IDENT -> Circle [4:63]
|   |   |--COMMA -> , [4:69]
|   |   |--IDENT -> Square [4:71]
|   |   |--COMMA -> , [4:77]
|   |   `--IDENT -> Rectangle [4:79]
|   `--OBJBLOCK -> OBJBLOCK [4:89]
|       |--LCURLY -> { [4:89]
|       `--RCURLY -> } [5:0]
|--CLASS_DEF -> CLASS_DEF [7:0]
|   |--MODIFIERS -> MODIFIERS [7:0]
|   |   `--FINAL -> final [7:0]
|   |--LITERAL_CLASS -> class [7:6]
|   |--IDENT -> Circle [7:12]
|   |--EXTENDS_CLAUSE -> extends [7:19]
|   |   `--IDENT -> InputAstRegressionSealedAndPermits [7:27]
|   |--IMPLEMENTS_CLAUSE -> implements [7:62]
|   |   `--IDENT -> Squircle [7:73]
|   `--OBJBLOCK -> OBJBLOCK [7:82]
|       |--LCURLY -> { [7:82]
|       `--RCURLY -> } [8:0]
|--CLASS_DEF -> CLASS_DEF [10:0]
|   |--MODIFIERS -> MODIFIERS [10:0]
|   |   `--LITERAL_SEALED -> sealed [10:0]
|   |--LITERAL_CLASS -> class [10:7]
|   |--IDENT -> Rectangle [10:13]
|   |--EXTENDS_CLAUSE -> extends [10:23]
|   |   `--IDENT -> InputAstRegressionSealedAndPermits [10:31]
|   |--IMPLEMENTS_CLAUSE -> implements [11:4]
|   |   `--IDENT -> Cloneable [11:15]
|   |--PERMITS_CLAUSE -> permits [12:4]
|   |   |--IDENT -> TransparentRectangle [12:12]
|   |   |--COMMA -> , [12:32]
|   |   `--IDENT -> FilledRectangle [12:34]
|   `--OBJBLOCK -> OBJBLOCK [12:50]
|       |--LCURLY -> { [12:50]
|       `--RCURLY -> } [13:0]
|--CLASS_DEF -> CLASS_DEF [15:0]
|   |--MODIFIERS -> MODIFIERS [15:0]
|   |   `--FINAL -> final [15:0]
|   |--LITERAL_CLASS -> class [15:6]
|   |--IDENT -> TransparentRectangle [15:12]
|   |--EXTENDS_CLAUSE -> extends [15:33]
|   |   `--IDENT -> Rectangle [15:41]
|   `--OBJBLOCK -> OBJBLOCK [15:51]
|       |--LCURLY -> { [15:51]
|       `--RCURLY -> } [16:0]
|--CLASS_DEF -> CLASS_DEF [18:0]
|   |--MODIFIERS -> MODIFIERS [18:0]
|   |   `--LITERAL_NON_SEALED -> non-sealed [18:0]
|   |--LITERAL_CLASS -> class [18:11]
|   |--IDENT -> Square [18:17]
|   |--EXTENDS_CLAUSE -> extends [18:24]
|   |   `--IDENT -> InputAstRegressionSealedAndPermits [18:32]
|   |--IMPLEMENTS_CLAUSE -> implements [18:67]
|   |   `--IDENT -> Squircle [18:78]
|   `--OBJBLOCK -> OBJBLOCK [18:87]
|       |--LCURLY -> { [18:87]
|       `--RCURLY -> } [19:0]
|--CLASS_DEF -> CLASS_DEF [21:0]
|   |--MODIFIERS -> MODIFIERS [21:0]
|   |   `--FINAL -> final [21:0]
|   |--LITERAL_CLASS -> class [21:6]
|   |--IDENT -> FilledRectangle [21:12]
|   |--EXTENDS_CLAUSE -> extends [21:28]
|   |   `--IDENT -> Rectangle [21:36]
|   `--OBJBLOCK -> OBJBLOCK [21:46]
|       |--LCURLY -> { [21:46]
|       `--RCURLY -> } [22:0]
|--INTERFACE_DEF -> INTERFACE_DEF [24:0]
|   |--MODIFIERS -> MODIFIERS [24:0]
|   |   `--LITERAL_SEALED -> sealed [24:0]
|   |--LITERAL_INTERFACE -> interface [24:7]
|   |--IDENT -> Squircle [24:17]
|   |--PERMITS_CLAUSE -> permits [24:26]
|   |   |--IDENT -> Circle [24:34]
|   |   |--COMMA -> , [24:40]
|   |   `--IDENT -> Square [24:42]
|   `--OBJBLOCK -> OBJBLOCK [24:49]
|       |--LCURLY -> { [24:49]
|       `--RCURLY -> } [26:0]
`--CLASS_DEF -> CLASS_DEF [28:0]
    |--MODIFIERS -> MODIFIERS [28:0]
    |--LITERAL_CLASS -> class [28:0]
    |--IDENT -> Tricky [28:6]
    `--OBJBLOCK -> OBJBLOCK [28:13]
        |--LCURLY -> { [28:13]
        |--METHOD_DEF -> METHOD_DEF [29:4]
        |   |--MODIFIERS -> MODIFIERS [29:4]
        |   |   |--LITERAL_PUBLIC -> public [29:4]
        |   |   `--LITERAL_STATIC -> static [29:11]
        |   |--TYPE -> TYPE [29:18]
        |   |   `--LITERAL_VOID -> void [29:18]
        |   |--IDENT -> main [29:23]
        |   |--LPAREN -> ( [29:27]
        |   |--PARAMETERS -> PARAMETERS [29:28]
        |   |   `--PARAMETER_DEF -> PARAMETER_DEF [29:28]
        |   |       |--MODIFIERS -> MODIFIERS [29:28]
        |   |       |--TYPE -> TYPE [29:28]
        |   |       |   |--IDENT -> String [29:28]
        |   |       |   `--ARRAY_DECLARATOR -> [ [29:34]
        |   |       |       `--RBRACK -> ] [29:35]
        |   |       `--IDENT -> args [29:37]
        |   |--RPAREN -> ) [29:41]
        |   `--SLIST -> { [29:43]
        |       |--VARIABLE_DEF -> VARIABLE_DEF [30:8]
        |       |   |--MODIFIERS -> MODIFIERS [30:8]
        |       |   |--TYPE -> TYPE [30:8]
        |       |   |   `--LITERAL_INT -> int [30:8]
        |       |   |--IDENT -> non [30:12]
        |       |   `--ASSIGN -> = [30:16]
        |       |       `--EXPR -> EXPR [30:18]
        |       |           `--NUM_INT -> 2 [30:18]
        |       |--SEMI -> ; [30:19]
        |       |--VARIABLE_DEF -> VARIABLE_DEF [31:8]
        |       |   |--MODIFIERS -> MODIFIERS [31:8]
        |       |   |--TYPE -> TYPE [31:8]
        |       |   |   `--LITERAL_INT -> int [31:8]
        |       |   |--IDENT -> sealed [31:12]
        |       |   `--ASSIGN -> = [31:19]
        |       |       `--EXPR -> EXPR [31:21]
        |       |           `--NUM_INT -> 4 [31:21]
        |       |--SEMI -> ; [31:22]
        |       |--VARIABLE_DEF -> VARIABLE_DEF [32:8]
        |       |   |--MODIFIERS -> MODIFIERS [32:8]
        |       |   |--TYPE -> TYPE [32:8]
        |       |   |   `--LITERAL_INT -> int [32:8]
        |       |   |--IDENT -> permits [32:12]
        |       |   `--ASSIGN -> = [32:20]
        |       |       `--EXPR -> EXPR [32:26]
        |       |           `--MINUS -> - [32:26]
        |       |               |--IDENT -> non [32:22]
        |       |               `--IDENT -> sealed [32:28]
        |       |--SEMI -> ; [32:34]
        |       `--RCURLY -> } [33:4]
        `--RCURLY -> } [34:0]
