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