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