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