COMPILATION_UNIT -> COMPILATION_UNIT [6:1]
`--PACKAGE_DEF -> package [6:1]
    |--ANNOTATIONS -> ANNOTATIONS [1:1]
    |   |--ANNOTATION -> ANNOTATION [1:1]
    |   |   |--AT -> @ [1:1]
    |   |   |--IDENT -> PackageAnnotation [1:2]
    |   |   |--LPAREN -> ( [1:19]
    |   |   |--ANNOTATION_MEMBER_VALUE_PAIR -> ANNOTATION_MEMBER_VALUE_PAIR [1:20]
    |   |   |   |--IDENT -> value [1:20]
    |   |   |   |--ASSIGN -> = [1:26]
    |   |   |   `--EXPR -> EXPR [1:28]
    |   |   |       `--STRING_LITERAL -> "foo" [1:28]
    |   |   `--RPAREN -> ) [1:33]
    |   |--ANNOTATION -> ANNOTATION [2:3]
    |   |   |--AT -> @ [2:3]
    |   |   |--IDENT -> PackageAnnotation [2:4]
    |   |   |--LPAREN -> ( [2:21]
    |   |   |--EXPR -> EXPR [2:22]
    |   |   |   `--STRING_LITERAL -> "" [2:22]
    |   |   `--RPAREN -> ) [2:24]
    |   `--ANNOTATION -> ANNOTATION [3:1]
    |       |--AT -> @ [3:1]
    |       |--IDENT -> PackageAnnotation [3:2]
    |       |--LPAREN -> ( [3:19]
    |       |--EXPR -> EXPR [4:9]
    |       |   `--STRING_LITERAL -> "bar" [4:9]
    |       `--RPAREN -> ) [5:1]
    |--DOT -> . [11:17]
    |   |--DOT -> . [10:28]
    |   |   |--DOT -> . [10:17]
    |   |   |   |--DOT -> . [8:27]
    |   |   |   |   |--DOT -> . [7:12]
    |   |   |   |   |   |--IDENT -> com [7:9]
    |   |   |   |   |   `--IDENT -> puppycrawl [8:17]
    |   |   |   |   `--IDENT -> tools [9:17]
    |   |   |   `--IDENT -> checkstyle [10:18]
    |   |   `--IDENT -> grammar [10:29]
    |   `--IDENT -> antlr4 [11:18]
    `--SEMI -> ; [11:24]
