COMPILATION_UNIT -> COMPILATION_UNIT [3:1]
|--PACKAGE_DEF -> package [3:1]
|   |--ANNOTATIONS -> ANNOTATIONS [3:48]
|   |--DOT -> . [3:48]
|   |   |--DOT -> . [3:40]
|   |   |   |--DOT -> . [3:29]
|   |   |   |   |--DOT -> . [3:23]
|   |   |   |   |   |--DOT -> . [3:12]
|   |   |   |   |   |   |--IDENT -> com [3:9]
|   |   |   |   |   |   `--IDENT -> puppycrawl [3:13]
|   |   |   |   |   `--IDENT -> tools [3:24]
|   |   |   |   `--IDENT -> checkstyle [3:30]
|   |   |   `--IDENT -> grammar [3:41]
|   |   `--IDENT -> java25 [3:49]
|   `--SEMI -> ; [3:55]
|--IMPORT -> import [5:1]
|   |--DOT -> . [5:17]
|   |   |--DOT -> . [5:12]
|   |   |   |--IDENT -> java [5:8]
|   |   |   `--IDENT -> util [5:13]
|   |   `--IDENT -> Objects [5:18]
|   `--SEMI -> ; [5:25]
`--RECORD_DEF -> RECORD_DEF [7:1]
    |--MODIFIERS -> MODIFIERS [7:1]
    |   `--LITERAL_PUBLIC -> public [7:1]
    |--LITERAL_RECORD -> record [7:8]
    |--IDENT -> InputFlexibleConstructorBodyWithRecord [7:15]
    |--LPAREN -> ( [7:53]
    |--RECORD_COMPONENTS -> RECORD_COMPONENTS [7:54]
    |   |--RECORD_COMPONENT_DEF -> RECORD_COMPONENT_DEF [7:54]
    |   |   |--ANNOTATIONS -> ANNOTATIONS [7:54]
    |   |   |--TYPE -> TYPE [7:54]
    |   |   |   `--IDENT -> Object [7:54]
    |   |   `--IDENT -> data [7:61]
    |   |--COMMA -> , [7:65]
    |   `--RECORD_COMPONENT_DEF -> RECORD_COMPONENT_DEF [7:67]
    |       |--ANNOTATIONS -> ANNOTATIONS [7:67]
    |       |--TYPE -> TYPE [7:67]
    |       |   `--LITERAL_INT -> int [7:67]
    |       `--IDENT -> value [7:71]
    |--RPAREN -> ) [7:76]
    `--OBJBLOCK -> OBJBLOCK [7:78]
        |--LCURLY -> { [7:78]
        |--CTOR_DEF -> CTOR_DEF [8:5]
        |   |--MODIFIERS -> MODIFIERS [8:5]
        |   |   `--LITERAL_PUBLIC -> public [8:5]
        |   |--IDENT -> InputFlexibleConstructorBodyWithRecord [8:12]
        |   |--LPAREN -> ( [8:50]
        |   |--PARAMETERS -> PARAMETERS [8:51]
        |   |   `--PARAMETER_DEF -> PARAMETER_DEF [8:51]
        |   |       |--MODIFIERS -> MODIFIERS [8:51]
        |   |       |--TYPE -> TYPE [8:51]
        |   |       |   `--IDENT -> Object [8:51]
        |   |       `--IDENT -> data [8:58]
        |   |--RPAREN -> ) [8:62]
        |   `--SLIST -> { [8:64]
        |       |--EXPR -> EXPR [9:31]
        |       |   `--METHOD_CALL -> ( [9:31]
        |       |       |--DOT -> . [9:16]
        |       |       |   |--IDENT -> Objects [9:9]
        |       |       |   `--IDENT -> requireNonNull [9:17]
        |       |       |--ELIST -> ELIST [9:32]
        |       |       |   `--EXPR -> EXPR [9:32]
        |       |       |       `--IDENT -> data [9:32]
        |       |       `--RPAREN -> ) [9:36]
        |       |--SEMI -> ; [9:37]
        |       |--CTOR_CALL -> this [10:9]
        |       |   |--LPAREN -> ( [10:13]
        |       |   |--ELIST -> ELIST [10:14]
        |       |   |   |--EXPR -> EXPR [10:14]
        |       |   |   |   `--IDENT -> data [10:14]
        |       |   |   |--COMMA -> , [10:18]
        |       |   |   `--EXPR -> EXPR [10:20]
        |       |   |       `--NUM_INT -> 42 [10:20]
        |       |   |--RPAREN -> ) [10:22]
        |       |   `--SEMI -> ; [10:23]
        |       `--RCURLY -> } [11:5]
        |--CTOR_DEF -> CTOR_DEF [12:5]
        |   |--MODIFIERS -> MODIFIERS [12:5]
        |   |   `--LITERAL_PUBLIC -> public [12:5]
        |   |--IDENT -> InputFlexibleConstructorBodyWithRecord [12:12]
        |   |--LPAREN -> ( [12:50]
        |   |--PARAMETERS -> PARAMETERS [12:51]
        |   |   |--PARAMETER_DEF -> PARAMETER_DEF [12:51]
        |   |   |   |--MODIFIERS -> MODIFIERS [12:51]
        |   |   |   |--TYPE -> TYPE [12:51]
        |   |   |   |   `--IDENT -> Object [12:51]
        |   |   |   `--IDENT -> data [12:58]
        |   |   |--COMMA -> , [12:62]
        |   |   `--PARAMETER_DEF -> PARAMETER_DEF [12:64]
        |   |       |--MODIFIERS -> MODIFIERS [12:64]
        |   |       |--TYPE -> TYPE [12:64]
        |   |       |   `--LITERAL_INT -> int [12:64]
        |   |       `--IDENT -> value [12:68]
        |   |--RPAREN -> ) [12:73]
        |   `--SLIST -> { [12:75]
        |       |--EXPR -> EXPR [13:31]
        |       |   `--METHOD_CALL -> ( [13:31]
        |       |       |--DOT -> . [13:16]
        |       |       |   |--IDENT -> Objects [13:9]
        |       |       |   `--IDENT -> requireNonNull [13:17]
        |       |       |--ELIST -> ELIST [13:32]
        |       |       |   `--EXPR -> EXPR [13:32]
        |       |       |       `--IDENT -> data [13:32]
        |       |       `--RPAREN -> ) [13:36]
        |       |--SEMI -> ; [13:37]
        |       |--EXPR -> EXPR [14:19]
        |       |   `--ASSIGN -> = [14:19]
        |       |       |--DOT -> . [14:13]
        |       |       |   |--LITERAL_THIS -> this [14:9]
        |       |       |   `--IDENT -> data [14:14]
        |       |       `--IDENT -> data [14:21]
        |       |--SEMI -> ; [14:25]
        |       |--EXPR -> EXPR [15:20]
        |       |   `--ASSIGN -> = [15:20]
        |       |       |--DOT -> . [15:13]
        |       |       |   |--LITERAL_THIS -> this [15:9]
        |       |       |   `--IDENT -> value [15:14]
        |       |       `--IDENT -> value [15:22]
        |       |--SEMI -> ; [15:27]
        |       `--RCURLY -> } [16:5]
        `--RCURLY -> } [17:1]
