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]
|--CLASS_DEF -> CLASS_DEF [5:1]
|   |--MODIFIERS -> MODIFIERS [5:1]
|   |   `--LITERAL_PUBLIC -> public [5:1]
|   |--LITERAL_CLASS -> class [5:8]
|   |--IDENT -> InputFlexibleConstructorBodyWithReturn [5:14]
|   `--OBJBLOCK -> OBJBLOCK [5:53]
|       |--LCURLY -> { [5:53]
|       |--VARIABLE_DEF -> VARIABLE_DEF [6:5]
|       |   |--MODIFIERS -> MODIFIERS [6:5]
|       |   |   `--FINAL -> final [6:5]
|       |   |--TYPE -> TYPE [6:11]
|       |   |   `--LITERAL_INT -> int [6:11]
|       |   |--IDENT -> ctorBody [6:15]
|       |   |--ASSIGN -> = [6:24]
|       |   |   `--EXPR -> EXPR [6:26]
|       |   |       `--NUM_INT -> 0 [6:26]
|       |   `--SEMI -> ; [6:27]
|       |--CTOR_DEF -> CTOR_DEF [7:5]
|       |   |--MODIFIERS -> MODIFIERS [7:5]
|       |   |   `--LITERAL_PUBLIC -> public [7:5]
|       |   |--IDENT -> InputFlexibleConstructorBodyWithReturn [7:12]
|       |   |--LPAREN -> ( [7:50]
|       |   |--PARAMETERS -> PARAMETERS [7:51]
|       |   |--RPAREN -> ) [7:51]
|       |   `--SLIST -> { [7:53]
|       |       |--EXPR -> EXPR [8:27]
|       |       |   `--METHOD_CALL -> ( [8:27]
|       |       |       |--DOT -> . [8:19]
|       |       |       |   |--DOT -> . [8:15]
|       |       |       |   |   |--IDENT -> System [8:9]
|       |       |       |   |   `--IDENT -> out [8:16]
|       |       |       |   `--IDENT -> println [8:20]
|       |       |       |--ELIST -> ELIST [8:28]
|       |       |       |   `--EXPR -> EXPR [8:28]
|       |       |       |       `--STRING_LITERAL -> "hello" [8:28]
|       |       |       `--RPAREN -> ) [8:35]
|       |       |--SEMI -> ; [8:36]
|       |       |--SUPER_CTOR_CALL -> super [9:9]
|       |       |   |--LPAREN -> ( [9:14]
|       |       |   |--ELIST -> ELIST [9:15]
|       |       |   |--RPAREN -> ) [9:15]
|       |       |   `--SEMI -> ; [9:16]
|       |       |--LITERAL_RETURN -> return [10:9]
|       |       |   `--SEMI -> ; [10:16]
|       |       `--RCURLY -> } [11:5]
|       `--RCURLY -> } [12:1]
|--CLASS_DEF -> CLASS_DEF [14:1]
|   |--MODIFIERS -> MODIFIERS [14:1]
|   |--LITERAL_CLASS -> class [14:1]
|   |--IDENT -> Jep512 [14:7]
|   `--OBJBLOCK -> OBJBLOCK [14:14]
|       |--LCURLY -> { [14:14]
|       |--CTOR_DEF -> CTOR_DEF [15:5]
|       |   |--MODIFIERS -> MODIFIERS [15:5]
|       |   |--IDENT -> Jep512 [15:5]
|       |   |--LPAREN -> ( [15:11]
|       |   |--PARAMETERS -> PARAMETERS [15:12]
|       |   |   `--PARAMETER_DEF -> PARAMETER_DEF [15:12]
|       |   |       |--MODIFIERS -> MODIFIERS [15:12]
|       |   |       |--TYPE -> TYPE [15:12]
|       |   |       |   `--LITERAL_INT -> int [15:12]
|       |   |       `--IDENT -> letter [15:16]
|       |   |--RPAREN -> ) [15:22]
|       |   `--SLIST -> { [15:24]
|       |       `--RCURLY -> } [15:25]
|       `--RCURLY -> } [16:1]
`--CLASS_DEF -> CLASS_DEF [18:1]
    |--MODIFIERS -> MODIFIERS [18:1]
    |--LITERAL_CLASS -> class [18:1]
    |--IDENT -> Jep513 [18:7]
    |--EXTENDS_CLAUSE -> extends [18:14]
    |   `--IDENT -> Jep512 [18:22]
    `--OBJBLOCK -> OBJBLOCK [18:29]
        |--LCURLY -> { [18:29]
        |--CTOR_DEF -> CTOR_DEF [19:5]
        |   |--MODIFIERS -> MODIFIERS [19:5]
        |   |--IDENT -> Jep513 [19:5]
        |   |--LPAREN -> ( [19:11]
        |   |--PARAMETERS -> PARAMETERS [19:12]
        |   |   `--PARAMETER_DEF -> PARAMETER_DEF [19:12]
        |   |       |--MODIFIERS -> MODIFIERS [19:12]
        |   |       |--TYPE -> TYPE [19:12]
        |   |       |   `--LITERAL_INT -> int [19:12]
        |   |       `--IDENT -> number [19:16]
        |   |--RPAREN -> ) [19:22]
        |   `--SLIST -> { [19:24]
        |       |--LITERAL_IF -> if [20:9]
        |       |   |--LPAREN -> ( [20:12]
        |       |   |--EXPR -> EXPR [20:20]
        |       |   |   `--GT -> > [20:20]
        |       |   |       |--IDENT -> number [20:13]
        |       |   |       `--NUM_INT -> 0 [20:22]
        |       |   |--RPAREN -> ) [20:23]
        |       |   `--SLIST -> { [20:25]
        |       |       |--LITERAL_THROW -> throw [21:13]
        |       |       |   |--EXPR -> EXPR [21:19]
        |       |       |   |   `--LITERAL_NEW -> new [21:19]
        |       |       |   |       |--IDENT -> IllegalArgumentException [21:23]
        |       |       |   |       |--LPAREN -> ( [21:47]
        |       |       |   |       |--ELIST -> ELIST [21:48]
        |       |       |   |       |   `--EXPR -> EXPR [21:48]
        |       |       |   |       |       `--STRING_LITERAL -> "number must be positive" [21:48]
        |       |       |   |       `--RPAREN -> ) [21:73]
        |       |       |   `--SEMI -> ; [21:74]
        |       |       `--RCURLY -> } [22:9]
        |       |--SUPER_CTOR_CALL -> super [23:9]
        |       |   |--LPAREN -> ( [23:14]
        |       |   |--ELIST -> ELIST [23:15]
        |       |   |   `--EXPR -> EXPR [23:15]
        |       |   |       `--IDENT -> number [23:15]
        |       |   |--RPAREN -> ) [23:21]
        |       |   `--SEMI -> ; [23:22]
        |       |--LITERAL_RETURN -> return [24:9]
        |       |   `--SEMI -> ; [24:16]
        |       `--RCURLY -> } [25:5]
        `--RCURLY -> } [26:1]
