COMPILATION_UNIT -> COMPILATION_UNIT [2:1]
|--PACKAGE_DEF -> package [2:1]
| |--ANNOTATIONS -> ANNOTATIONS [2:48]
| |--DOT -> . [2:48]
| | |--DOT -> . [2:40]
| | | |--DOT -> . [2:29]
| | | | |--DOT -> . [2:23]
| | | | | |--DOT -> . [2:12]
| | | | | | |--IDENT -> com [2:9]
| | | | | | `--IDENT -> puppycrawl [2:13]
| | | | | `--IDENT -> tools [2:24]
| | | | `--IDENT -> checkstyle [2:30]
| | | `--IDENT -> grammar [2:41]
| | `--IDENT -> java21 [2:49]
| `--SEMI -> ; [2:55]
|--IMPORT -> import [4:1]
| |--DOT -> . [4:17]
| | |--DOT -> . [4:12]
| | | |--IDENT -> java [4:8]
| | | `--IDENT -> util [4:13]
| | `--IDENT -> List [4:18]
| `--SEMI -> ; [4:22]
`--CLASS_DEF -> CLASS_DEF [6:1]
|--MODIFIERS -> MODIFIERS [6:1]
| `--LITERAL_PUBLIC -> public [6:1]
|--LITERAL_CLASS -> class [6:8]
|--IDENT -> InputTextBlockConsecutiveEscapes [6:14]
`--OBJBLOCK -> OBJBLOCK [6:47]
|--LCURLY -> { [6:47]
|--VARIABLE_DEF -> VARIABLE_DEF [7:5]
| |--MODIFIERS -> MODIFIERS [7:5]
| |--TYPE -> TYPE [7:5]
| | `--IDENT -> String [7:5]
| |--IDENT -> s [7:12]
| |--ASSIGN -> = [7:14]
| | `--EXPR -> EXPR [7:16]
| | `--TEXT_BLOCK_LITERAL_BEGIN -> """ [7:16]
| | |--TEXT_BLOCK_CONTENT -> \n \u03bc\t\n \u03bc\s\n \u03bc\s not all escaped chars\n \u03bc\n not all escaped chars\n \s\s\s\n\n \u03bc\s\n \s\s\s\n not all escaped chars\n \u03bc\s not all escaped chars\n \u03bc\n not all escaped chars\n l\u03bc\n\n \n \u03bc\s\n \u03bc\\n \s\u03bc\\n [7:19]
| | `--TEXT_BLOCK_LITERAL_END -> """ [21:13]
| `--SEMI -> ; [21:16]
|--VARIABLE_DEF -> VARIABLE_DEF [23:13]
| |--MODIFIERS -> MODIFIERS [23:13]
| | `--FINAL -> final [23:13]
| |--TYPE -> TYPE [23:19]
| | |--IDENT -> List [23:19]
| | `--TYPE_ARGUMENTS -> TYPE_ARGUMENTS [23:23]
| | |--GENERIC_START -> < [23:23]
| | |--TYPE_ARGUMENT -> TYPE_ARGUMENT [23:24]
| | | `--IDENT -> TestCase [23:24]
| | `--GENERIC_END -> > [23:32]
| |--IDENT -> testCases [23:34]
| |--ASSIGN -> = [23:44]
| | `--EXPR -> EXPR [23:53]
| | `--METHOD_CALL -> ( [23:53]
| | |--DOT -> . [23:50]
| | | |--IDENT -> List [23:46]
| | | `--IDENT -> of [23:51]
| | |--ELIST -> ELIST [24:17]
| | | |--EXPR -> EXPR [24:17]
| | | | `--LITERAL_NEW -> new [24:17]
| | | | |--IDENT -> TestCase [24:21]
| | | | |--LPAREN -> ( [24:29]
| | | | |--ELIST -> ELIST [24:30]
| | | | | |--EXPR -> EXPR [24:30]
| | | | | | `--TEXT_BLOCK_LITERAL_BEGIN -> """ [24:30]
| | | | | | |--TEXT_BLOCK_CONTENT -> \n {@snippet :\n hello there // @highlight regex ="\t**"\n } [24:33]
| | | | | | `--TEXT_BLOCK_LITERAL_END -> """ [27:22]
| | | | | |--COMMA -> , [27:25]
| | | | | `--EXPR -> EXPR [28:30]
| | | | | `--TEXT_BLOCK_LITERAL_BEGIN -> """ [28:30]
| | | | | |--TEXT_BLOCK_CONTENT -> \n error: snippet markup: invalid regex\n hello there // @highlight regex ="\t**"\n \t ^\n [28:33]
| | | | | `--TEXT_BLOCK_LITERAL_END -> """ [32:21]
| | | | `--RPAREN -> ) [32:24]
| | | |--COMMA -> , [32:25]
| | | |--EXPR -> EXPR [33:17]
| | | | `--LITERAL_NEW -> new [33:17]
| | | | |--IDENT -> TestCase [33:21]
| | | | |--LPAREN -> ( [33:29]
| | | | |--ELIST -> ELIST [33:30]
| | | | | |--EXPR -> EXPR [33:30]
| | | | | | `--TEXT_BLOCK_LITERAL_BEGIN -> """ [33:30]
| | | | | | |--TEXT_BLOCK_CONTENT -> \n {@snippet :\n hello there // @highlight regex ="\\t**"\n } [33:33]
| | | | | | `--TEXT_BLOCK_LITERAL_END -> """ [36:22]
| | | | | |--COMMA -> , [36:25]
| | | | | `--EXPR -> EXPR [37:25]
| | | | | `--TEXT_BLOCK_LITERAL_BEGIN -> """ [37:25]
| | | | | |--TEXT_BLOCK_CONTENT -> \n error: snippet markup: invalid regex\n hello there // @highlight regex ="\\t**"\n ^\n [37:28]
| | | | | `--TEXT_BLOCK_LITERAL_END -> """ [41:21]
| | | | `--RPAREN -> ) [41:24]
| | | |--COMMA -> , [41:25]
| | | |--EXPR -> EXPR [42:17]
| | | | `--LITERAL_NEW -> new [42:17]
| | | | |--IDENT -> TestCase [42:21]
| | | | |--LPAREN -> ( [42:29]
| | | | |--ELIST -> ELIST [42:30]
| | | | | |--EXPR -> EXPR [42:30]
| | | | | | `--TEXT_BLOCK_LITERAL_BEGIN -> """ [42:30]
| | | | | | |--TEXT_BLOCK_CONTENT -> \n {@snippet :\n hello there // @highlight regex="\\.\\*\\+\\E"\n } [42:33]
| | | | | | `--TEXT_BLOCK_LITERAL_END -> """ [45:22]
| | | | | |--COMMA -> , [45:25]
| | | | | `--EXPR -> EXPR [46:30]
| | | | | `--TEXT_BLOCK_LITERAL_BEGIN -> """ [46:30]
| | | | | |--TEXT_BLOCK_CONTENT -> \n error: snippet markup: invalid regex\n hello there // @highlight regex="\\.\\*\\+\\E"\n \s\s\s\s ^\n [46:33]
| | | | | `--TEXT_BLOCK_LITERAL_END -> """ [50:21]
| | | | `--RPAREN -> ) [50:24]
| | | |--COMMA -> , [50:25]
| | | `--EXPR -> EXPR [53:17]
| | | `--LITERAL_NEW -> new [53:17]
| | | |--IDENT -> TestCase [53:21]
| | | |--LPAREN -> ( [53:29]
| | | |--ELIST -> ELIST [53:30]
| | | | |--EXPR -> EXPR [53:30]
| | | | | `--TEXT_BLOCK_LITERAL_BEGIN -> """ [53:30]
| | | | | |--TEXT_BLOCK_CONTENT -> \n {@snippet :\n hello there // @highlight type="italics" regex =" ["\n } [53:33]
| | | | | `--TEXT_BLOCK_LITERAL_END -> """ [56:22]
| | | | |--COMMA -> , [56:25]
| | | | `--EXPR -> EXPR [57:25]
| | | | `--TEXT_BLOCK_LITERAL_BEGIN -> """ [57:25]
| | | | |--TEXT_BLOCK_CONTENT -> \n error: snippet markup: invalid regex\n hello there // @highlight type="italics" regex =" ["\n ^\n [57:28]
| | | | `--TEXT_BLOCK_LITERAL_END -> """ [61:21]
| | | `--RPAREN -> ) [61:24]
| | `--RPAREN -> ) [62:17]
| `--SEMI -> ; [62:18]
|--RECORD_DEF -> RECORD_DEF [64:5]
| |--MODIFIERS -> MODIFIERS [64:5]
| | `--LITERAL_PRIVATE -> private [64:5]
| |--LITERAL_RECORD -> record [64:13]
| |--IDENT -> TestCase [64:20]
| |--LPAREN -> ( [64:28]
| |--RECORD_COMPONENTS -> RECORD_COMPONENTS [64:29]
| | |--RECORD_COMPONENT_DEF -> RECORD_COMPONENT_DEF [64:29]
| | | |--ANNOTATIONS -> ANNOTATIONS [64:29]
| | | |--TYPE -> TYPE [64:29]
| | | | `--IDENT -> String [64:29]
| | | `--IDENT -> s1 [64:36]
| | |--COMMA -> , [64:38]
| | `--RECORD_COMPONENT_DEF -> RECORD_COMPONENT_DEF [64:40]
| | |--ANNOTATIONS -> ANNOTATIONS [64:40]
| | |--TYPE -> TYPE [64:40]
| | | `--IDENT -> String [64:40]
| | `--IDENT -> s2 [64:47]
| |--RPAREN -> ) [64:49]
| `--OBJBLOCK -> OBJBLOCK [64:50]
| |--LCURLY -> { [64:50]
| `--RCURLY -> } [64:51]
`--RCURLY -> } [65:1]