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 -> java14 [2:49]
|   `--SEMI -> ; [2:55]
`--RECORD_DEF -> RECORD_DEF [4:1]
    |--MODIFIERS -> MODIFIERS [4:1]
    |   `--LITERAL_PUBLIC -> public [4:1]
    |--LITERAL_RECORD -> record [4:8]
    |--IDENT -> InputJava14RecordsTopLevel [4:15]
    |--LPAREN -> ( [4:41]
    |--RECORD_COMPONENTS -> RECORD_COMPONENTS [4:42]
    |   |--RECORD_COMPONENT_DEF -> RECORD_COMPONENT_DEF [4:42]
    |   |   |--ANNOTATIONS -> ANNOTATIONS [4:42]
    |   |   |--TYPE -> TYPE [4:42]
    |   |   |   `--IDENT -> Integer [4:42]
    |   |   `--IDENT -> i [4:50]
    |   |--COMMA -> , [4:51]
    |   |--RECORD_COMPONENT_DEF -> RECORD_COMPONENT_DEF [4:53]
    |   |   |--ANNOTATIONS -> ANNOTATIONS [4:53]
    |   |   |--TYPE -> TYPE [4:53]
    |   |   |   `--IDENT -> String [4:53]
    |   |   `--IDENT -> s [4:60]
    |   |--COMMA -> , [4:61]
    |   `--RECORD_COMPONENT_DEF -> RECORD_COMPONENT_DEF [4:63]
    |       |--ANNOTATIONS -> ANNOTATIONS [4:63]
    |       |--TYPE -> TYPE [4:63]
    |       |   `--IDENT -> Character [4:63]
    |       `--IDENT -> c [4:73]
    |--RPAREN -> ) [4:74]
    `--OBJBLOCK -> OBJBLOCK [4:76]
        |--LCURLY -> { [4:76]
        |--VARIABLE_DEF -> VARIABLE_DEF [6:5]
        |   |--MODIFIERS -> MODIFIERS [6:5]
        |   |   |--LITERAL_PUBLIC -> public [6:5]
        |   |   |--LITERAL_STATIC -> static [6:12]
        |   |   `--FINAL -> final [6:19]
        |   |--TYPE -> TYPE [6:25]
        |   |   `--LITERAL_INT -> int [6:25]
        |   |--IDENT -> I [6:29]
        |   |--ASSIGN -> = [6:31]
        |   |   `--EXPR -> EXPR [6:33]
        |   |       `--NUM_INT -> 42 [6:33]
        |   `--SEMI -> ; [6:35]
        |--COMPACT_CTOR_DEF -> COMPACT_CTOR_DEF [8:5]
        |   |--MODIFIERS -> MODIFIERS [8:5]
        |   |   `--LITERAL_PUBLIC -> public [8:5]
        |   |--IDENT -> InputJava14RecordsTopLevel [8:12]
        |   `--SLIST -> { [8:39]
        |       |--EXPR -> EXPR [9:27]
        |       |   `--METHOD_CALL -> ( [9:27]
        |       |       |--DOT -> . [9:19]
        |       |       |   |--DOT -> . [9:15]
        |       |       |   |   |--IDENT -> System [9:9]
        |       |       |   |   `--IDENT -> out [9:16]
        |       |       |   `--IDENT -> println [9:20]
        |       |       |--ELIST -> ELIST [9:28]
        |       |       |   `--EXPR -> EXPR [9:28]
        |       |       |       `--IDENT -> s [9:28]
        |       |       `--RPAREN -> ) [9:29]
        |       |--SEMI -> ; [9:30]
        |       `--RCURLY -> } [10:5]
        |--CTOR_DEF -> CTOR_DEF [12:5]
        |   |--MODIFIERS -> MODIFIERS [12:5]
        |   |   `--LITERAL_PROTECTED -> protected [12:5]
        |   |--IDENT -> InputJava14RecordsTopLevel [12:15]
        |   |--LPAREN -> ( [12:41]
        |   |--PARAMETERS -> PARAMETERS [12:42]
        |   |   `--PARAMETER_DEF -> PARAMETER_DEF [12:42]
        |   |       |--MODIFIERS -> MODIFIERS [12:42]
        |   |       |--TYPE -> TYPE [12:42]
        |   |       |   `--IDENT -> Integer [12:42]
        |   |       `--IDENT -> i [12:50]
        |   |--RPAREN -> ) [12:51]
        |   `--SLIST -> { [12:53]
        |       |--CTOR_CALL -> this [13:9]
        |       |   |--LPAREN -> ( [13:13]
        |       |   |--ELIST -> ELIST [13:14]
        |       |   |   |--EXPR -> EXPR [13:14]
        |       |   |   |   `--IDENT -> i [13:14]
        |       |   |   |--COMMA -> , [13:15]
        |       |   |   |--EXPR -> EXPR [13:17]
        |       |   |   |   `--STRING_LITERAL -> "string" [13:17]
        |       |   |   |--COMMA -> , [13:25]
        |       |   |   `--EXPR -> EXPR [13:27]
        |       |   |       `--CHAR_LITERAL -> 'c' [13:27]
        |       |   |--RPAREN -> ) [13:30]
        |       |   `--SEMI -> ; [13:31]
        |       `--RCURLY -> } [14:5]
        |--CTOR_DEF -> CTOR_DEF [16:5]
        |   |--MODIFIERS -> MODIFIERS [16:5]
        |   |   `--LITERAL_PRIVATE -> private [16:5]
        |   |--IDENT -> InputJava14RecordsTopLevel [16:13]
        |   |--LPAREN -> ( [16:39]
        |   |--PARAMETERS -> PARAMETERS [16:40]
        |   |   `--PARAMETER_DEF -> PARAMETER_DEF [16:40]
        |   |       |--MODIFIERS -> MODIFIERS [16:40]
        |   |       |--TYPE -> TYPE [16:40]
        |   |       |   `--IDENT -> String [16:40]
        |   |       `--IDENT -> s [16:47]
        |   |--RPAREN -> ) [16:48]
        |   `--SLIST -> { [16:50]
        |       |--CTOR_CALL -> this [17:9]
        |       |   |--LPAREN -> ( [17:13]
        |       |   |--ELIST -> ELIST [17:14]
        |       |   |   `--EXPR -> EXPR [17:14]
        |       |   |       `--IDENT -> I [17:14]
        |       |   |--RPAREN -> ) [17:15]
        |       |   `--SEMI -> ; [17:16]
        |       `--RCURLY -> } [18:5]
        |--CTOR_DEF -> CTOR_DEF [20:5]
        |   |--MODIFIERS -> MODIFIERS [20:5]
        |   |--IDENT -> InputJava14RecordsTopLevel [20:5]
        |   |--LPAREN -> ( [20:31]
        |   |--PARAMETERS -> PARAMETERS [20:32]
        |   |   `--PARAMETER_DEF -> PARAMETER_DEF [20:32]
        |   |       |--MODIFIERS -> MODIFIERS [20:32]
        |   |       |--TYPE -> TYPE [20:32]
        |   |       |   `--IDENT -> Character [20:32]
        |   |       `--IDENT -> c [20:42]
        |   |--RPAREN -> ) [20:43]
        |   `--SLIST -> { [20:45]
        |       |--CTOR_CALL -> this [21:9]
        |       |   |--LPAREN -> ( [21:13]
        |       |   |--ELIST -> ELIST [21:14]
        |       |   |   `--EXPR -> EXPR [21:14]
        |       |   |       `--STRING_LITERAL -> "my string" [21:14]
        |       |   |--RPAREN -> ) [21:25]
        |       |   `--SEMI -> ; [21:26]
        |       `--RCURLY -> } [22:5]
        |--CTOR_DEF -> CTOR_DEF [24:5]
        |   |--MODIFIERS -> MODIFIERS [24:5]
        |   |   `--LITERAL_PUBLIC -> public [24:5]
        |   |--IDENT -> InputJava14RecordsTopLevel [24:12]
        |   |--LPAREN -> ( [24:38]
        |   |--PARAMETERS -> PARAMETERS [24:39]
        |   |   |--PARAMETER_DEF -> PARAMETER_DEF [24:39]
        |   |   |   |--MODIFIERS -> MODIFIERS [24:39]
        |   |   |   |--TYPE -> TYPE [24:39]
        |   |   |   |   `--IDENT -> Integer [24:39]
        |   |   |   `--IDENT -> i [24:47]
        |   |   |--COMMA -> , [24:48]
        |   |   `--PARAMETER_DEF -> PARAMETER_DEF [24:50]
        |   |       |--MODIFIERS -> MODIFIERS [24:50]
        |   |       |--TYPE -> TYPE [24:50]
        |   |       |   `--IDENT -> Character [24:50]
        |   |       `--IDENT -> c [24:60]
        |   |--RPAREN -> ) [24:61]
        |   `--SLIST -> { [24:63]
        |       |--CTOR_CALL -> this [25:9]
        |       |   |--LPAREN -> ( [25:13]
        |       |   |--ELIST -> ELIST [25:14]
        |       |   |   |--EXPR -> EXPR [25:14]
        |       |   |   |   `--IDENT -> I [25:14]
        |       |   |   |--COMMA -> , [25:15]
        |       |   |   |--EXPR -> EXPR [25:17]
        |       |   |   |   `--STRING_LITERAL -> "my string" [25:17]
        |       |   |   |--COMMA -> , [25:28]
        |       |   |   `--EXPR -> EXPR [25:30]
        |       |   |       `--CHAR_LITERAL -> 'g' [25:30]
        |       |   |--RPAREN -> ) [25:33]
        |       |   `--SEMI -> ; [25:34]
        |       `--RCURLY -> } [26:5]
        |--CTOR_DEF -> CTOR_DEF [28:5]
        |   |--MODIFIERS -> MODIFIERS [28:5]
        |   |--IDENT -> InputJava14RecordsTopLevel [28:5]
        |   |--LPAREN -> ( [28:31]
        |   |--PARAMETERS -> PARAMETERS [28:32]
        |   |   |--PARAMETER_DEF -> PARAMETER_DEF [28:32]
        |   |   |   |--MODIFIERS -> MODIFIERS [28:32]
        |   |   |   |--TYPE -> TYPE [28:32]
        |   |   |   |   `--IDENT -> Character [28:32]
        |   |   |   `--IDENT -> c [28:42]
        |   |   |--COMMA -> , [28:43]
        |   |   `--PARAMETER_DEF -> PARAMETER_DEF [28:45]
        |   |       |--MODIFIERS -> MODIFIERS [28:45]
        |   |       |--TYPE -> TYPE [28:45]
        |   |       |   `--IDENT -> String [28:45]
        |   |       `--IDENT -> s [28:52]
        |   |--RPAREN -> ) [28:53]
        |   `--SLIST -> { [28:55]
        |       |--CTOR_CALL -> this [29:9]
        |       |   |--LPAREN -> ( [29:13]
        |       |   |--ELIST -> ELIST [29:14]
        |       |   |   |--EXPR -> EXPR [29:14]
        |       |   |   |   `--IDENT -> I [29:14]
        |       |   |   |--COMMA -> , [29:15]
        |       |   |   `--EXPR -> EXPR [29:17]
        |       |   |       `--IDENT -> c [29:17]
        |       |   |--RPAREN -> ) [29:18]
        |       |   `--SEMI -> ; [29:19]
        |       |--EXPR -> EXPR [30:27]
        |       |   `--METHOD_CALL -> ( [30:27]
        |       |       |--DOT -> . [30:19]
        |       |       |   |--DOT -> . [30:15]
        |       |       |   |   |--IDENT -> System [30:9]
        |       |       |   |   `--IDENT -> out [30:16]
        |       |       |   `--IDENT -> println [30:20]
        |       |       |--ELIST -> ELIST [30:28]
        |       |       |   `--EXPR -> EXPR [30:28]
        |       |       |       `--IDENT -> s [30:28]
        |       |       `--RPAREN -> ) [30:29]
        |       |--SEMI -> ; [30:30]
        |       `--RCURLY -> } [31:5]
        |--METHOD_DEF -> METHOD_DEF [33:5]
        |   |--MODIFIERS -> MODIFIERS [33:5]
        |   |   |--LITERAL_PUBLIC -> public [33:5]
        |   |   `--LITERAL_STATIC -> static [33:12]
        |   |--TYPE -> TYPE [33:19]
        |   |   `--LITERAL_VOID -> void [33:19]
        |   |--IDENT -> main [33:24]
        |   |--LPAREN -> ( [33:28]
        |   |--PARAMETERS -> PARAMETERS [33:29]
        |   |   `--PARAMETER_DEF -> PARAMETER_DEF [33:29]
        |   |       |--MODIFIERS -> MODIFIERS [33:29]
        |   |       |--TYPE -> TYPE [33:29]
        |   |       |   `--IDENT -> String [33:29]
        |   |       |--ELLIPSIS -> ... [33:35]
        |   |       `--IDENT -> args [33:39]
        |   |--RPAREN -> ) [33:43]
        |   `--SLIST -> { [33:45]
        |       |--EXPR -> EXPR [34:27]
        |       |   `--METHOD_CALL -> ( [34:27]
        |       |       |--DOT -> . [34:19]
        |       |       |   |--DOT -> . [34:15]
        |       |       |   |   |--IDENT -> System [34:9]
        |       |       |   |   `--IDENT -> out [34:16]
        |       |       |   `--IDENT -> println [34:20]
        |       |       |--ELIST -> ELIST [34:28]
        |       |       |   `--EXPR -> EXPR [34:28]
        |       |       |       `--STRING_LITERAL -> "Top level record here!" [34:28]
        |       |       `--RPAREN -> ) [34:52]
        |       |--SEMI -> ; [34:53]
        |       `--RCURLY -> } [35:5]
        `--RCURLY -> } [37:1]
