Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[many grammars] Useless parentheses. #3403

Closed
kaby76 opened this issue May 11, 2023 · 7 comments
Closed

[many grammars] Useless parentheses. #3403

kaby76 opened this issue May 11, 2023 · 7 comments

Comments

@kaby76
Copy link
Contributor

kaby76 commented May 11, 2023

There are useless parentheses spread across many grammars in the repo, which I've been trying to correct. Here is a list as produced by a Trash script (see the following comments).

This is the script used to find useless parentheses. I could not have come up with the various patterns without the valuable help from and keen eyes of @KvanTTT and @msagca.

There is probably a simple pattern based on operator precedence to know when it is safe to remove parentheses. For now, what I wrote will do.

#!/bin/bash
echo Finding useless parentheses in grammars...
for i in `find . -name desc.xml | grep -v Generated\*`
do
  d=`dirname $i`
  echo $d
  pushd $d > /dev/null 2>&1
  trparse -l -t ANTLRv4 *.g4 2> /dev/null > o.pt
  status=$?
  if [ "$status" != "0" ]
  then
    echo Crash
  else
    if [ -f o.pt ] && [ -s o.pt ]
    then
      cat o.pt | trxgrep '
        (: Find all blocks... :)
        //block[
                (: except not one of these ... :)
                not(./parent::ebnf/blockSuffix and ./altList/OR) and
                not(./parent::ebnf/blockSuffix and count(./altList/alternative/element) > 1) and
                not(./altList/OR and ../../following-sibling::element) and
                not(./altList/OR and ../../preceding-sibling::element) and
		not(./parent::labeledElement/(ASSIGN or PLUS_ASSIGN))
        ]' | trcaret
      cat o.pt | trxgrep '
        (: Find all blocks... :)
        //lexerBlock[
                (: except not one of these ... :)
                not(./parent::lexerElement/ebnfSuffix and ./lexerAltList/OR) and
                not(./parent::lexerElement/ebnfSuffix and count(./lexerAltList/lexerAlt/lexerElements/lexerElement) > 1) and
                not(./lexerAltList/OR and ../following-sibling::lexerElement) and
                not(./lexerAltList/OR and ../preceding-sibling::lexerElement) and
                not(./parent::lexerElement/ebnfSuffix and ./lexerAltList/lexerAlt/lexerElements/lexerElement/lexerAtom/characterRange) and
                not(count(./lexerAltList/lexerAlt) > 1 and ../../../lexerCommands) and
		not(./parent::labeledLexerElement/(ASSIGN or PLUS_ASSIGN))
        ]' | trcaret
      cat o.pt | trxgrep '
        (: Find all blockSets... :)
        //blockSet[
                (: except not one of these ... :)
                not(./OR)
        ]' | trcaret
      rm -f o.pt
    fi
  fi

  popd > /dev/null 2>&1
done

(Updated 5/14/23 8AM EST.)

@kaby76
Copy link
Contributor Author

kaby76 commented May 11, 2023

Finding useless parentheses in grammars...
./abb
./abnf
./acme
./ada/ada2005
Ada2005Lexer.g4:L138: STRING_LITERAL_   : '"' ('""' | ~('"') )* '"';
                                                       ^
./ada/ada2012
AdaLexer.g4:L139: STRING_LITERAL_   : '"' ('""' | ~('"') )* '"';
                                                   ^
./ada/ada83
Ada83Lexer.g4:L123: CHARACTER_LITERAL_: '\'' (~['\\\r\n]) '\'';
                                             ^
Ada83Lexer.g4:L124: STRING_LITERAL_   : '"' ('""' | ~('"') )* '"';
                                                     ^
./ada/ada95
Ada95Parser.g4:L610:    : CASE expression IS case_statement_alternative (case_statement_alternative)* END CASE ';'
                                                                        ^
Ada95Lexer.g4:L129: CHARACTER_LITERAL : '\'' (~['\\\r\n]) '\'';
                                             ^
Ada95Lexer.g4:L130: STRING_LITERAL_   : '"' ('""' | ~('"') )* '"';
                                                     ^
./agc
L597:    : ([0-9]+ ('.' [0-9]+)?)
           ^
L598:    | ('.' [0-9]+)
           ^
./alef
./algol60
L102: Comment : Comment_ (~';')+ Semi_ -> channel(HIDDEN) ;
                         ^
L120: fragment Proper_string options { caseInsensitive=false; } : (~('\u231C' | '\u231D'))* ;
                                                                  ^
./alloy
./alpaca
./angelscript
L340:    : [0-9] ('.' [0-9]+)
                 ^
./antlr/antlr2
./antlr/antlr3
./antlr/antlr4
./apex
./apt
./aql
./argus
./arithmetic
./asl
./asm/asm6502
./asm/asm8080
./asm/asm8086
./asm/asmMASM
./asm/asmZ80
./asm/masm
L1750:    : (Digit +)
            ^
L1760:    : ('0' .. '9' | 'a' .. 'f' | 'A' .. 'F')
            ^
L1780:    : ('a' .. 'z' | 'A' .. 'Z')
            ^
L1790:    : Identifier (':')
                       ^
./asm/pdp7
./asm/ptx/ptx-isa-1.0
PTXParser.g4:L190:     | ATOM space ('.' op=operation) data_type d=operand ',' a=operand ',' b=operand (',' c=operand)?
                                    ^
./asm/ptx/ptx-isa-2.1
L230:     : func_param ( T_COMMA func_param )* ( T_ELLIPSIS )?
                                               ^
L290:     : ( performance_tuning_directive )+
            ^
L354:     : T_WORD | U_DEBUG_ABBREV | U_DEBUG_INFO | U_DEBUG_LINE | (U_DEBUG_LOC (T_PLUS integer)?) | U_DEBUG_PUBNAMES | U_DEBUG_RANGES
                                                                    ^
L359:     (integer | T_WORD | U_DEBUG_ABBREV | U_DEBUG_INFO | U_DEBUG_LINE | (U_DEBUG_LOC (T_PLUS integer)?) | U_DEBUG_PUBNAMES | U_DEBUG_RANGES)
                                                                             ^
L517:     : ( aggregate_initializer | constant_expression | id_or_opcode )
            ^
L728:     (
          ^
L729:         (
              ^
L732:         (
              ^
L735:         (
              ^
L743:     (
          ^
L758:     (
          ^
L759:         (
              ^
L760:             ( ( K_SAT K_S32 ) | ( K_U16 | K_U32 | K_U64 | K_S16 | K_S32 | K_S64) ) |
                  ^
L760:             ( ( K_SAT K_S32 ) | ( K_U16 | K_U32 | K_U64 | K_S16 | K_S32 | K_S64) ) |
                    ^
L760:             ( ( K_SAT K_S32 ) | ( K_U16 | K_U32 | K_U64 | K_S16 | K_S32 | K_S64) ) |
                                      ^
L761:             ( K_CC ( K_S32 | K_U32 ) )
                  ^
L763:         (
              ^
L766:         ( ( K_RN | K_RZ | K_RM | K_RP )? K_F64 )
              ^
L785:     (
          ^
L786:         (
              ^
L807:     (
          ^
L826:     (
          ^
L827:         (
              ^
L891:     (
          ^
L914:     (
          ^
L937:     ( K_S32 | K_U32 | K_S64 | K_U64 )
          ^
L956:     ( K_B32 | K_B64 )
          ^
L975:     ( K_SHIFTAMT )? ( K_S32 | K_U32 | K_S64 | K_U64 )
          ^
L1000:     (
           ^
L1015:     ( K_B32 | K_B64 )
           ^
L1063:     ( K_B32 | K_B64 )
           ^
L1082:     (
           ^
L1101:     ( K_F32 | K_F64 )
           ^
L1139:     (
           ^
L1140:         (
               ^
L1162:     ( K_RNI | K_RZI | K_RMI | K_RPI )
           ^
L1173:     ( K_RN | K_RZ | K_RM | K_RP )
           ^
L1209:     (
           ^
L1210:         (
               ^
L1213:         (
               ^
L1216:         (
               ^
L1219:         (
               ^
L1222:         (
               ^
L1286:     ( K_GLOBAL | K_LOCAL | K_SHARED )
           ^
L1303:     (
           ^
L1304:         (
               ^
L1309:         (
               ^
L1315:         (
               ^
L1320:         (
               ^
L1342:     (
           ^
L1343:         (
               ^
L1344:             ( K_GLOBAL )?
                   ^
L1347:         (
               ^
L1348:             ( K_GLOBAL )?
                   ^
L1386:     (
           ^
L1387:         (
               ^
L1391:         ( K_HI K_SAT K_S32 ) |
               ^
L1392:         (
               ^
L1397:         (
               ^
L1403:         (
               ^
L1426:     (
           ^
L1427:         (
               ^
L1431:         (
               ^
L1453:     (
           ^
L1454:         (
               ^
L1457:         (
               ^
L1460:         (
               ^
L1481:     ( K_CTA | K_GL | K_SYS )
           ^
L1493:     (
           ^
L1494:         (
               ^
L1497:         (
               ^
L1500:         (
               ^
L1522:     (
           ^
L1541:     (
           ^
L1542:         (
               ^
L1545:         (
               ^
L1548:         (
               ^
L1570:     ( ( K_HI | K_LO ) ( K_U32 | K_S32 ) )
           ^
L1589:     (
           ^
L1590:         (
               ^
L1593:         (
               ^
L1596:         (
               ^
L1618:     (
           ^
L1637:     (
           ^
L1667:     ( K_B32 | K_B64 )
           ^
L1686:     (
           ^
L1687:         (
               ^
L1749:     (
           ^
L1750:         (
               ^
L1753:         (
               ^
L1758:         (
               ^
L1762:         (
               ^
L1801:     ( K_U16 | K_U32 | K_U64 | K_S16 | K_S32 | K_S64 )
           ^
L1831:     (
           ^
L1832:         (
               ^
L1835:         (
               ^
L1855:     ( K_U16 | K_U32 | K_U64 | K_S16 | K_S32 | K_S64 )
           ^
L1874:     ( K_B16 | K_B32 | K_B64 | K_U16 | K_U32 | K_U64 | K_S16 | K_S32 | K_S64 | K_F32 | K_F64 )
           ^
L1896:     (
           ^
L1897:         (
               ^
L1921:     (
           ^
L1922:         (
               ^
L1952:     (
           ^
L1953:         (
               ^
L1976:     (
           ^
L1977:         (
               ^
L2001:     (
           ^
L2020:     (
           ^
L2058:     (
           ^
L2059:         (
               ^
L2063:         (
               ^
L2085:     (
           ^
L2086:         (
               ^
L2089:         (
               ^
L2094:         (
               ^
L2115:     (
           ^
L2116:         (
               ^
L2122:         (
               ^
L2127:         (
               ^
L2150:     (
           ^
L2151:         (
               ^
L2152:             ( ( K_SAT K_S32 ) | ( K_U16 | K_U32 | K_U64 | K_S16 | K_S32 | K_S64) ) |
                   ^
L2152:             ( ( K_SAT K_S32 ) | ( K_U16 | K_U32 | K_U64 | K_S16 | K_S32 | K_S64) ) |
                     ^
L2152:             ( ( K_SAT K_S32 ) | ( K_U16 | K_U32 | K_U64 | K_S16 | K_S32 | K_S64) ) |
                                       ^
L2153:             ( K_CC ( K_S32 | K_U32 ) )
                   ^
L2155:         (
               ^
L2158:         ( ( K_RN | K_RZ | K_RM | K_RP )? K_F64 )
               ^
L2178:     (
           ^
L2179:         ( ( K_SAT K_S32 ) | ( K_U16 | K_U32 | K_U64 | K_S16 | K_S32 | K_S64) ) |
               ^
L2179:         ( ( K_SAT K_S32 ) | ( K_U16 | K_U32 | K_U64 | K_S16 | K_S32 | K_S64) ) |
                 ^
L2179:         ( ( K_SAT K_S32 ) | ( K_U16 | K_U32 | K_U64 | K_S16 | K_S32 | K_S64) ) |
                                   ^
L2180:         ( K_CC ( K_S32 | K_U32 ) )
               ^
L2200:     (
           ^
L2201:         (
               ^
L2209:         (
               ^
L2234:     (
           ^
L2235:         (
               ^
L2243:         (
               ^
L2268:     (
           ^
L2269:         (
               ^
L2277:         (
               ^
L2340:     (
           ^
L2341:         (
               ^
L2365:         (
               ^
L2366:             ( K_WIDTH | K_HEIGHT | K_DEPTH | K_CHANNEL_DATA_TYPE | K_CHANNEL_ORDER | K_NORMALIZED_COORDS )
                   ^
L2368:         (
               ^
L2369:             ( K_FILTER_MODE | K_ADDR_MODE_0 | K_ADDR_MODE_1 | K_ADDR_MODE_2 )
                   ^
L2439:     (
           ^
L2440:         (
               ^
L2444:         (
               ^
L2465:     (
           ^
L2523:     : (
             ^
L2524:         (
               ^
L2530:         ( // aggregate
               ^
L2814: T_FLT_LITERAL: ( '0' ('f' | 'F' | 'd' | 'D') ('0' .. '9' | 'a' .. 'f' |  'A' .. 'F' )+ | '.' ('0' .. '9')+ | ('0' .. '9')+ '.' | ('0' .. '9')+ '.' ('0' .. '9')+ );
                      ^
L2817: T_DEC_LITERAL: ('0' .. '9') ( '0' .. '9')* 'U'?;
                      ^
L2909: T_STRING:  '"' ( ~('"') )* '"';
                      ^
L3006: T_WORD: (('a'..'z' | 'A'..'Z' ) FollowSym*) | (('_' | '%' | '$' ) FollowSym+ );
               ^
L3006: T_WORD: (('a'..'z' | 'A'..'Z' ) FollowSym*) | (('_' | '%' | '$' ) FollowSym+ );
                                                     ^
L3021:     :   '\\' ('0'..'3') ('0'..'7') ('0'..'7')
                    ^
L3021:     :   '\\' ('0'..'3') ('0'..'7') ('0'..'7')
                               ^
L3021:     :   '\\' ('0'..'3') ('0'..'7') ('0'..'7')
                                          ^
L3022:     |   '\\' ('0'..'7') ('0'..'7')
                    ^
L3022:     |   '\\' ('0'..'7') ('0'..'7')
                               ^
L3023:     |   '\\' ('0'..'7')
                    ^
L3028:     : ( 'a'..'z' | 'A'..'Z' | '0'..'9' | '_' | '$' )
             ^
L2909: T_STRING:  '"' ( ~('"') )* '"';
                         ^
./asn/asn
./asn/asn_3gpp
./atl
./awk
./b
L40:    : (name constant? (ival (',' ival)*)* ';')
          ^
L41:    | (name '(' (name (',' name)*)? ')' statement)
          ^
L52:    | (name ':' statement)
          ^
L128:    : ('(' rvalue ')')
           ^
L131:    | (incdec name)
           ^
L132:    | (name incdec)
           ^
L133:    | (unary rvalue)
           ^
L134:    | ('&' name)
           ^
L180:    | ('*' rvalue)
           ^
L181:    | (rvalue '[' rvalue ']')
           ^
./basic
L38:    : (linenumber ((amprstmt (COLON amprstmt?)*) | (COMMENT | REM)))
          ^
L38:    : (linenumber ((amprstmt (COLON amprstmt?)*) | (COMMENT | REM)))
                       ^
L38:    : (linenumber ((amprstmt (COLON amprstmt?)*) | (COMMENT | REM)))
                                                       ^
L50:    : (amperoper? statement)
          ^
L51:    | (COMMENT | REM)
          ^
L55:    : (CLS | LOAD | SAVE | TRACE | NOTRACE | FLASH | INVERSE | GR | NORMAL | SHLOAD | CLEAR | RUN | STOP | TEXT | HOME | HGR | HGR2)
          ^
L131:    : (GTE)
           ^
L132:    | (GT EQ)
           ^
L133:    | (EQ GT)
           ^
L135:    | (LT EQ)
           ^
L136:    | (EQ LT)
           ^
L371:    | (LPAREN expression RPAREN)
           ^
L391:    : addingExpression ((relop) addingExpression)?
                             ^
L396:    | (relationalExpression ((AND | OR) relationalExpression)*)
           ^
L409:    : (DOLLAR | PERCENT)
           ^
./bcl
L41:    | ('1' term term)
          ^
./bcpl
bcpl.g4:L114: program : (declaration_part | directive) ;
                        ^
origbcpl.g4:L114: program : (declaration_part | directive) ;
                            ^
./bdf
./bencoding
./bibcode
./bibtex
./bicep
./bnf
./c
L64:     | ('++' | '--')
           ^
L193:     :   ('void'
              ^
L277:     :   ('inline'
              ^
L308:     :   ('__cdecl' 
              ^
L480:     |   ('continue'| 'break')
              ^
L854:     :   '#' Whitespace? 'include' Whitespace? (('"' ~[\r\n]* '"') | ('<' ~[\r\n]* '>' )) Whitespace? Newline
                                                     ^
L854:     :   '#' Whitespace? 'include' Whitespace? (('"' ~[\r\n]* '"') | ('<' ~[\r\n]* '>' )) Whitespace? Newline
                                                                          ^
./calculator
L228:    : ('a' .. 'z') | ('A' .. 'Z') | '_'
           ^
L228:    : ('a' .. 'z') | ('A' .. 'Z') | '_'
                          ^
L233:    : VALID_ID_START | ('0' .. '9')
                            ^
L258:    : ('+' | '-')
           ^
./callable
./capnproto
./caql
Metrics.g4:L4:     op=(AND|OR) LEFT_PAREN metricsName=STRING COLON metricsValue=STRING (metricsMult)* RIGHT_PAREN
                                                                                       ^
./cayenne
L36:  | 'data' (conid (type_)* '|')*
                      ^
./chip8
./clf
./clif
L100:  | OPEN term OPEN 'cl-roleset' (OPEN name term CLOSE) CLOSE CLOSE
                                     ^
L228:  : ( CHAR  (CHAR | STRINGQUOTE | NAMEQUOTE | BACKSLASH)* )
         ^
./clojure
L227: PARAM_NAME: '%' ((('1'..'9')('0'..'9')*)|'&')? ;
                       ^
L227: PARAM_NAME: '%' ((('1'..'9')('0'..'9')*)|'&')? ;
                        ^
./clu
./cmake
./cobol85
Cobol85.g4:L136:    : PROGRAM? COLLATING? SEQUENCE (IS? alphabetName+) collatingSequenceClauseAlphanumeric? collatingSequenceClauseNational?
                                                   ^
Cobol85.g4:L218:    : DEFAULT (COMPUTATIONAL | COMP)? (SIGN IS?)? (LEADING | TRAILING)? (SEPARATE CHARACTER?)
                                                                                        ^
Cobol85.g4:L510:    : CD cdName FOR? INITIAL? INPUT ((symbolicQueueClause | symbolicSubQueueClause | messageDateClause | messageTimeClause | symbolicSourceClause | textLengthClause | endKeyClause | statusKeyClause | messageCountClause) | dataDescName)* DOT_FS
                                                     ^
Cobol85.g4:L518:    : CD cdName FOR? INITIAL I_O ((messageDateClause | messageTimeClause | symbolicTerminalClause | textLengthClause | endKeyClause | statusKeyClause) | dataDescName)* DOT_FS
                                                  ^
Cobol85.g4:L590:    : INTEGERLITERAL (FILLER | screenName)? (screenDescriptionBlankClause | screenDescriptionBellClause | screenDescriptionBlinkClause | screenDescriptionEraseClause | screenDescriptionLightClause | screenDescriptionGridClause | screenDescriptionReverseVideoClause | screenDescriptionUnderlineClause | screenDescriptionSizeClause | screenDescriptionLineClause | screenDescriptionColumnClause | screenDescriptionForegroundColorClause | screenDescriptionBackgroundColorClause | screenDescriptionControlClause | screenDescriptionValueClause | screenDescriptionPictureClause | (screenDescriptionFromClause | screenDescriptionUsingClause) | screenDescriptionUsageClause | screenDescriptionBlankWhenZeroClause | screenDescriptionJustifiedClause | screenDescriptionSignClause | screenDescriptionAutoClause | screenDescriptionSecureClause | screenDescriptionRequiredClause | screenDescriptionPromptClause | screenDescriptionFullClause | screenDescriptionZeroFillClause)* DOT_FS
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             ^
Cobol85.g4:L650:    : (VALUE IS?) literal
                      ^
Cobol85.g4:L670:    : (USAGE IS?) (DISPLAY | DISPLAY_1)
                      ^
Cobol85.g4:L764:    : integerLiteral dataName? (reportGroupPictureClause | reportGroupUsageClause | reportGroupSignClause | reportGroupJustifiedClause | reportGroupBlankWhenZeroClause | reportGroupLineNumberClause | reportGroupColumnNumberClause | (reportGroupSourceClause | reportGroupValueClause | reportGroupSumClause | reportGroupResetClause) | reportGroupIndicateClause)* DOT_FS
                                                                                                                                                                                                                                                        ^
Cobol85.g4:L1110:    : (OPTIONAL? (identifier | fileName)) | ANY
                       ^
Cobol85.g4:L1250:    : ((ADDRESS OF | INTEGER | STRING)? identifier | literal | fileName) | OMITTED
                       ^
Cobol85.g4:L1856:    : STATUS IN? (identifier)
                                  ^
Cobol85Preprocessor.g4:L41:    | (COMPILE | C_CHAR) 
                                 ^
Cobol85Preprocessor.g4:L47:    | (DECK | D_CHAR) 
                                 ^
Cobol85Preprocessor.g4:L49:    | (DIAGTRUNC | DTR)
                                 ^
Cobol85Preprocessor.g4:L51:    | (DUMP | DU) 
                                 ^
Cobol85Preprocessor.g4:L52:    | (DYNAM | DYN)
                                 ^
Cobol85Preprocessor.g4:L55:    | (EXPORTALL | EXP)
                                 ^
Cobol85Preprocessor.g4:L56:    | (FASTSRT | FSRT) 
                                 ^
Cobol85Preprocessor.g4:L76:    | (NOCURRENCY | NOCURR)
                                 ^
Cobol85Preprocessor.g4:L77:    | (NODATEPROC | NODP) 
                                 ^
Cobol85Preprocessor.g4:L79:    | (NODECK | NOD) 
                                 ^
Cobol85Preprocessor.g4:L81:    | (NODUMP | NODU)
                                 ^
Cobol85Preprocessor.g4:L82:    | (NODIAGTRUNC | NODTR) 
                                 ^
Cobol85Preprocessor.g4:L83:    | (NODYNAM | NODYN)
                                 ^
Cobol85Preprocessor.g4:L85:    | (NOEXPORTALL | NOEXP)
                                 ^
Cobol85Preprocessor.g4:L86:    | (NOFASTSRT | NOFSRT)
                                 ^
Cobol85Preprocessor.g4:L88:    | (NOFLAG | NOF) 
                                 ^
Cobol85Preprocessor.g4:L93:    | (NOMDECK | NOMD)
                                 ^
Cobol85Preprocessor.g4:L95:    | (NONUMBER | NONUM)
                                 ^
Cobol85Preprocessor.g4:L96:    | (NOOBJECT | NOOBJ) 
                                 ^
Cobol85Preprocessor.g4:L97:    | (NOOFFSET | NOOFF) 
                                 ^
Cobol85Preprocessor.g4:L99:    | (NOOPTIMIZE | NOOPT) 
                                 ^
Cobol85Preprocessor.g4:L103:    | (NOSEQUENCE | NOSEQ) 
                                  ^
Cobol85Preprocessor.g4:L104:    | (NOSOURCE | NOS) 
                                  ^
Cobol85Preprocessor.g4:L106:    | (NOSQLCCSID | NOSQLC) 
                                  ^
Cobol85Preprocessor.g4:L107:    | (NOSSRANGE | NOSSR) 
                                  ^
Cobol85Preprocessor.g4:L109:    | (NOTERMINAL | NOTERM) | NOTEST | NOTHREAD
                                  ^
Cobol85Preprocessor.g4:L111:    | (NOWORD | NOWD)
                                  ^
Cobol85Preprocessor.g4:L115:    | (NOXREF | NOX)
                                  ^
Cobol85Preprocessor.g4:L117:    | (NUMBER | NUM)
                                  ^
Cobol85Preprocessor.g4:L119:    | (OBJECT | OBJ) 
                                  ^
Cobol85Preprocessor.g4:L120:    | (OFFSET | OFF)
                                  ^
Cobol85Preprocessor.g4:L128:    | (QUOTE | Q_CHAR)
                                  ^
Cobol85Preprocessor.g4:L133:    | (SOURCE | S_CHAR)
                                  ^
Cobol85Preprocessor.g4:L138:    | (SQLCCSID | SQLC) 
                                  ^
Cobol85Preprocessor.g4:L139:    | (SSRANGE | SSR) 
                                  ^
Cobol85Preprocessor.g4:L141:    | (TERMINAL | TERM)
                                  ^
Cobol85.g4:L3221: fragment A:('a'|'A');
                             ^
Cobol85.g4:L3222: fragment B:('b'|'B');
                             ^
Cobol85.g4:L3223: fragment C:('c'|'C');
                             ^
Cobol85.g4:L3224: fragment D:('d'|'D');
                             ^
Cobol85.g4:L3225: fragment E:('e'|'E');
                             ^
Cobol85.g4:L3226: fragment F:('f'|'F');
                             ^
Cobol85.g4:L3227: fragment G:('g'|'G');
                             ^
Cobol85.g4:L3228: fragment H:('h'|'H');
                             ^
Cobol85.g4:L3229: fragment I:('i'|'I');
                             ^
Cobol85.g4:L3230: fragment J:('j'|'J');
                             ^
Cobol85.g4:L3231: fragment K:('k'|'K');
                             ^
Cobol85.g4:L3232: fragment L:('l'|'L');
                             ^
Cobol85.g4:L3233: fragment M:('m'|'M');
                             ^
Cobol85.g4:L3234: fragment N:('n'|'N');
                             ^
Cobol85.g4:L3235: fragment O:('o'|'O');
                             ^
Cobol85.g4:L3236: fragment P:('p'|'P');
                             ^
Cobol85.g4:L3237: fragment Q:('q'|'Q');
                             ^
Cobol85.g4:L3238: fragment R:('r'|'R');
                             ^
Cobol85.g4:L3239: fragment S:('s'|'S');
                             ^
Cobol85.g4:L3240: fragment T:('t'|'T');
                             ^
Cobol85.g4:L3241: fragment U:('u'|'U');
                             ^
Cobol85.g4:L3242: fragment V:('v'|'V');
                             ^
Cobol85.g4:L3243: fragment W:('w'|'W');
                             ^
Cobol85.g4:L3244: fragment X:('x'|'X');
                             ^
Cobol85.g4:L3245: fragment Y:('y'|'Y');
                             ^
Cobol85.g4:L3246: fragment Z:('z'|'Z');
                             ^
Cobol85Preprocessor.g4:L645: fragment A:('a'|'A');
                                        ^
Cobol85Preprocessor.g4:L646: fragment B:('b'|'B');
                                        ^
Cobol85Preprocessor.g4:L647: fragment C:('c'|'C');
                                        ^
Cobol85Preprocessor.g4:L648: fragment D:('d'|'D');
                                        ^
Cobol85Preprocessor.g4:L649: fragment E:('e'|'E');
                                        ^
Cobol85Preprocessor.g4:L650: fragment F:('f'|'F');
                                        ^
Cobol85Preprocessor.g4:L651: fragment G:('g'|'G');
                                        ^
Cobol85Preprocessor.g4:L652: fragment H:('h'|'H');
                                        ^
Cobol85Preprocessor.g4:L653: fragment I:('i'|'I');
                                        ^
Cobol85Preprocessor.g4:L654: fragment J:('j'|'J');
                                        ^
Cobol85Preprocessor.g4:L655: fragment K:('k'|'K');
                                        ^
Cobol85Preprocessor.g4:L656: fragment L:('l'|'L');
                                        ^
Cobol85Preprocessor.g4:L657: fragment M:('m'|'M');
                                        ^
Cobol85Preprocessor.g4:L658: fragment N:('n'|'N');
                                        ^
Cobol85Preprocessor.g4:L659: fragment O:('o'|'O');
                                        ^
Cobol85Preprocessor.g4:L660: fragment P:('p'|'P');
                                        ^
Cobol85Preprocessor.g4:L661: fragment Q:('q'|'Q');
                                        ^
Cobol85Preprocessor.g4:L662: fragment R:('r'|'R');
                                        ^
Cobol85Preprocessor.g4:L663: fragment S:('s'|'S');
                                        ^
Cobol85Preprocessor.g4:L664: fragment T:('t'|'T');
                                        ^
Cobol85Preprocessor.g4:L665: fragment U:('u'|'U');
                                        ^
Cobol85Preprocessor.g4:L666: fragment V:('v'|'V');
                                        ^
Cobol85Preprocessor.g4:L667: fragment W:('w'|'W');
                                        ^
Cobol85Preprocessor.g4:L668: fragment X:('x'|'X');
                                        ^
Cobol85Preprocessor.g4:L669: fragment Y:('y'|'Y');
                                        ^
Cobol85Preprocessor.g4:L670: fragment Z:('z'|'Z');
                                        ^
./cookie
L70:    : '"' (~ ('"' | '\n'))* '"'
              ^
./cpp
CPP14Parser.g4:L129:   | (LeftParen theTypeId RightParen)
                         ^
CPP14Parser.g4:L444:  Using ((Typename_? nestedNameSpecifier) | Doublecolon) unqualifiedId Semi;
                             ^
CPP14Parser.g4:L565:  attributeSpecifierSeq? declSpecifierSeq (
                                                              ^
CPP14Parser.g4:L712:  ) ((Ellipsis? Identifier?) | (Identifier? Assign theTypeId));
                         ^
CPP14Parser.g4:L712:  ) ((Ellipsis? Identifier?) | (Identifier? Assign theTypeId));
                                                   ^
CPP14Lexer.g4:L353:  | ('\\' ('\r' '\n'? | '\n'))
                       ^
CPP14Lexer.g4:L385: fragment Rawstring: 'R"' (( '\\' ["()] )|~[\r\n (])*? '(' ~[)]*? ')'  (( '\\' ["()]) | ~[\r\n "])*? '"';
                                              ^
CPP14Lexer.g4:L385: fragment Rawstring: 'R"' (( '\\' ["()] )|~[\r\n (])*? '(' ~[)]*? ')'  (( '\\' ["()]) | ~[\r\n "])*? '"';
                                                                                           ^
./cql
./cql3
CqlParser.g4:L102:    : (kwAll | kwAllPermissions)
                        ^
CqlParser.g4:L119:    | (kwTable)? (keyspace DOT)? table
                        ^
CqlParser.g4:L316:    : kwWith (roleWithOptions (kwAnd roleWithOptions)*)
                               ^
CqlParser.g4:L418:    : (columnDefinition) (syntaxComma columnDefinition)* (syntaxComma primaryKeyElement)?
                        ^
CqlParser.g4:L446:    : partitionKey (syntaxComma clusteringKeyList)
                                     ^
CqlParser.g4:L450:    : syntaxBracketLr partitionKeyList syntaxBracketRr (syntaxComma clusteringKeyList)
                                                                         ^
CqlParser.g4:L454:    : (partitionKey) (syntaxComma partitionKey)*
                        ^
CqlParser.g4:L458:    : (clusteringKey) (syntaxComma clusteringKey)*
                        ^
CqlParser.g4:L487:    : (replicationListItem) (syntaxComma replicationListItem)*
                        ^
CqlParser.g4:L504:    : kwTruncate (kwTable)? (keyspace DOT)? table
                                   ^
CqlParser.g4:L540:    : (deleteColumnItem) (syntaxComma deleteColumnItem)*
                        ^
CqlParser.g4:L557:    : (ifCondition) (kwAnd ifCondition)*
                        ^
CqlParser.g4:L565:    : (assignmentElement) (syntaxComma assignmentElement)*
                        ^
CqlParser.g4:L585:    : syntaxBracketLc (constant syntaxColon constant) (syntaxComma constant syntaxColon constant)* syntaxBracketRc
                                        ^
CqlParser.g4:L593:    : syntaxBracketLr ( expression (syntaxComma expression)* ) syntaxBracketRr
                                        ^
CqlParser.g4:L701:    : (relationElement) (kwAnd relationElement)*
                        ^
CqlParser.g4:L711:    | '(' OBJECT_NAME (syntaxComma OBJECT_NAME)* ')' (OPERATOR_EQ | OPERATOR_LT | OPERATOR_GT | OPERATOR_LTE | OPERATOR_GTE) ( assignmentTuple (syntaxComma assignmentTuple)* )
                                                                                                                                               ^
CqlParser.g4:L721:    : OBJECT_NAME (kwContains kwKey) constant
                                    ^
./creole
L82:    : ('*' + markup)
          ^
L83:    | ('#' + markup)
          ^
./csharp
CSharpParser.g4:L203:    (((member_access | method_invocation | '++' | '--' | '->' identifier) '!'?) bracket_expression* '!'?)*
                          ^
CSharpParser.g4:L538:  : specific_catch_clause (specific_catch_clause)* general_catch_clause?
                                               ^
./css3
./csv
./ctl
./cto
CtoParser.g4:L51:     : (assetDeclaration
                        ^
CtoParser.g4:L102: extendsOrIdentified: ((EXTENDS IDENTIFIER) | identified);
                                        ^
CtoParser.g4:L102: extendsOrIdentified: ((EXTENDS IDENTIFIER) | identified);
                                         ^
CtoParser.g4:L104: identified: (IDENTIFIED IDENTIFIER);
                               ^
CtoParser.g4:L123:     : VAR IDENTIFIER (square)*;
                                        ^
CtoParser.g4:L126:     : VAR numericPrimitive (square)*;
                                              ^
CtoParser.g4:L135:     : VAR BOOLEAN (square)*;
                                     ^
CtoParser.g4:L138:     : VAR DATE_TIME (square)*;
                                       ^
CtoParser.g4:L147:     : VAR STRING (square)*;
                                    ^
CtoParser.g4:L150:     : REF IDENTIFIER (square)*;
                                        ^
CtoParser.g4:L159:     : ('[' numberLiteral ',' ']')
                         ^
CtoParser.g4:L160:     | ('[' ',' numberLiteral ']')
                         ^
CtoParser.g4:L161:     | ('[' numberLiteral ',' numberLiteral ']');
                         ^
CtoParser.g4:L164:     : (DEFAULT ASSIGN BOOL_LITERAL);
                         ^
CtoParser.g4:L167:     : (DEFAULT ASSIGN stringLiteral);
                         ^
CtoParser.g4:L170:     : (DEFAULT ASSIGN numberLiteral);
                         ^
CtoLexer.g4:L113:     : '-' [01][0-2] (':' (HalfHour))?
                                           ^
./cypher
CypherParser.g4:L330:     : invocationName LPAREN DISTINCT? (expressionChain)? RPAREN
                                                            ^
CypherParser.g4:L404:     : LBRACK (expressionChain)? RBRACK
                                   ^
./dart2
Dart2Parser.g4:L82: enumType : ENUM_ identifier OBC enumEntry ( C enumEntry )* ( C )? CBC ;
                                                                               ^
Dart2Lexer.g4:L152: SingleLineString : StringDQ | StringSQ | 'r\'' (~('\'' | '\n' | '\r'))* '\'' | 'r"' (~('"' | '\n' | '\r'))* '"' ;
                                                                   ^
Dart2Lexer.g4:L152: SingleLineString : StringDQ | StringSQ | 'r\'' (~('\'' | '\n' | '\r'))* '\'' | 'r"' (~('"' | '\n' | '\r'))* '"' ;
                                                                                                        ^
./databank
L85:    : ('+' | '-')
          ^
./datalog
L124:    : '#' (~ [\n\r])* -> skip
               ^
./dcm
L6:    : ( '\n' )* 'KONSERVIERUNG_FORMAT 2.0' ( '\n' )+ kons_kopf kons_rumpf EOF
         ^
L6:    : ( '\n' )* 'KONSERVIERUNG_FORMAT 2.0' ( '\n' )+ kons_kopf kons_rumpf EOF
                                              ^
L10:    : ( modulkopf_info )? ( funktionsdef )? ( variantendef )?
          ^
L10:    : ( modulkopf_info )? ( funktionsdef )? ( variantendef )?
                              ^
L10:    : ( modulkopf_info )? ( funktionsdef )? ( variantendef )?
                                                ^
L14:    : ( mod_zeile )+
          ^
L18:    : mod_anf_zeile ( mod_fort_zeile )*
                        ^
L34:    : TEXT ( '\n' )+
               ^
L38:    : 'FUNKTIONEN' '\n' ( funktionszeile )+ 'END' ( '\n' )+
                            ^
L38:    : 'FUNKTIONEN' '\n' ( funktionszeile )+ 'END' ( '\n' )+
                                                      ^
L50:    : TEXT ( '\n' )+
               ^
L54:    : 'VARIANTENKODIERUNG' '\n' ( variantenkrit )+ 'END' ( '\n' )+
                                    ^
L54:    : 'VARIANTENKODIERUNG' '\n' ( variantenkrit )+ 'END' ( '\n' )+
                                                             ^
L58:    : 'KRITERIUM' krit_name ( krit_wert )* ( '\n' )+
                                ^
L58:    : 'KRITERIUM' krit_name ( krit_wert )* ( '\n' )+
                                               ^
L70:    : ( kenngroesse )*
          ^
L74:    : ( kennwert | kennwerteblock | kennlinie | kennfeld | gruppenstuetzstellen | kenntext )
          ^
L78:    : 'FESTWERT' NAME '\n' kgr_info ( einheit_w )? 'WERT' realzahl '\n' 'END' ( '\n' )+ | 'FESTWERT' NAME '\n' kgr_info ( einheit_w )? 'TEXT' TEXT '\n' 'END' ( '\n' )+
                                        ^
L78:    : 'FESTWERT' NAME '\n' kgr_info ( einheit_w )? 'WERT' realzahl '\n' 'END' ( '\n' )+ | 'FESTWERT' NAME '\n' kgr_info ( einheit_w )? 'TEXT' TEXT '\n' 'END' ( '\n' )+
                                                                                  ^
L78:    : 'FESTWERT' NAME '\n' kgr_info ( einheit_w )? 'WERT' realzahl '\n' 'END' ( '\n' )+ | 'FESTWERT' NAME '\n' kgr_info ( einheit_w )? 'TEXT' TEXT '\n' 'END' ( '\n' )+
                                                                                                                            ^
L78:    : 'FESTWERT' NAME '\n' kgr_info ( einheit_w )? 'WERT' realzahl '\n' 'END' ( '\n' )+ | 'FESTWERT' NAME '\n' kgr_info ( einheit_w )? 'TEXT' TEXT '\n' 'END' ( '\n' )+
                                                                                                                                                                  ^
L82:    : 'FESTWERTEBLOCK' NAME anzahl_x '\n' kgr_info ( einheit_w )? ( werteliste_kwb )+ 'END' ( '\n' )+
                                                       ^
L82:    : 'FESTWERTEBLOCK' NAME anzahl_x '\n' kgr_info ( einheit_w )? ( werteliste_kwb )+ 'END' ( '\n' )+
                                                                      ^
L82:    : 'FESTWERTEBLOCK' NAME anzahl_x '\n' kgr_info ( einheit_w )? ( werteliste_kwb )+ 'END' ( '\n' )+
                                                                                                ^
L86:    : ( 'KENNLINIE' ) NAME anzahl_x '\n' kgr_info ( einheit_x )? ( einheit_w )? ( sst_liste_x )+ ( werteliste )+ 'END' ( '\n' )+ | ( 'FESTKENNLINIE' ) NAME anzahl_x '\n' kgr_info ( einheit_x )? ( einheit_w )? ( sst_liste_x )+ ( werteliste )+ 'END' ( '\n' )+ | ( 'GRUPPENKENNLINIE' ) NAME anzahl_x '\n' kgr_info ( einheit_x )? ( einheit_w )? ( sst_liste_x )+ ( werteliste )+ 'END' ( '\n' )+
          ^
L86:    : ( 'KENNLINIE' ) NAME anzahl_x '\n' kgr_info ( einheit_x )? ( einheit_w )? ( sst_liste_x )+ ( werteliste )+ 'END' ( '\n' )+ | ( 'FESTKENNLINIE' ) NAME anzahl_x '\n' kgr_info ( einheit_x )? ( einheit_w )? ( sst_liste_x )+ ( werteliste )+ 'END' ( '\n' )+ | ( 'GRUPPENKENNLINIE' ) NAME anzahl_x '\n' kgr_info ( einheit_x )? ( einheit_w )? ( sst_liste_x )+ ( werteliste )+ 'END' ( '\n' )+
                                                      ^
L86:    : ( 'KENNLINIE' ) NAME anzahl_x '\n' kgr_info ( einheit_x )? ( einheit_w )? ( sst_liste_x )+ ( werteliste )+ 'END' ( '\n' )+ | ( 'FESTKENNLINIE' ) NAME anzahl_x '\n' kgr_info ( einheit_x )? ( einheit_w )? ( sst_liste_x )+ ( werteliste )+ 'END' ( '\n' )+ | ( 'GRUPPENKENNLINIE' ) NAME anzahl_x '\n' kgr_info ( einheit_x )? ( einheit_w )? ( sst_liste_x )+ ( werteliste )+ 'END' ( '\n' )+
                                                                     ^
L86:    : ( 'KENNLINIE' ) NAME anzahl_x '\n' kgr_info ( einheit_x )? ( einheit_w )? ( sst_liste_x )+ ( werteliste )+ 'END' ( '\n' )+ | ( 'FESTKENNLINIE' ) NAME anzahl_x '\n' kgr_info ( einheit_x )? ( einheit_w )? ( sst_liste_x )+ ( werteliste )+ 'END' ( '\n' )+ | ( 'GRUPPENKENNLINIE' ) NAME anzahl_x '\n' kgr_info ( einheit_x )? ( einheit_w )? ( sst_liste_x )+ ( werteliste )+ 'END' ( '\n' )+
                                                                                    ^
L86:    : ( 'KENNLINIE' ) NAME anzahl_x '\n' kgr_info ( einheit_x )? ( einheit_w )? ( sst_liste_x )+ ( werteliste )+ 'END' ( '\n' )+ | ( 'FESTKENNLINIE' ) NAME anzahl_x '\n' kgr_info ( einheit_x )? ( einheit_w )? ( sst_liste_x )+ ( werteliste )+ 'END' ( '\n' )+ | ( 'GRUPPENKENNLINIE' ) NAME anzahl_x '\n' kgr_info ( einheit_x )? ( einheit_w )? ( sst_liste_x )+ ( werteliste )+ 'END' ( '\n' )+
                                                                                                     ^
L86:    : ( 'KENNLINIE' ) NAME anzahl_x '\n' kgr_info ( einheit_x )? ( einheit_w )? ( sst_liste_x )+ ( werteliste )+ 'END' ( '\n' )+ | ( 'FESTKENNLINIE' ) NAME anzahl_x '\n' kgr_info ( einheit_x )? ( einheit_w )? ( sst_liste_x )+ ( werteliste )+ 'END' ( '\n' )+ | ( 'GRUPPENKENNLINIE' ) NAME anzahl_x '\n' kgr_info ( einheit_x )? ( einheit_w )? ( sst_liste_x )+ ( werteliste )+ 'END' ( '\n' )+
                                                                                                                           ^
L86:    : ( 'KENNLINIE' ) NAME anzahl_x '\n' kgr_info ( einheit_x )? ( einheit_w )? ( sst_liste_x )+ ( werteliste )+ 'END' ( '\n' )+ | ( 'FESTKENNLINIE' ) NAME anzahl_x '\n' kgr_info ( einheit_x )? ( einheit_w )? ( sst_liste_x )+ ( werteliste )+ 'END' ( '\n' )+ | ( 'GRUPPENKENNLINIE' ) NAME anzahl_x '\n' kgr_info ( einheit_x )? ( einheit_w )? ( sst_liste_x )+ ( werteliste )+ 'END' ( '\n' )+
                                                                                                                                       ^
L86:    : ( 'KENNLINIE' ) NAME anzahl_x '\n' kgr_info ( einheit_x )? ( einheit_w )? ( sst_liste_x )+ ( werteliste )+ 'END' ( '\n' )+ | ( 'FESTKENNLINIE' ) NAME anzahl_x '\n' kgr_info ( einheit_x )? ( einheit_w )? ( sst_liste_x )+ ( werteliste )+ 'END' ( '\n' )+ | ( 'GRUPPENKENNLINIE' ) NAME anzahl_x '\n' kgr_info ( einheit_x )? ( einheit_w )? ( sst_liste_x )+ ( werteliste )+ 'END' ( '\n' )+
                                                                                                                                                                                       ^
L86:    : ( 'KENNLINIE' ) NAME anzahl_x '\n' kgr_info ( einheit_x )? ( einheit_w )? ( sst_liste_x )+ ( werteliste )+ 'END' ( '\n' )+ | ( 'FESTKENNLINIE' ) NAME anzahl_x '\n' kgr_info ( einheit_x )? ( einheit_w )? ( sst_liste_x )+ ( werteliste )+ 'END' ( '\n' )+ | ( 'GRUPPENKENNLINIE' ) NAME anzahl_x '\n' kgr_info ( einheit_x )? ( einheit_w )? ( sst_liste_x )+ ( werteliste )+ 'END' ( '\n' )+
                                                                                                                                                                                                      ^
L86:    : ( 'KENNLINIE' ) NAME anzahl_x '\n' kgr_info ( einheit_x )? ( einheit_w )? ( sst_liste_x )+ ( werteliste )+ 'END' ( '\n' )+ | ( 'FESTKENNLINIE' ) NAME anzahl_x '\n' kgr_info ( einheit_x )? ( einheit_w )? ( sst_liste_x )+ ( werteliste )+ 'END' ( '\n' )+ | ( 'GRUPPENKENNLINIE' ) NAME anzahl_x '\n' kgr_info ( einheit_x )? ( einheit_w )? ( sst_liste_x )+ ( werteliste )+ 'END' ( '\n' )+
                                                                                                                                                                                                                     ^
L86:    : ( 'KENNLINIE' ) NAME anzahl_x '\n' kgr_info ( einheit_x )? ( einheit_w )? ( sst_liste_x )+ ( werteliste )+ 'END' ( '\n' )+ | ( 'FESTKENNLINIE' ) NAME anzahl_x '\n' kgr_info ( einheit_x )? ( einheit_w )? ( sst_liste_x )+ ( werteliste )+ 'END' ( '\n' )+ | ( 'GRUPPENKENNLINIE' ) NAME anzahl_x '\n' kgr_info ( einheit_x )? ( einheit_w )? ( sst_liste_x )+ ( werteliste )+ 'END' ( '\n' )+
                                                                                                                                                                                                                                      ^
L86:    : ( 'KENNLINIE' ) NAME anzahl_x '\n' kgr_info ( einheit_x )? ( einheit_w )? ( sst_liste_x )+ ( werteliste )+ 'END' ( '\n' )+ | ( 'FESTKENNLINIE' ) NAME anzahl_x '\n' kgr_info ( einheit_x )? ( einheit_w )? ( sst_liste_x )+ ( werteliste )+ 'END' ( '\n' )+ | ( 'GRUPPENKENNLINIE' ) NAME anzahl_x '\n' kgr_info ( einheit_x )? ( einheit_w )? ( sst_liste_x )+ ( werteliste )+ 'END' ( '\n' )+
                                                                                                                                                                                                                                                            ^
L86:    : ( 'KENNLINIE' ) NAME anzahl_x '\n' kgr_info ( einheit_x )? ( einheit_w )? ( sst_liste_x )+ ( werteliste )+ 'END' ( '\n' )+ | ( 'FESTKENNLINIE' ) NAME anzahl_x '\n' kgr_info ( einheit_x )? ( einheit_w )? ( sst_liste_x )+ ( werteliste )+ 'END' ( '\n' )+ | ( 'GRUPPENKENNLINIE' ) NAME anzahl_x '\n' kgr_info ( einheit_x )? ( einheit_w )? ( sst_liste_x )+ ( werteliste )+ 'END' ( '\n' )+
                                                                                                                                                                                                                                                                        ^
L86:    : ( 'KENNLINIE' ) NAME anzahl_x '\n' kgr_info ( einheit_x )? ( einheit_w )? ( sst_liste_x )+ ( werteliste )+ 'END' ( '\n' )+ | ( 'FESTKENNLINIE' ) NAME anzahl_x '\n' kgr_info ( einheit_x )? ( einheit_w )? ( sst_liste_x )+ ( werteliste )+ 'END' ( '\n' )+ | ( 'GRUPPENKENNLINIE' ) NAME anzahl_x '\n' kgr_info ( einheit_x )? ( einheit_w )? ( sst_liste_x )+ ( werteliste )+ 'END' ( '\n' )+
                                                                                                                                                                                                                                                                                                                           ^
L86:    : ( 'KENNLINIE' ) NAME anzahl_x '\n' kgr_info ( einheit_x )? ( einheit_w )? ( sst_liste_x )+ ( werteliste )+ 'END' ( '\n' )+ | ( 'FESTKENNLINIE' ) NAME anzahl_x '\n' kgr_info ( einheit_x )? ( einheit_w )? ( sst_liste_x )+ ( werteliste )+ 'END' ( '\n' )+ | ( 'GRUPPENKENNLINIE' ) NAME anzahl_x '\n' kgr_info ( einheit_x )? ( einheit_w )? ( sst_liste_x )+ ( werteliste )+ 'END' ( '\n' )+
                                                                                                                                                                                                                                                                                                                                          ^
L86:    : ( 'KENNLINIE' ) NAME anzahl_x '\n' kgr_info ( einheit_x )? ( einheit_w )? ( sst_liste_x )+ ( werteliste )+ 'END' ( '\n' )+ | ( 'FESTKENNLINIE' ) NAME anzahl_x '\n' kgr_info ( einheit_x )? ( einheit_w )? ( sst_liste_x )+ ( werteliste )+ 'END' ( '\n' )+ | ( 'GRUPPENKENNLINIE' ) NAME anzahl_x '\n' kgr_info ( einheit_x )? ( einheit_w )? ( sst_liste_x )+ ( werteliste )+ 'END' ( '\n' )+
                                                                                                                                                                                                                                                                                                                                                         ^
L86:    : ( 'KENNLINIE' ) NAME anzahl_x '\n' kgr_info ( einheit_x )? ( einheit_w )? ( sst_liste_x )+ ( werteliste )+ 'END' ( '\n' )+ | ( 'FESTKENNLINIE' ) NAME anzahl_x '\n' kgr_info ( einheit_x )? ( einheit_w )? ( sst_liste_x )+ ( werteliste )+ 'END' ( '\n' )+ | ( 'GRUPPENKENNLINIE' ) NAME anzahl_x '\n' kgr_info ( einheit_x )? ( einheit_w )? ( sst_liste_x )+ ( werteliste )+ 'END' ( '\n' )+
                                                                                                                                                                                                                                                                                                                                                                          ^
L86:    : ( 'KENNLINIE' ) NAME anzahl_x '\n' kgr_info ( einheit_x )? ( einheit_w )? ( sst_liste_x )+ ( werteliste )+ 'END' ( '\n' )+ | ( 'FESTKENNLINIE' ) NAME anzahl_x '\n' kgr_info ( einheit_x )? ( einheit_w )? ( sst_liste_x )+ ( werteliste )+ 'END' ( '\n' )+ | ( 'GRUPPENKENNLINIE' ) NAME anzahl_x '\n' kgr_info ( einheit_x )? ( einheit_w )? ( sst_liste_x )+ ( werteliste )+ 'END' ( '\n' )+
                                                                                                                                                                                                                                                                                                                                                                                                ^
L90:    : ( 'KENNFELD' ) NAME anzahl_x anzahl_y '\n' kgr_info ( einheit_x )? ( einheit_y )? ( einheit_w )? ( sst_liste_x )+ kf_zeile_liste 'END' ( '\n' )+ | ( 'FESTKENNFELD' ) NAME anzahl_x anzahl_y '\n' kgr_info ( einheit_x )? ( einheit_y )? ( einheit_w )? ( sst_liste_x )+ kf_zeile_liste 'END' ( '\n' )+ | ( 'GRUPPENKENNFELD' ) NAME anzahl_x anzahl_y '\n' kgr_info ( einheit_x )? ( einheit_y )? ( einheit_w )? ( sst_liste_x )+ kf_zeile_liste 'END' ( '\n' )+
          ^
L90:    : ( 'KENNFELD' ) NAME anzahl_x anzahl_y '\n' kgr_info ( einheit_x )? ( einheit_y )? ( einheit_w )? ( sst_liste_x )+ kf_zeile_liste 'END' ( '\n' )+ | ( 'FESTKENNFELD' ) NAME anzahl_x anzahl_y '\n' kgr_info ( einheit_x )? ( einheit_y )? ( einheit_w )? ( sst_liste_x )+ kf_zeile_liste 'END' ( '\n' )+ | ( 'GRUPPENKENNFELD' ) NAME anzahl_x anzahl_y '\n' kgr_info ( einheit_x )? ( einheit_y )? ( einheit_w )? ( sst_liste_x )+ kf_zeile_liste 'END' ( '\n' )+
                                                              ^
L90:    : ( 'KENNFELD' ) NAME anzahl_x anzahl_y '\n' kgr_info ( einheit_x )? ( einheit_y )? ( einheit_w )? ( sst_liste_x )+ kf_zeile_liste 'END' ( '\n' )+ | ( 'FESTKENNFELD' ) NAME anzahl_x anzahl_y '\n' kgr_info ( einheit_x )? ( einheit_y )? ( einheit_w )? ( sst_liste_x )+ kf_zeile_liste 'END' ( '\n' )+ | ( 'GRUPPENKENNFELD' ) NAME anzahl_x anzahl_y '\n' kgr_info ( einheit_x )? ( einheit_y )? ( einheit_w )? ( sst_liste_x )+ kf_zeile_liste 'END' ( '\n' )+
                                                                             ^
L90:    : ( 'KENNFELD' ) NAME anzahl_x anzahl_y '\n' kgr_info ( einheit_x )? ( einheit_y )? ( einheit_w )? ( sst_liste_x )+ kf_zeile_liste 'END' ( '\n' )+ | ( 'FESTKENNFELD' ) NAME anzahl_x anzahl_y '\n' kgr_info ( einheit_x )? ( einheit_y )? ( einheit_w )? ( sst_liste_x )+ kf_zeile_liste 'END' ( '\n' )+ | ( 'GRUPPENKENNFELD' ) NAME anzahl_x anzahl_y '\n' kgr_info ( einheit_x )? ( einheit_y )? ( einheit_w )? ( sst_liste_x )+ kf_zeile_liste 'END' ( '\n' )+
                                                                                            ^
L90:    : ( 'KENNFELD' ) NAME anzahl_x anzahl_y '\n' kgr_info ( einheit_x )? ( einheit_y )? ( einheit_w )? ( sst_liste_x )+ kf_zeile_liste 'END' ( '\n' )+ | ( 'FESTKENNFELD' ) NAME anzahl_x anzahl_y '\n' kgr_info ( einheit_x )? ( einheit_y )? ( einheit_w )? ( sst_liste_x )+ kf_zeile_liste 'END' ( '\n' )+ | ( 'GRUPPENKENNFELD' ) NAME anzahl_x anzahl_y '\n' kgr_info ( einheit_x )? ( einheit_y )? ( einheit_w )? ( sst_liste_x )+ kf_zeile_liste 'END' ( '\n' )+
                                                                                                           ^
L90:    : ( 'KENNFELD' ) NAME anzahl_x anzahl_y '\n' kgr_info ( einheit_x )? ( einheit_y )? ( einheit_w )? ( sst_liste_x )+ kf_zeile_liste 'END' ( '\n' )+ | ( 'FESTKENNFELD' ) NAME anzahl_x anzahl_y '\n' kgr_info ( einheit_x )? ( einheit_y )? ( einheit_w )? ( sst_liste_x )+ kf_zeile_liste 'END' ( '\n' )+ | ( 'GRUPPENKENNFELD' ) NAME anzahl_x anzahl_y '\n' kgr_info ( einheit_x )? ( einheit_y )? ( einheit_w )? ( sst_liste_x )+ kf_zeile_liste 'END' ( '\n' )+
                                                                                                                                                 ^
L90:    : ( 'KENNFELD' ) NAME anzahl_x anzahl_y '\n' kgr_info ( einheit_x )? ( einheit_y )? ( einheit_w )? ( sst_liste_x )+ kf_zeile_liste 'END' ( '\n' )+ | ( 'FESTKENNFELD' ) NAME anzahl_x anzahl_y '\n' kgr_info ( einheit_x )? ( einheit_y )? ( einheit_w )? ( sst_liste_x )+ kf_zeile_liste 'END' ( '\n' )+ | ( 'GRUPPENKENNFELD' ) NAME anzahl_x anzahl_y '\n' kgr_info ( einheit_x )? ( einheit_y )? ( einheit_w )? ( sst_liste_x )+ kf_zeile_liste 'END' ( '\n' )+
                                                                                                                                                             ^
L90:    : ( 'KENNFELD' ) NAME anzahl_x anzahl_y '\n' kgr_info ( einheit_x )? ( einheit_y )? ( einheit_w )? ( sst_liste_x )+ kf_zeile_liste 'END' ( '\n' )+ | ( 'FESTKENNFELD' ) NAME anzahl_x anzahl_y '\n' kgr_info ( einheit_x )? ( einheit_y )? ( einheit_w )? ( sst_liste_x )+ kf_zeile_liste 'END' ( '\n' )+ | ( 'GRUPPENKENNFELD' ) NAME anzahl_x anzahl_y '\n' kgr_info ( einheit_x )? ( einheit_y )? ( einheit_w )? ( sst_liste_x )+ kf_zeile_liste 'END' ( '\n' )+
                                                                                                                                                                                                                     ^
L90:    : ( 'KENNFELD' ) NAME anzahl_x anzahl_y '\n' kgr_info ( einheit_x )? ( einheit_y )? ( einheit_w )? ( sst_liste_x )+ kf_zeile_liste 'END' ( '\n' )+ | ( 'FESTKENNFELD' ) NAME anzahl_x anzahl_y '\n' kgr_info ( einheit_x )? ( einheit_y )? ( einheit_w )? ( sst_liste_x )+ kf_zeile_liste 'END' ( '\n' )+ | ( 'GRUPPENKENNFELD' ) NAME anzahl_x anzahl_y '\n' kgr_info ( einheit_x )? ( einheit_y )? ( einheit_w )? ( sst_liste_x )+ kf_zeile_liste 'END' ( '\n' )+
                                                                                                                                                                                                                                    ^
L90:    : ( 'KENNFELD' ) NAME anzahl_x anzahl_y '\n' kgr_info ( einheit_x )? ( einheit_y )? ( einheit_w )? ( sst_liste_x )+ kf_zeile_liste 'END' ( '\n' )+ | ( 'FESTKENNFELD' ) NAME anzahl_x anzahl_y '\n' kgr_info ( einheit_x )? ( einheit_y )? ( einheit_w )? ( sst_liste_x )+ kf_zeile_liste 'END' ( '\n' )+ | ( 'GRUPPENKENNFELD' ) NAME anzahl_x anzahl_y '\n' kgr_info ( einheit_x )? ( einheit_y )? ( einheit_w )? ( sst_liste_x )+ kf_zeile_liste 'END' ( '\n' )+
                                                                                                                                                                                                                                                   ^
L90:    : ( 'KENNFELD' ) NAME anzahl_x anzahl_y '\n' kgr_info ( einheit_x )? ( einheit_y )? ( einheit_w )? ( sst_liste_x )+ kf_zeile_liste 'END' ( '\n' )+ | ( 'FESTKENNFELD' ) NAME anzahl_x anzahl_y '\n' kgr_info ( einheit_x )? ( einheit_y )? ( einheit_w )? ( sst_liste_x )+ kf_zeile_liste 'END' ( '\n' )+ | ( 'GRUPPENKENNFELD' ) NAME anzahl_x anzahl_y '\n' kgr_info ( einheit_x )? ( einheit_y )? ( einheit_w )? ( sst_liste_x )+ kf_zeile_liste 'END' ( '\n' )+
                                                                                                                                                                                                                                                                  ^
L90:    : ( 'KENNFELD' ) NAME anzahl_x anzahl_y '\n' kgr_info ( einheit_x )? ( einheit_y )? ( einheit_w )? ( sst_liste_x )+ kf_zeile_liste 'END' ( '\n' )+ | ( 'FESTKENNFELD' ) NAME anzahl_x anzahl_y '\n' kgr_info ( einheit_x )? ( einheit_y )? ( einheit_w )? ( sst_liste_x )+ kf_zeile_liste 'END' ( '\n' )+ | ( 'GRUPPENKENNFELD' ) NAME anzahl_x anzahl_y '\n' kgr_info ( einheit_x )? ( einheit_y )? ( einheit_w )? ( sst_liste_x )+ kf_zeile_liste 'END' ( '\n' )+
                                                                                                                                                                                                                                                                                                        ^
L90:    : ( 'KENNFELD' ) NAME anzahl_x anzahl_y '\n' kgr_info ( einheit_x )? ( einheit_y )? ( einheit_w )? ( sst_liste_x )+ kf_zeile_liste 'END' ( '\n' )+ | ( 'FESTKENNFELD' ) NAME anzahl_x anzahl_y '\n' kgr_info ( einheit_x )? ( einheit_y )? ( einheit_w )? ( sst_liste_x )+ kf_zeile_liste 'END' ( '\n' )+ | ( 'GRUPPENKENNFELD' ) NAME anzahl_x anzahl_y '\n' kgr_info ( einheit_x )? ( einheit_y )? ( einheit_w )? ( sst_liste_x )+ kf_zeile_liste 'END' ( '\n' )+
                                                                                                                                                                                                                                                                                                                    ^
L90:    : ( 'KENNFELD' ) NAME anzahl_x anzahl_y '\n' kgr_info ( einheit_x )? ( einheit_y )? ( einheit_w )? ( sst_liste_x )+ kf_zeile_liste 'END' ( '\n' )+ | ( 'FESTKENNFELD' ) NAME anzahl_x anzahl_y '\n' kgr_info ( einheit_x )? ( einheit_y )? ( einheit_w )? ( sst_liste_x )+ kf_zeile_liste 'END' ( '\n' )+ | ( 'GRUPPENKENNFELD' ) NAME anzahl_x anzahl_y '\n' kgr_info ( einheit_x )? ( einheit_y )? ( einheit_w )? ( sst_liste_x )+ kf_zeile_liste 'END' ( '\n' )+
                                                                                                                                                                                                                                                                                                                                                                               ^
L90:    : ( 'KENNFELD' ) NAME anzahl_x anzahl_y '\n' kgr_info ( einheit_x )? ( einheit_y )? ( einheit_w )? ( sst_liste_x )+ kf_zeile_liste 'END' ( '\n' )+ | ( 'FESTKENNFELD' ) NAME anzahl_x anzahl_y '\n' kgr_info ( einheit_x )? ( einheit_y )? ( einheit_w )? ( sst_liste_x )+ kf_zeile_liste 'END' ( '\n' )+ | ( 'GRUPPENKENNFELD' ) NAME anzahl_x anzahl_y '\n' kgr_info ( einheit_x )? ( einheit_y )? ( einheit_w )? ( sst_liste_x )+ kf_zeile_liste 'END' ( '\n' )+
                                                                                                                                                                                                                                                                                                                                                                                              ^
L90:    : ( 'KENNFELD' ) NAME anzahl_x anzahl_y '\n' kgr_info ( einheit_x )? ( einheit_y )? ( einheit_w )? ( sst_liste_x )+ kf_zeile_liste 'END' ( '\n' )+ | ( 'FESTKENNFELD' ) NAME anzahl_x anzahl_y '\n' kgr_info ( einheit_x )? ( einheit_y )? ( einheit_w )? ( sst_liste_x )+ kf_zeile_liste 'END' ( '\n' )+ | ( 'GRUPPENKENNFELD' ) NAME anzahl_x anzahl_y '\n' kgr_info ( einheit_x )? ( einheit_y )? ( einheit_w )? ( sst_liste_x )+ kf_zeile_liste 'END' ( '\n' )+
                                                                                                                                                                                                                                                                                                                                                                                                             ^
L90:    : ( 'KENNFELD' ) NAME anzahl_x anzahl_y '\n' kgr_info ( einheit_x )? ( einheit_y )? ( einheit_w )? ( sst_liste_x )+ kf_zeile_liste 'END' ( '\n' )+ | ( 'FESTKENNFELD' ) NAME anzahl_x anzahl_y '\n' kgr_info ( einheit_x )? ( einheit_y )? ( einheit_w )? ( sst_liste_x )+ kf_zeile_liste 'END' ( '\n' )+ | ( 'GRUPPENKENNFELD' ) NAME anzahl_x anzahl_y '\n' kgr_info ( einheit_x )? ( einheit_y )? ( einheit_w )? ( sst_liste_x )+ kf_zeile_liste 'END' ( '\n' )+
                                                                                                                                                                                                                                                                                                                                                                                                                            ^
L90:    : ( 'KENNFELD' ) NAME anzahl_x anzahl_y '\n' kgr_info ( einheit_x )? ( einheit_y )? ( einheit_w )? ( sst_liste_x )+ kf_zeile_liste 'END' ( '\n' )+ | ( 'FESTKENNFELD' ) NAME anzahl_x anzahl_y '\n' kgr_info ( einheit_x )? ( einheit_y )? ( einheit_w )? ( sst_liste_x )+ kf_zeile_liste 'END' ( '\n' )+ | ( 'GRUPPENKENNFELD' ) NAME anzahl_x anzahl_y '\n' kgr_info ( einheit_x )? ( einheit_y )? ( einheit_w )? ( sst_liste_x )+ kf_zeile_liste 'END' ( '\n' )+
                                                                                                                                                                                                                                                                                                                                                                                                                                                                  ^
L94:    : 'STUETZSTELLENVERTEILUNG' NAME anzahl_x '\n' kgr_info ( einheit_x )? ( sst_liste_x )+ 'END' ( '\n' )+
                                                                ^
L94:    : 'STUETZSTELLENVERTEILUNG' NAME anzahl_x '\n' kgr_info ( einheit_x )? ( sst_liste_x )+ 'END' ( '\n' )+
                                                                               ^
L94:    : 'STUETZSTELLENVERTEILUNG' NAME anzahl_x '\n' kgr_info ( einheit_x )? ( sst_liste_x )+ 'END' ( '\n' )+
                                                                                                      ^
L98:    : 'TEXTSTRING' NAME '\n' kgr_info 'TEXT' TEXT '\n' 'END' ( '\n' )+
                                                                 ^
L102:    : ( langname )? ( displayname )? ( var_abhangigkeiten )? ( funktionszugehorigkeit )?
           ^
L102:    : ( langname )? ( displayname )? ( var_abhangigkeiten )? ( funktionszugehorigkeit )?
                         ^
L102:    : ( langname )? ( displayname )? ( var_abhangigkeiten )? ( funktionszugehorigkeit )?
                                          ^
L102:    : ( langname )? ( displayname )? ( var_abhangigkeiten )? ( funktionszugehorigkeit )?
                                                                  ^
L134:    : 'FUNKTION' ( NAME )+ '\n'
                      ^
L146:    : 'WERT' ( realzahl )+ '\n'
                  ^
L150:    : ( 'WERT' ( realzahl )+ '\n' | 'TEXT' ( TEXT )+ '\n' )
           ^
L150:    : ( 'WERT' ( realzahl )+ '\n' | 'TEXT' ( TEXT )+ '\n' )
                    ^
L150:    : ( 'WERT' ( realzahl )+ '\n' | 'TEXT' ( TEXT )+ '\n' )
                                                ^
L154:    : ( 'ST/X' ( realzahl )+ '\n' | 'ST_TX/X' ( TEXT )+ '\n' )
           ^
L154:    : ( 'ST/X' ( realzahl )+ '\n' | 'ST_TX/X' ( TEXT )+ '\n' )
                    ^
L154:    : ( 'ST/X' ( realzahl )+ '\n' | 'ST_TX/X' ( TEXT )+ '\n' )
                                                   ^
L158:    : ( kf_zeile_liste_r+ | kf_zeile_liste_tx+ )
           ^
L162:    : ( 'ST/Y' realzahl '\n' werteliste+ )
           ^
L166:    : ( 'ST_TX/Y' TEXT '\n' werteliste+ )
           ^
L170:    : ( INT | FLOAT )
           ^
./dice
DiceNotationLexer.g4:L30:    ( 'd' | 'D' )
                             ^
DiceNotationLexer.g4:L42:    ( ADD | SUB )
                             ^
DiceNotationLexer.g4:L47:    ( MULT | DIV )
                             ^
./dif
L85:    : ('-')? [0-9]+
          ^
./doiurl
./dot
./edif300
L50:  (  display  )*
      ^
L58:  (  booleanExpression  )*
      ^
L65:  (  display  )*
      ^
L116:  (  bidirectionalPortAttributes  )?
       ^
L145: booleanExpression : ( and_  | booleanParameterRef | booleanToken | stringEqual | integerEqual | lessThan | lessThanOrEqual | not_ | or_ | xor_ | booleanConstantRef )
                          ^
L165: booleanToken : ( efalse  | etrue );
                     ^
L219:  (  propertyNameDisplay  )?
       ^
L230:  ( libraryRef )? 
       ^
L302:  (  propertyNameDisplay  )?
       ^
L313:  ( cellRef )? 
       ^
L323:  (  stringToken  )*
       ^
L356:  (  logicNameRef  )*
       ^
L385:  (  connectivityRipperRef  )*
       ^
L414:  (  connectivityRipperRef  )*
       ^
L452:  (  display  )*
       ^
L490:  (  stringToken  )*
       ^
L510:  (  display  )*
       ^
L525:  (  version  )?
       ^
L570:  (  minimumStringLength  )?
       ^
L591: derivation : ( calculated  | measured | required_ );
                   ^
L595:  (  reason  )?
       ^
L623:  (  occurrenceHierarchyAnnotate  )?
       ^
L684:  (  section  )*
       ^
L703:  (  logicNameRef  )*
       ^
L887:  (  fonts  )?
       ^
L917:  (  font  )*
       ^
L926:  (  event  )*
       ^
L1017:  ( libraryRef )? 
        ^
L1021:  (  setAngle  )?
        ^
L1040:  (  globalPortRef  )*
        ^
L1112:  (  integerToken  )*
        ^
L1138:  (  ifFrameRef  )*
        ^
L1192:  (  inputPortAttributes  )?
        ^
L1251:  (  display  )*
        ^
L1252:  ( propertyNameDisplay )?
        ^
L1253:  (  display  )*
        ^
L1292: integerExpression : ( integerParameterRef  | integerToken | integerProduct | integerSubtract | integerSum | integerRemainder | integerQuotient | stringLength | integerConstantRef | forFrameIndexRef | portIndexValue | signalIndexValue | absolute | instanceIndexValue )
                           ^
L1309:  (  integerExpression  )*
        ^
L1328:  (  integerExpression  )*
        ^
L1352:  (  display  )*
        ^
L1377:  (  display   )*
        ^
L1378:  ( propertyNameDisplay )?
        ^
L1379:  (  display   )*
        ^
L1384:  ( pageRef )? 
        ^
L1388:  (  interconnectRef  )*
        ^
L1397:  (  portRef  )*
        ^
L1440:  (  k1KeywordAlias  )*
        ^
L1480:  (  k2Formal  )*
        ^
L1513:  (  k2FormalNameRef  )*
        ^
L1531:  (  k3Formal  )*
        ^
L1540:  (  comment  )*
        ^
L1561:  (  integerExpression  )*
        ^
L1565:  (  integerExpression  )*
        ^
L1639:  (  logicRef  )*
        ^
L1643:  (  logicRef  )*
        ^
L1665:  ( libraryRef )? 
        ^
L1710: miNoMaxValue : ( numberValue  | mnm );
                      ^
L1751:  (  bitOrder  )?
        ^
L1760:  (  nameAlias  )*
        ^
L1801: numberExpression : ( numberValue  | numberParameterRef );
                          ^
L1853:  (  booleanExpression  )*
        ^
L1894:  (  outputPortAttributes  )?
        ^
L1913:  (  interconnectAnnotate  )*
        ^
L1931:  ( libraryRef )? 
        ^
L1998:  ( libraryRef )? 
        ^
L2008:  (  parameterNameDisplay  )?
        ^
L2029:  (  event  )*
        ^
L2050:  (  schematicRequiredDefaults  )?
        ^
L2059:  (  pixelRow  )*
        ^
L2063:  (  booleanToken  )*
        ^
L2071:  (  pointValue  )*
        ^
L2110:  (  display  )*
        ^
L2124: portDirection : ( inputPort  | outputPort | bidirectionalPort | unspecifiedDirectionPort );
                       ^
L2126: portDirectionIndicator : ( input_  | output | bidirectional | unspecified | unrestricted | mixedDirection );
                                ^
L2141:  (  portRef  )*
        ^
L2153:  (  display  )*
        ^
L2200:  (  propertyNameDisplay  )?
        ^
L2214:  (  portRef  )*
        ^
L2221: presentLogicValue : ( logicNameRef | logicList | logicOneOf );
                           ^
L2223: previousLogicValue : ( logicNameRef | logicList | logicOneOf );
                            ^
L2227:  (  reason  )?
        ^
L2237:  (  version  )?
        ^
L2254:  (  propertyNameDisplay  )?
        ^
L2318:  (  display  )*
        ^
L2325:  (  logicNameRef  )*
        ^
L2358: scaledInteger : ( integerToken  | e );
                       ^
L2412:  ( libraryRef )? 
        ^
L2430:  ( libraryRef )? 
        ^
L2441:  (  schematicForFrameBorder  )?
        ^
L2467:  (hotspot)?
        ^
L2469:  (hotspot)?
        ^
L2474:  ( libraryRef )? 
        ^
L2492:  ( libraryRef )? 
        ^
L2503:  (  schematicIfFrameBorder  )?
        ^
L2550:  ( libraryRef )? 
        ^
L2573:  ( libraryRef )? 
        ^
L2598:  ( libraryRef )? 
        ^
L2604:  (  nominalHotspotGrid  )?
        ^
L2650:  ( libraryRef )? 
        ^
L2673:  ( libraryRef )? 
        ^
L2691:  ( libraryRef )? 
        ^
L2702:  (  schematicOtherwiseFrameBorder  )?
        ^
L2725:  (  schematicPortAnalog  )?
        ^
L2729:  (  ieeeStandard  )?
        ^
L2741:  (  schematicPortAnalog  )?
        ^
L2745:  (  schematicPortAnalog  )?
        ^
L2792:  ( libraryRef )? 
        ^
L2803:  (  schematicSubBus  )*
        ^
L2818:  (  schematicSubNet  )*
        ^
L2842:  ( libraryRef )? 
        ^
L2873:  ( libraryRef )? 
        ^
L2935:  (  step  )?
        ^
L3057:  (  stringExpression  )*
        ^
L3074: stringExpression : ( stringParameterRef  | stringToken | stringConstantRef | stringConcatenate | substring | decimalToString | stringPrefix | stringSuffix )
                          ^
L3131:  ( nameInformation )?
        ^
L3178:  (  display  )*
        ^
L3213: typedValue : ( eboolean  | integer | miNoMax | number | point | string );
                    ^
L3217:  (  typefaceSuffix  )?
        ^
L3241:  (  unit  )*
        ^
L3270:  (  rectangle  )*
        ^
L3335:  ( clusterRef )? 
        ^
L3384:  (  booleanExpression  )*
        ^
L3390:  ( yearNumber )*
        ^
L3400: IDENTIFIER : (SPECIAL)* (DIG)* (LETTER|'&'|UNDERLINE) ( LETTER | DIG | UNDERLINE |SPECIAL)* ;
                    ^
L3400: IDENTIFIER : (SPECIAL)* (DIG)* (LETTER|'&'|UNDERLINE) ( LETTER | DIG | UNDERLINE |SPECIAL)* ;
                               ^
L3402: STRING_LITERAL : '"' (~'"')* '"' ;
                            ^
L3407: INTEGER : ('-'|'+')? DIG (DIG)* ;
                                ^
./edn
L66:   | (
         ^
L112: Name: (( [-+.] (Alpha | Extra | Special)) | (Alpha | Extra)) (
             ^
L112: Name: (( [-+.] (Alpha | Extra | Special)) | (Alpha | Extra)) (
                                                  ^
./erlang
L153: funType : '(' (topTypes)? ')' '->' topType ;
                    ^
L416:        | (tokString)+
               ^
./esolang/brainflak
./esolang/brainfuck
./esolang/cool
L311:    : '--' (~ '\n')* '\n'? -> skip
                ^
./esolang/dgol
./esolang/lolcode
L88:    : 'HOW DUZ I' LABEL (('YR' LABEL) ('AN YR' LABEL)*)? code_block 'IF U SAY SO'
                             ^
./esolang/loop
./esolang/nanofuck
./esolang/sickbay
L44:    | ('LET' intVar '=' intExpr)
          ^
L45:    | ('GOTO' INTCONST)
          ^
L46:    | ('GOSUB' INTCONST)
          ^
L47:    | ('RETURN' | 'END')
          ^
L48:    | ('PRINT' (STRCONST | intExpr | intVar))
          ^
L49:    | ('PROLONG' INTCONST)
          ^
L50:    | ('CUTSHORT')
          ^
L51:    | ('DIM' 'RING' '(' intExpr ')')
          ^
L52:    | ('INPUT' (intVar | 'CHR$' intVar))
          ^
L94:    : 'REM' ([ \t]+) ~[\r\n]*
                ^
./esolang/snowball
./esolang/wheel
./evm-bytecode
./fasta
./fdo91
./fen
./flatbuffers
L13: type_decl : ( TABLE | STRUCT ) identifier metadata LC ( field_decl )* RC ;
                                                           ^
L174:     :   (   DECIMALS DOT DECIMALS? EXPONENT?
              ^
./flowmatic
./focal
L93:    : ('IF') expression linenum (',' linenum) (',' linenum) (';' command)?
          ^
L93:    : ('IF') expression linenum (',' linenum) (',' linenum) (';' command)?
                                    ^
L93:    : ('IF') expression linenum (',' linenum) (',' linenum) (';' command)?
                                                  ^
L105:    | ('%' INTEGER '.' INTEGER)
           ^
L129:    : ('(' expression ')')
           ^
L130:    | ('[' expression ']')
           ^
L131:    | ('<' expression '>')
           ^
L134:    | (VARIABLE '(' expression ')')
           ^
L135:    | (BUILTIN '(' expression ')')
           ^
L144:    | (signed_ '.')
           ^
L145:    | ('.' signed_)
           ^
L146:    | (signed_ '.' signed_)
           ^
./fol
L76:    :('0' .. '9' | 'a' .. 'z' | 'A' .. 'Z')
         ^
./fortran77
Fortran77Parser.g4:L46:    : (programStatement)? subprogramBody
                             ^
Fortran77Parser.g4:L69:    : (assignmentStatement | gotoStatement | ifStatement | doStatement | continueStatement | stopStatement | pauseStatement | readStatement | writeStatement | printStatement | rewindStatement | backspaceStatement | openStatement | closeStatement | endfileStatement | inquireStatement | callStatement | returnStatement)
                             ^
Fortran77Parser.g4:L106:    | (statementFunctionStatement) statementFunctionStatement
                              ^
Fortran77Parser.g4:L195:    : typeStatementName (typeStatementLenSpec)?
                                                ^
Fortran77Parser.g4:L203:    : (REAL | COMPLEX (STAR ICON?)? | DOUBLE COMPLEX | DOUBLE PRECISION | INTEGER | LOGICAL | CHARACTER)
                              ^
Fortran77Parser.g4:L252:    : (LPAREN STAR RPAREN) LPAREN STAR RPAREN
                              ^
Fortran77Parser.g4:L258:    : characterExpression (cwlLen)?
                                                  ^
Fortran77Parser.g4:L290:    : (NAME | DIV NAME DIV)
                              ^
Fortran77Parser.g4:L294:    : DATA dataStatementEntity ((COMMA)? dataStatementEntity)*
                                                        ^
Fortran77Parser.g4:L332:    : (varRef | dataImpliedDo)
                              ^
Fortran77Parser.g4:L344:    : LPAREN labelList RPAREN (COMMA)? integerExpr
                                                      ^
Fortran77Parser.g4:L356:    : NAME ((COMMA)? LPAREN labelList RPAREN)?
                                    ^
Fortran77Parser.g4:L380:    : (ELSEIF | (ELSE IF)) LPAREN logicalExpression RPAREN THEN EOL? wholeStatement+
                                        ^
Fortran77Parser.g4:L388:    : (ENDIF | END IF)
                              ^
Fortran77Parser.g4:L404:    : (wholeStatement) +
                              ^
Fortran77Parser.g4:L412:    : (ENDDO | (END DO))
                              ^
Fortran77Parser.g4:L412:    : (ENDDO | (END DO))
                                       ^
Fortran77Parser.g4:L428:    : WRITE LPAREN controlInfoList RPAREN ((COMMA? ioList) +)?
                                                                  ^
Fortran77Parser.g4:L432:    : READ (formatIdentifier ((COMMA ioList) +)?)
                                   ^
Fortran77Parser.g4:L432:    : READ (formatIdentifier ((COMMA ioList) +)?)
                                                     ^
Fortran77Parser.g4:L436:    : PRINT (formatIdentifier ((COMMA ioList) +)?)
                                    ^
Fortran77Parser.g4:L436:    : PRINT (formatIdentifier ((COMMA ioList) +)?)
                                                      ^
Fortran77Parser.g4:L453:    | (HOLLERITH | SCON)
                              ^
Fortran77Parser.g4:L463:    : (ioListItem COMMA NAME ASSIGN) ioListItem
                              ^
Fortran77Parser.g4:L464:    | (ioListItem COMMA ioListItem) ioListItem COMMA ioList
                              ^
Fortran77Parser.g4:L469:    : (LPAREN ioList COMMA NAME ASSIGN) ioImpliedDoList
                              ^
Fortran77Parser.g4:L623:    : (unitIdentifier (unitIdentifier) | LPAREN berFinishItem (COMMA berFinishItem)* RPAREN)
                              ^
Fortran77Parser.g4:L623:    : (unitIdentifier (unitIdentifier) | LPAREN berFinishItem (COMMA berFinishItem)* RPAREN)
                                              ^
Fortran77Parser.g4:L639:    : (SCON | HOLLERITH)
                              ^
Fortran77Parser.g4:L649:    : (formatedit | formatsep (formatedit)?) (formatsep (formatedit)? | COMMA (formatedit | formatsep (formatedit)?))*
                                                      ^
Fortran77Parser.g4:L649:    : (formatedit | formatsep (formatedit)?) (formatsep (formatedit)? | COMMA (formatedit | formatsep (formatedit)?))*
                                                                                ^
Fortran77Parser.g4:L649:    : (formatedit | formatsep (formatedit)?) (formatsep (formatedit)? | COMMA (formatedit | formatsep (formatedit)?))*
                                                                                                                              ^
Fortran77Parser.g4:L662:    | (PLUS | MINUS)? PCON ((ICON)? editElement)?
                                                    ^
Fortran77Parser.g4:L666:    : (FCON | SCON | HOLLERITH | NAME)
                              ^
Fortran77Parser.g4:L683:    : NAME (LPAREN (callArgumentList)? RPAREN)?
                                           ^
Fortran77Parser.g4:L696:    : RETURN (integerExpr)?
                                     ^
Fortran77Parser.g4:L746:    | (HOLLERITH | SCON)
                              ^
Fortran77Parser.g4:L827:    : (NAME | REAL) (subscripts (substringApp)?)?
                                                        ^
Fortran77Parser.g4:L831:    : NAME (subscripts (substringApp)?)?
                                               ^
Fortran77Parser.g4:L835:    : LPAREN (ncExpr)? COLON (ncExpr)? RPAREN
                                     ^
Fortran77Parser.g4:L835:    : LPAREN (ncExpr)? COLON (ncExpr)? RPAREN
                                                     ^
Fortran77Parser.g4:L855:    : ((PLUS | MINUS))? unsignedArithmeticConstant
                              ^
Fortran77Parser.g4:L855:    : ((PLUS | MINUS))? unsignedArithmeticConstant
                               ^
Fortran77Parser.g4:L856:    | (SCON | HOLLERITH)
                              ^
Fortran77Parser.g4:L861:    : (ICON | RCON)
                              ^
Fortran77Parser.g4:L866:    : LPAREN ((PLUS | MINUS))? (ICON | RCON) COMMA ((PLUS | MINUS))? (ICON | RCON) RPAREN
                                     ^
Fortran77Parser.g4:L866:    : LPAREN ((PLUS | MINUS))? (ICON | RCON) COMMA ((PLUS | MINUS))? (ICON | RCON) RPAREN
                                      ^
Fortran77Parser.g4:L866:    : LPAREN ((PLUS | MINUS))? (ICON | RCON) COMMA ((PLUS | MINUS))? (ICON | RCON) RPAREN
                                                                           ^
Fortran77Parser.g4:L866:    : LPAREN ((PLUS | MINUS))? (ICON | RCON) COMMA ((PLUS | MINUS))? (ICON | RCON) RPAREN
                                                                            ^
Fortran77Parser.g4:L870:    : (TRUE | FALSE)
                              ^
Fortran77Lexer.g4:L598:    : (ALPHA | NUM)
                             ^
Fortran77Lexer.g4:L603:    : (NUM | 'a' .. 'f')
                             ^
Fortran77Lexer.g4:L608:    : ('+' | '-')
                             ^
Fortran77Lexer.g4:L613:    : ('i' | 'f' | 'd') (NUM) + '.' (NUM) + | ('e' | 'g') (NUM) + '.' (NUM) + ('e' (NUM) +)?
                                               ^
Fortran77Lexer.g4:L613:    : ('i' | 'f' | 'd') (NUM) + '.' (NUM) + | ('e' | 'g') (NUM) + '.' (NUM) + ('e' (NUM) +)?
                                                           ^
Fortran77Lexer.g4:L613:    : ('i' | 'f' | 'd') (NUM) + '.' (NUM) + | ('e' | 'g') (NUM) + '.' (NUM) + ('e' (NUM) +)?
                                                                                 ^
Fortran77Lexer.g4:L613:    : ('i' | 'f' | 'd') (NUM) + '.' (NUM) + | ('e' | 'g') (NUM) + '.' (NUM) + ('e' (NUM) +)?
                                                                                             ^
Fortran77Lexer.g4:L613:    : ('i' | 'f' | 'd') (NUM) + '.' (NUM) + | ('e' | 'g') (NUM) + '.' (NUM) + ('e' (NUM) +)?
                                                                                                          ^
Fortran77Lexer.g4:L618:    : ('e' | 'E' | 'd' | 'D') (SIGN)? (NUM) +
                                                     ^
Fortran77Lexer.g4:L618:    : ('e' | 'E' | 'd' | 'D') (SIGN)? (NUM) +
                                                             ^
Fortran77Lexer.g4:L623:    : ('a' .. 'z') | ('A' .. 'Z')
                             ^
Fortran77Lexer.g4:L623:    : ('a' .. 'z') | ('A' .. 'Z')
                                            ^
Fortran77Lexer.g4:L628:    : ('0' .. '9')
                             ^
Fortran77Lexer.g4:L636:    : '\'' ('\'' '\'' | ~ ('\'' | '\n' | '\r') | (('\n' | '\r' ('\n')?) '     ' CONTINUATION) ('\n' | '\r' ('\n')?) '     ' CONTINUATION)* '\''
                                                                        ^
Fortran77Lexer.g4:L636:    : '\'' ('\'' '\'' | ~ ('\'' | '\n' | '\r') | (('\n' | '\r' ('\n')?) '     ' CONTINUATION) ('\n' | '\r' ('\n')?) '     ' CONTINUATION)* '\''
                                                                                      ^
Fortran77Lexer.g4:L636:    : '\'' ('\'' '\'' | ~ ('\'' | '\n' | '\r') | (('\n' | '\r' ('\n')?) '     ' CONTINUATION) ('\n' | '\r' ('\n')?) '     ' CONTINUATION)* '\''
                                                                                                                                  ^
Fortran77Lexer.g4:L648:    : (('i' | 'f' | 'd' | 'g' | 'e') (NUM) + '.') FDESC | (ALNUM +) (ALNUM)*
                             ^
Fortran77Lexer.g4:L648:    : (('i' | 'f' | 'd' | 'g' | 'e') (NUM) + '.') FDESC | (ALNUM +) (ALNUM)*
                                                            ^
Fortran77Lexer.g4:L648:    : (('i' | 'f' | 'd' | 'g' | 'e') (NUM) + '.') FDESC | (ALNUM +) (ALNUM)*
                                                                                 ^
Fortran77Lexer.g4:L648:    : (('i' | 'f' | 'd' | 'g' | 'e') (NUM) + '.') FDESC | (ALNUM +) (ALNUM)*
                                                                                           ^
Fortran77Lexer.g4:L653:    : {getCharPositionInLine() == 0}? ('c' | STARCHAR) (~ [\r\n])* EOL -> channel(HIDDEN)
                                                                              ^
Fortran77Lexer.g4:L670:    : ((EOL '     $') | (EOL '     +')) -> skip
                              ^
Fortran77Lexer.g4:L670:    : ((EOL '     $') | (EOL '     +')) -> skip
                                               ^
./freedesktop/desktop-entry
./fusion-tables
L135:    ( K_RENAME K_TO identifier )
         ^
L142:      K_FROM ((table_name_with_alias ( K_WHERE expr )?) (join_clause) *)
                  ^
L142:      K_FROM ((table_name_with_alias ( K_WHERE expr )?) (join_clause) *)
                   ^
L142:      K_FROM ((table_name_with_alias ( K_WHERE expr )?) (join_clause) *)
                                                             ^
L152:    table_name_in_dml ( '(' column_name_in_dml ( ',' column_name_in_dml )* ')' )
                           ^
L153:    ( K_VALUES '(' literal ( ',' literal)* ')' )
         ^
L177:    K_FROM table_name_with_alias (join_clause )*  
                                      ^
L181:    ( 
         ^
L182:      ( K_OFFSET numeric_literal ( K_LIMIT numeric_literal )?) 
           ^
L191:  : ( K_LEFT K_OUTER  K_JOIN table_name_with_alias K_ON qualified_column_name '=' qualified_column_name)
         ^
L207:  : column_name_beginning_expr ( operator_ ) literal (and_or_or expr)? 
                                    ^
L222: and_or_or : (K_AND | K_OR) ; 
                  ^
./gdscript
GDScriptParser.g4:L61:  : 'enum' IDENTIFIER? '{' (
                                                 ^
GDScriptParser.g4:L89:  : 'func' IDENTIFIER '(' parList? ')' ('.' '(' argList? ')') ':' stmtOrSuite
                                                             ^
GDScriptParser.g4:L201:  : 'yield' '(' (expression ',' expression) ')'
                                       ^
./gedcom
./gff3
./glsl
./gml
./golang
GoParser.g4:L66: functionDecl: FUNC IDENTIFIER (signature block?);
                                               ^
GoParser.g4:L68: methodDecl: FUNC receiver IDENTIFIER ( signature block?);
                                                      ^
GoParser.g4:L287:   (DOT IDENTIFIER)
                    ^
./graphql
L309: fragment CHARACTER: ( ESC | ~ ["\\]);
                          ^
./graphstream-dgs
DGSLexer.g4:L54: INT : ('+'|'-')? ( '0' | ( [1-9] ([0-9])* ) );
                                          ^
DGSLexer.g4:L54: INT : ('+'|'-')? ( '0' | ( [1-9] ([0-9])* ) );
                                                  ^
DGSLexer.g4:L78: fragment HEXBYTE : ([0-9a-fA-F]) ([0-9a-fA-F]) ;
                                    ^
DGSLexer.g4:L78: fragment HEXBYTE : ([0-9a-fA-F]) ([0-9a-fA-F]) ;
                                                  ^
./gtin
L65:    : (upc_a | upc_e)
          ^
L112:    : (ean13_ismn | ean13_issn | ean13_bookland | ean13_generic)
           ^
L191:    : ('0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8')
           ^
./guido
L36:    : ((segment +) | sequencelist) EOF
           ^
./guitartab
./haskell
HaskellParser.g4:L84:     (impdecls topdecls)
                          ^
HaskellParser.g4:L102:     | ( qtycon ( ('(' '..' ')') | ('(' (cname (',' cname)*)? ')') )? )
                             ^
HaskellParser.g4:L102:     | ( qtycon ( ('(' '..' ')') | ('(' (cname (',' cname)*)? ')') )? )
                                        ^
HaskellParser.g4:L102:     | ( qtycon ( ('(' '..' ')') | ('(' (cname (',' cname)*)? ')') )? )
                                                         ^
HaskellParser.g4:L103:     | ( qtycls ( ('(' '..' ')') | ('(' (qvar (',' qvar)*)? ')') )? )
                             ^
HaskellParser.g4:L103:     | ( qtycls ( ('(' '..' ')') | ('(' (qvar (',' qvar)*)? ')') )? )
                                        ^
HaskellParser.g4:L103:     | ( qtycls ( ('(' '..' ')') | ('(' (qvar (',' qvar)*)? ')') )? )
                                                         ^
HaskellParser.g4:L104:     | ( 'module' modid )
                             ^
HaskellParser.g4:L114:     ('(' (himport (',' himport)* ','?)? ')')
                           ^
HaskellParser.g4:L115:     | ( 'hiding' '(' (himport (',' himport)* ','?)? ')' )
                             ^
HaskellParser.g4:L121:     | ( tycon ( ('(' '..' ')') | ('(' (cname (',' cname)*)? ')') )? )
                             ^
HaskellParser.g4:L121:     | ( tycon ( ('(' '..' ')') | ('(' (cname (',' cname)*)? ')') )? )
                                       ^
HaskellParser.g4:L121:     | ( tycon ( ('(' '..' ')') | ('(' (cname (',' cname)*)? ')') )? )
                                                        ^
HaskellParser.g4:L122:     | ( tycls ( ('(' '..' ')') | ('(' sig_vars? ')') )? )
                             ^
HaskellParser.g4:L122:     | ( tycls ( ('(' '..' ')') | ('(' sig_vars? ')') )? )
                                       ^
HaskellParser.g4:L122:     | ( tycls ( ('(' '..' ')') | ('(' sig_vars? ')') )? )
                                                        ^
HaskellParser.g4:L150:     | ('default' '(' comma_types? ')' )
                             ^
HaskellParser.g4:L151:     | ('foreign' fdecl)
                             ^
HaskellParser.g4:L152:     | ('{-#' 'DEPRECATED' deprecations? '#-}')
                             ^
HaskellParser.g4:L153:     | ('{-#' 'WARNING' warnings? '#-}')
                             ^
HaskellParser.g4:L154:     | ('{-#' 'RULES' rules? '#-}')
                             ^
HaskellParser.g4:L204:     ('instance' overlap_pragma? inst_type where_inst?)
                           ^
HaskellParser.g4:L205:     | ('type' 'instance' ty_fam_inst_eqn)
                             ^
HaskellParser.g4:L208:     | ('data' 'instance' capi_ctype? tycl_hdr_inst derivings?)
                             ^
HaskellParser.g4:L209:     | ('newtype' 'instance' capi_ctype? tycl_hdr_inst derivings?)
                             ^
HaskellParser.g4:L211:     | ('data' 'instance' capi_ctype? tycl_hdr_inst opt_kind_sig? gadt_constrlist? derivings?)
                             ^
HaskellParser.g4:L212:     | ('newtype' 'instance' capi_ctype? tycl_hdr_inst opt_kind_sig? gadt_constrlist? derivings?)
                             ^
HaskellParser.g4:L271:     (open_ ty_fam_inst_eqns? close)
                           ^
HaskellParser.g4:L272:     | ('{' '..' '}')
                             ^
HaskellParser.g4:L273:     | (open_ '..' close)
                             ^
HaskellParser.g4:L298:     ('data' 'family'? type_ opt_datafam_kind_sig?)
                           ^
HaskellParser.g4:L299:     | ('type' 'family'? type_ opt_at_kind_inj_sig?)
                             ^
HaskellParser.g4:L300:     | ('type' 'instance'? ty_fam_inst_eqn)
                             ^
HaskellParser.g4:L308:     ('type' 'instance'? ty_fam_inst_eqn)
                           ^
HaskellParser.g4:L310:     | ('data' 'instance'? capi_ctype? tycl_hdr_inst constrs derivings?)
                             ^
HaskellParser.g4:L311:     | ('newtype' 'instance'? capi_ctype? tycl_hdr_inst constrs derivings?)
                             ^
HaskellParser.g4:L313:     | ('data' 'instance'? capi_ctype? tycl_hdr_inst opt_kind_sig? gadt_constrlist? derivings?)
                             ^
HaskellParser.g4:L314:     | ('newtype' 'instance'? capi_ctype? tycl_hdr_inst opt_kind_sig? gadt_constrlist? derivings?)
                             ^
HaskellParser.g4:L331:     ('::' kind)
                           ^
HaskellParser.g4:L332:     | ('=' tv_bndr)
                             ^
HaskellParser.g4:L337:     ('::' kind)
                           ^
HaskellParser.g4:L338:     | ('=' tv_bndr_no_braces '|' injectivity_cond)
                             ^
HaskellParser.g4:L343:     (tycl_context '=>' type_)
                           ^
HaskellParser.g4:L349:     ('forall' tv_bndrs? '.' tycl_context '=>' type_)
                           ^
HaskellParser.g4:L350:     | ('forall' tv_bndrs? '.' type_)
                             ^
HaskellParser.g4:L351:     | (tycl_context '=>' type_)
                             ^
HaskellParser.g4:L357:     ('{-#' 'CTYPE' STRING STRING '#-}')
                           ^
HaskellParser.g4:L358:     | ('{-#' 'CTYPE' STRING '#-}')
                             ^
HaskellParser.g4:L392:     ('pattern' pattern_synonym_lhs '=' pat)
                           ^
HaskellParser.g4:L393:     | ('pattern' pattern_synonym_lhs '<-' pat where_decls?)
                             ^
HaskellParser.g4:L398:     (con vars_?)
                           ^
HaskellParser.g4:L399:     | (varid conop varid)
                             ^
HaskellParser.g4:L400:     | (con '{' cvars '}')
                             ^
HaskellParser.g4:L494:     | (open_ dbinds? close)
                             ^
HaskellParser.g4:L523:     ('[' integer ']')
                           ^
HaskellParser.g4:L524:     | ('[' rule_activation_marker integer ']')
                             ^
HaskellParser.g4:L525:     | ('[' rule_activation_marker ']')
                             ^
HaskellParser.g4:L530:     ('forall' rule_vars? '.' ('forall' rule_vars? '.')?)
                           ^
HaskellParser.g4:L541:     | ('(' varid '::' ctype ')')
                             ^
HaskellParser.g4:L570:     | ('[' stringlist? ']')
                             ^
HaskellParser.g4:L583:       ('{-#' 'ANN' name_var aexp '#-}')
                             ^
HaskellParser.g4:L584:     | ('{-#' 'ANN' tycon aexp '#-}')
                             ^
HaskellParser.g4:L585:     | ('{-#' 'ANN' 'module' aexp '#-}')
                             ^
HaskellParser.g4:L593:     ('import' callconv safety? fspec)
                           ^
HaskellParser.g4:L594:     | ('export' callconv fspec)
                             ^
HaskellParser.g4:L641:       ('{-#' 'UNPACK'   '#-}')
                             ^
HaskellParser.g4:L642:     | ('{-#' 'NOUNPACK' '#-}')
                             ^
HaskellParser.g4:L655:     | (ctype '::' kind)
                             ^
HaskellParser.g4:L780:     | ('@' atype)
                             ^
HaskellParser.g4:L783:     | ('\'' qconop)
                             ^
HaskellParser.g4:L784:     | ('\'' varop)
                             ^
HaskellParser.g4:L793:     | ('~' atype)
                             ^
HaskellParser.g4:L794:     | ('!' atype)
                             ^
HaskellParser.g4:L795:     | ('{' fielddecls? '}')
                             ^
HaskellParser.g4:L796:     | ('(' ')')
                             ^
HaskellParser.g4:L797:     | ('(' ktype ',' comma_types ')')
                             ^
HaskellParser.g4:L798:     | ('(#' '#)')
                             ^
HaskellParser.g4:L799:     | ('(#' comma_types '#)')
                             ^
HaskellParser.g4:L800:     | ('(#' bar_types2 '#)')
                             ^
HaskellParser.g4:L801:     | ('[' ktype ']')
                             ^
HaskellParser.g4:L802:     | ('(' ktype ')')
                             ^
HaskellParser.g4:L805:     | ('\'' qcon_nowiredlist)
                             ^
HaskellParser.g4:L806:     | ('\'' '(' ktype ',' comma_types ')')
                             ^
HaskellParser.g4:L807:     | ('\'' '[' comma_types? ']')
                             ^
HaskellParser.g4:L808:     | ('\'' var_)
                             ^
HaskellParser.g4:L813:     | ('[' ktype ',' comma_types ']')
                             ^
HaskellParser.g4:L847:     | ('{' tyvar '}')
                             ^
HaskellParser.g4:L848:     | ('{' tyvar '::' kind '}')
                             ^
HaskellParser.g4:L854:     | ('(' tyvar '::' kind ')')
                             ^
HaskellParser.g4:L1059:     ('deriving' deriv_clause_types)
                            ^
HaskellParser.g4:L1060:     | ('deriving' deriv_strategy_no_via deriv_clause_types)
                              ^
HaskellParser.g4:L1061:     | ('deriving' deriv_clause_types deriv_strategy_via)
                              ^
HaskellParser.g4:L1099:     | (infixexp opt_sig? rhs)
                              ^
HaskellParser.g4:L1118:     ('=' exp wherebinds?)
                            ^
HaskellParser.g4:L1119:     | (gdrhs wherebinds?);
                              ^
HaskellParser.g4:L1133:     (infixexp '::' sigtypedoc)
                            ^
HaskellParser.g4:L1134:     | (var_ ',' sig_vars '::' sigtypedoc)
                              ^
HaskellParser.g4:L1135:     | (fixity integer? ops)
                              ^
HaskellParser.g4:L1136:     | (pattern_synonym_sig)
                              ^
HaskellParser.g4:L1137:     | ('{-#' 'COMPLETE' con_list opt_tyconsig? '#-}')
                              ^
HaskellParser.g4:L1138:     | ('{-#' 'INLINE' activation? qvar '#-}')
                              ^
HaskellParser.g4:L1139:     | ('{-#' 'SCC' qvar pstring? '#-}')
                              ^
HaskellParser.g4:L1140:     | ('{-#' 'SPECIALISE' activation? qvar '::' sigtypes1 '#-}')
                              ^
HaskellParser.g4:L1141:     | ('{-#' 'SPECIALISE_INLINE' activation? qvar '::' sigtypes1 '#-}')
                              ^
HaskellParser.g4:L1142:     | ('{-#' 'SPECIALISE' 'instance' inst_type '#-}')
                              ^
HaskellParser.g4:L1143:     | ('{-#' 'MINIMAL' '#-}' name_boolformula_opt? '#-}')
                              ^
HaskellParser.g4:L1144:     |(semi+)
                             ^
HaskellParser.g4:L1149:     ('[' integer ']')
                            ^
HaskellParser.g4:L1150:     | ('[' rule_activation_marker integer ']')
                              ^
HaskellParser.g4:L1174:     (infixexp '::' sigtype)
                            ^
HaskellParser.g4:L1175:     | (infixexp '-<' exp)
                              ^
HaskellParser.g4:L1176:     | (infixexp '>-' exp)
                              ^
HaskellParser.g4:L1177:     | (infixexp '-<<' exp)
                              ^
HaskellParser.g4:L1178:     | (infixexp '>>-' exp)
                              ^
HaskellParser.g4:L1204:     (qvar '@' aexp)
                            ^
HaskellParser.g4:L1205:     | ('~' aexp)
                              ^
HaskellParser.g4:L1206:     | ('!' aexp)
                              ^
HaskellParser.g4:L1207:     | ('\\' apats '->' exp)
                              ^
HaskellParser.g4:L1208:     | ('let' decllist 'in' exp)
                              ^
HaskellParser.g4:L1209:     | (LCASE alts)
                              ^
HaskellParser.g4:L1210:     | ('if' exp semi? 'then' exp semi? 'else' exp)
                              ^
HaskellParser.g4:L1211:     | ('if' ifgdpats)
                              ^
HaskellParser.g4:L1212:     | ('case' exp 'of' alts)
                              ^
HaskellParser.g4:L1213:     | ('do' stmtlist)
                              ^
HaskellParser.g4:L1214:     | ('mdo' stmtlist)
                              ^
HaskellParser.g4:L1236:     | ('(' texp ')')
                              ^
HaskellParser.g4:L1237:     | ('(' tup_exprs ')')
                              ^
HaskellParser.g4:L1238:     | ('(#' texp '#)')
                              ^
HaskellParser.g4:L1239:     | ('(#' tup_exprs '#)')
                              ^
HaskellParser.g4:L1240:     | ('[' list_ ']')
                              ^
HaskellParser.g4:L1245:     | ('\'' qvar)
                              ^
HaskellParser.g4:L1246:     | ('\'' qcon)
                              ^
HaskellParser.g4:L1247:     | ('\'\'' tyvar)
                              ^
HaskellParser.g4:L1248:     | ('\'\'' gtycon)
                              ^
HaskellParser.g4:L1256:     | (AopenParen aexp cmdargs? AopenParen)
                              ^
HaskellParser.g4:L1301:     | (infixexp qop)
                              ^
HaskellParser.g4:L1302:     | (qopm infixexp)
                              ^
HaskellParser.g4:L1303:     | (exp '->' texp)
                              ^
HaskellParser.g4:L1308:     (texp commas_tup_tail)
                            ^
HaskellParser.g4:L1309:     | (texp bars)
                              ^
HaskellParser.g4:L1310:     | (commas tup_tail?)
                              ^
HaskellParser.g4:L1311:     | (bars texp bars?)
                              ^
HaskellParser.g4:L1401:     (open_ (alt semi*)+ close)
                            ^
HaskellParser.g4:L1402:     | (open_ close)
                              ^
HaskellParser.g4:L1414:     ('->' exp)
                            ^
HaskellParser.g4:L1477:     | ('rec' stmtlist)
                              ^
HaskellParser.g4:L1494:     (fbind (',' fbind)*)
                            ^
HaskellParser.g4:L1495:     | ('..')
                              ^
HaskellParser.g4:L1508:     (qvar '=' exp)
                            ^
HaskellParser.g4:L1517:     dbind (semi+ dbind) semi*
                                  ^
HaskellParser.g4:L1546:     ('(' name_boolformula_opt ')')
                            ^
HaskellParser.g4:L1569: gen_qcon : qconid | ( '(' qconsym ')' );
                                            ^
HaskellParser.g4:L1571: con    : conid   | ( '(' consym ')' ) | sysdcon;
                                           ^
HaskellParser.g4:L1577:     ('(' ')')
                            ^
HaskellParser.g4:L1578:     | ('(' commas ')')
                              ^
HaskellParser.g4:L1579:     | ('(#' '#)')
                              ^
HaskellParser.g4:L1580:     | ('(#' commas '#)')
                              ^
HaskellParser.g4:L1586:     | ('[' ']')
                              ^
HaskellParser.g4:L1589: conop  : consym  | ('`' conid '`')  ;
                                           ^
HaskellParser.g4:L1591: qconop : gconsym | ('`' qconid '`')  ;
                                           ^
HaskellParser.g4:L1601:     | ('('  ')')
                              ^
HaskellParser.g4:L1602:     | ('(#' '#)')
                              ^
HaskellParser.g4:L1608:     | ('(' commas ')')
                              ^
HaskellParser.g4:L1609:     | ('(#' commas '#)')
                              ^
HaskellParser.g4:L1610:     | ('(' '->' ')')
                              ^
HaskellParser.g4:L1611:     | ('[' ']')
                              ^
HaskellParser.g4:L1617:     | ('(' qtyconsym ')')
                              ^
HaskellParser.g4:L1640: qtyconop: qtyconsym | ('`' qtycon '`');
                                              ^
HaskellParser.g4:L1655: varop  : varsym  | ('`' varid '`') ;
                                           ^
HaskellParser.g4:L1663: qvarop : qvarsym | ('`' qvarid '`');
                                           ^
HaskellParser.g4:L1665: qvaropm: qvarsym_no_minus | ('`' qvarid '`');
                                                    ^
HaskellParser.g4:L1688: var_    : varid   | ( '(' varsym ')' );
                                            ^
HaskellParser.g4:L1690: qvar   : qvarid  | ( '(' qvarsym ')');
                                           ^
HaskellLexer.g4:L194: COMMENT  : '--' (~[\r\n])* -> skip;
                                      ^
HaskellLexer.g4:L255: FLOAT: (DECIMAL '.' DECIMAL (EXPONENT)?) | (DECIMAL EXPONENT);
                             ^
HaskellLexer.g4:L255: FLOAT: (DECIMAL '.' DECIMAL (EXPONENT)?) | (DECIMAL EXPONENT);
                                                  ^
HaskellLexer.g4:L255: FLOAT: (DECIMAL '.' DECIMAL (EXPONENT)?) | (DECIMAL EXPONENT);
                                                                 ^
./html
./http
./hypertalk
L250:     : ('english' | 'long')
            ^
L251:     | ('abbreviated' | 'abbrev' | 'abbr')
            ^
L493:     | ('commandkey' | 'cmdkey')
            ^
L632:     | ('mid' | 'middle')
            ^
L759:     | ('slow' | 'slowly')
            ^
L767:     | ('gray' | 'grey')
            ^
L887:     : (ALPHA (ALPHA | DIGIT)*)
            ^
L923:     : ('--' ~('\r' | '\n' | '|')*) -> channel(HIDDEN)
            ^
./icalendar
./icon
L41:    | (declaration prog)
          ^
L108:    : (identifier)
           ^
L109:    | (identifier '[' ']')
           ^
L110:    | (identifier ',' parameter_list)
           ^
./idl
L84:    : (KW_ABSTRACT | KW_LOCAL)? KW_INTERFACE identifier (interface_inheritance_spec)?
                                                            ^
L117:    : (DOUBLE_COLON)? ID (DOUBLE_COLON ID)*
           ^
L126:    : (KW_ABSTRACT)? KW_VALUETYPE identifier
           ^
L142:    : (KW_CUSTOM)? KW_VALUETYPE identifier value_inheritance_spec
           ^
L146:    : (COLON (KW_TRUNCATABLE)? value_name (COMMA value_name)*)? (KW_SUPPORTS interface_name (COMMA interface_name)*)?
                  ^
L154:    : (export_ | state_member | init_decl)
           ^
L162:    : annapps KW_FACTORY identifier LEFT_BRACKET (init_param_decls)? RIGHT_BRACKET (raises_expr)? SEMICOLON
                                                      ^
L162:    : annapps KW_FACTORY identifier LEFT_BRACKET (init_param_decls)? RIGHT_BRACKET (raises_expr)? SEMICOLON
                                                                                        ^
L230:    : (MINUS | PLUS | TILDE)
           ^
L240:    : (HEX_LITERAL | INTEGER_LITERAL | OCTAL_LITERAL | STRING_LITERAL | WIDE_STRING_LITERAL | CHARACTER_LITERAL | WIDE_CHARACTER_LITERAL | FIXED_PT_LITERAL | FLOATING_PT_LITERAL | BOOLEAN_LITERAL)
           ^
L332:    : (KW_FLOAT | KW_DOUBLE | KW_LONG KW_DOUBLE)
           ^
L426:    : KW_AT_ANNOTATION identifier (annotation_inheritance_spec)?
                                       ^
L454:    : ( bitfield_spec (simple_declarators)? SEMICOLON )+
                           ^
L560:    : (op_attribute)? op_type_spec identifier parameter_decls (raises_expr)? (context_expr)?
           ^
L560:    : (op_attribute)? op_type_spec identifier parameter_decls (raises_expr)? (context_expr)?
                                                                   ^
L560:    : (op_attribute)? op_type_spec identifier parameter_decls (raises_expr)? (context_expr)?
                                                                                  ^
L660:    : get_excep_expr (set_excep_expr)?
                          ^
L690:    : KW_COMPONENT identifier (component_inheritance_spec)? (supported_interface_spec)?
                                   ^
L690:    : KW_COMPONENT identifier (component_inheritance_spec)? (supported_interface_spec)?
                                                                 ^
L728:    : KW_USES (KW_MULTIPLE)? interface_type ID
                   ^
L748:    : KW_HOME identifier (home_inheritance_spec)? (supported_interface_spec)? KW_MANAGES a_scoped_name (primary_key_spec)?
                              ^
L748:    : KW_HOME identifier (home_inheritance_spec)? (supported_interface_spec)? KW_MANAGES a_scoped_name (primary_key_spec)?
                                                       ^
L748:    : KW_HOME identifier (home_inheritance_spec)? (supported_interface_spec)? KW_MANAGES a_scoped_name (primary_key_spec)?
                                                                                                            ^
L773:    : KW_FACTORY identifier LEFT_BRACKET (init_param_decls)? RIGHT_BRACKET (raises_expr)?
                                              ^
L773:    : KW_FACTORY identifier LEFT_BRACKET (init_param_decls)? RIGHT_BRACKET (raises_expr)?
                                                                                ^
L777:    : KW_FINDER identifier LEFT_BRACKET (init_param_decls)? RIGHT_BRACKET (raises_expr)?
                                             ^
L777:    : KW_FINDER identifier LEFT_BRACKET (init_param_decls)? RIGHT_BRACKET (raises_expr)?
                                                                               ^
L781:    : (event_decl | event_abs_decl | event_forward_decl)
           ^
L785:    : (KW_ABSTRACT)? KW_EVENTTYPE ID
           ^
L797:    : (KW_CUSTOM)? KW_EVENTTYPE identifier value_inheritance_spec
           ^
L801:    : ( annotation_appl )*
           ^
L838:    : ('0' .. '9' | 'a' .. 'f' | 'A' .. 'F')
           ^
L843:    : ('l' | 'L')
           ^
L866:    : ('f' | 'F' | 'd' | 'D')
           ^
L904:    : '\\' ('0' .. '3') ('0' .. '7') ('0' .. '7')
                ^
L904:    : '\\' ('0' .. '3') ('0' .. '7') ('0' .. '7')
                             ^
L904:    : '\\' ('0' .. '3') ('0' .. '7') ('0' .. '7')
                                          ^
L905:    | '\\' ('0' .. '7') ('0' .. '7')
                ^
L905:    | '\\' ('0' .. '7') ('0' .. '7')
                             ^
L906:    | '\\' ('0' .. '7')
                ^
./inf
L67:    : '"' (~ ('"' | '\n'))* '"'
              ^
./informix
L90:    : (BIGINT | INTEGER | INT | SMALLINT | REAL | SMALLFLOAT)
          ^
L171:    : RECORD (eol (variableDeclaration (COMMA variableDeclaration)*) END RECORD | (LIKE tableIdentifier DOT STAR))
                       ^
L171:    : RECORD (eol (variableDeclaration (COMMA variableDeclaration)*) END RECORD | (LIKE tableIdentifier DOT STAR))
                                                                                       ^
L244:    : (TRUE | FALSE)
           ^
L256:    | (sqlExpression NOT? LIKE) sqlExpression NOT? LIKE sqlExpression (ESC QUOTED_STRING)?
           ^
L257:    | (sqlExpression NOT? BETWEEN) sqlExpression NOT? BETWEEN sqlExpression AND sqlExpression
           ^
L258:    | (sqlExpression IS NOT? NULL_) sqlExpression IS NOT? NULL_
           ^
L260:    | (NOT condition) NOT condition
           ^
L266:    : (sqlExpression relationalOperator (ALL | ANY)? subquery) sqlExpression relationalOperator (ALL | ANY)? subquery
           ^
L267:    | (NOT? EXISTS subquery) NOT? EXISTS subquery
           ^
L301:    : (sqlVariable (UNITS unitType)?) sqlVariable (UNITS unitType)?
           ^
L302:    | (sqlLiteral (UNITS unitType)?) sqlLiteral (UNITS unitType)?
           ^
L303:    | (groupFunction LPAREN (STAR | ALL | DISTINCT)? (sqlExpression (COMMA sqlExpression)*)? RPAREN) groupFunction LPAREN (STAR | ALL | DISTINCT)? (sqlExpression (COMMA sqlExpression)*)? RPAREN
           ^
L304:    | (sqlFunction (LPAREN sqlExpression (COMMA sqlExpression)* RPAREN)) sqlFunction (LPAREN sqlExpression (COMMA sqlExpression)* RPAREN)
           ^
L304:    | (sqlFunction (LPAREN sqlExpression (COMMA sqlExpression)* RPAREN)) sqlFunction (LPAREN sqlExpression (COMMA sqlExpression)* RPAREN)
                        ^
L304:    | (sqlFunction (LPAREN sqlExpression (COMMA sqlExpression)* RPAREN)) sqlFunction (LPAREN sqlExpression (COMMA sqlExpression)* RPAREN)
                                                                                          ^
L305:    | ((PLUS | MINUS) sqlExpression) (PLUS | MINUS) sqlExpression
           ^
L306:    | (LPAREN sqlExpression RPAREN) LPAREN sqlExpression RPAREN
           ^
L353:    : (DECODE | NVL)
           ^
L388:    | (NOT ifCondition) NOT ifCondition
           ^
L422:    : (DAY | YEAR | MONTH | TODAY | WEEKDAY | MDY | COLUMN | SUM | COUNT | AVG | MIN | MAX | EXTEND | DATE | TIME | INFIELD | PREPARE)
           ^
L469:    : (recordVariable indexingVariable?) ((DOT STAR) | (DOT componentVariable ((THROUGH | THRU) componentVariable)?))?
           ^
L469:    : (recordVariable indexingVariable?) ((DOT STAR) | (DOT componentVariable ((THROUGH | THRU) componentVariable)?))?
                                               ^
L469:    : (recordVariable indexingVariable?) ((DOT STAR) | (DOT componentVariable ((THROUGH | THRU) componentVariable)?))?
                                                            ^
L590:    | (PAGENO | LINENO)
           ^
L601:    : START REPORT constantIdentifier (TO (expression | PIPE expression | PRINTER))? (WITH ((LEFT MARGIN numericConstant) | (RIGHT MARGIN numericConstant) | (TOP MARGIN numericConstant) | (BOTTOM MARGIN numericConstant) | (PAGE LENGTH numericConstant) | (TOP OF PAGE string))*)?
                                                                                                 ^
L601:    : START REPORT constantIdentifier (TO (expression | PIPE expression | PRINTER))? (WITH ((LEFT MARGIN numericConstant) | (RIGHT MARGIN numericConstant) | (TOP MARGIN numericConstant) | (BOTTOM MARGIN numericConstant) | (PAGE LENGTH numericConstant) | (TOP OF PAGE string))*)?
                                                                                                                                 ^
L601:    : START REPORT constantIdentifier (TO (expression | PIPE expression | PRINTER))? (WITH ((LEFT MARGIN numericConstant) | (RIGHT MARGIN numericConstant) | (TOP MARGIN numericConstant) | (BOTTOM MARGIN numericConstant) | (PAGE LENGTH numericConstant) | (TOP OF PAGE string))*)?
                                                                                                                                                                  ^
L601:    : START REPORT constantIdentifier (TO (expression | PIPE expression | PRINTER))? (WITH ((LEFT MARGIN numericConstant) | (RIGHT MARGIN numericConstant) | (TOP MARGIN numericConstant) | (BOTTOM MARGIN numericConstant) | (PAGE LENGTH numericConstant) | (TOP OF PAGE string))*)?
                                                                                                                                                                                                 ^
L601:    : START REPORT constantIdentifier (TO (expression | PIPE expression | PRINTER))? (WITH ((LEFT MARGIN numericConstant) | (RIGHT MARGIN numericConstant) | (TOP MARGIN numericConstant) | (BOTTOM MARGIN numericConstant) | (PAGE LENGTH numericConstant) | (TOP OF PAGE string))*)?
                                                                                                                                                                                                                                   ^
L601:    : START REPORT constantIdentifier (TO (expression | PIPE expression | PRINTER))? (WITH ((LEFT MARGIN numericConstant) | (RIGHT MARGIN numericConstant) | (TOP MARGIN numericConstant) | (BOTTOM MARGIN numericConstant) | (PAGE LENGTH numericConstant) | (TOP OF PAGE string))*)?
                                                                                                                                                                                                                                                                   ^
L612:    : ((identifier (LBRACK numericConstant RBRACK)?) DOT)? identifier
            ^
L613:    | (identifier (LBRACK numericConstant RBRACK)?) DOT (STAR | identifier thruNotation?)
           ^
L678:    : DISPLAY (BY NAME (expression (COMMA expression)*) | (expression (COMMA expression)*) (TO fieldList | AT expression COMMA expression)?) attributeList? eol
                            ^
L678:    : DISPLAY (BY NAME (expression (COMMA expression)*) | (expression (COMMA expression)*) (TO fieldList | AT expression COMMA expression)?) attributeList? eol
                                                               ^
L701:    : NEXT FIELD (fieldName | (NEXT | PREVIOUS))
                                   ^
L702:    | (CONTINUE INPUT | EXIT INPUT)
           ^
L719:    | COMMAND ((KEY LPAREN keyList RPAREN)? expression expression? (HELP numericConstant)?)
                   ^
L745:    : (BLACK | BLUE | CYAN | GREEN | MAGENTA | RED | WHITE | YELLOW | BOLD | DIM | NORMAL | INVISIBLE)
           ^
L761:    : (MESSAGE LINE expression | PROMPT LINE expression | MENU LINE expression | COMMENT LINE expression | ERROR LINE expression | FORM LINE expression | INPUT (WRAP | NO WRAP) | INSERT KEY expression | DELETE KEY expression | NEXT KEY expression | PREVIOUS KEY expression | ACCEPT KEY expression | HELP FILE expression | HELP KEY expression | INPUT attributeList | DISPLAY attributeList | SQL INTERRUPT (ON | OFF) | FIELD ORDER (CONSTRAINED | UNCONSTRAINED))
           ^
L802:    | FETCH (NEXT | (PREVIOUS | PRIOR) | FIRST | LAST | CURRENT | RELATIVE expression | ABSOLUTE expression)? cursorName (INTO variableList)?
                         ^
L851:    | (tableIdentifier indexingVariable?) (DOT STAR | DOT columnsTableId)?
           ^
L855:    : (sqlExpression sqlAlias? (COMMA sqlExpression sqlAlias?)*)
           ^
L859:    : SELECT (ALL | (DISTINCT | UNIQUE))? selectList
                         ^
L893:    : (UNION ALL? simpleSelectStatement)
           ^
L933:    : UPDATE tableIdentifier SET ((columnsTableId EQUAL expression (COMMA columnsTableId EQUAL expression)*) | ((LPAREN columnsList RPAREN | (aliasName DOT)? STAR) EQUAL (LPAREN expression (COMMA expression)* RPAREN | (aliasName DOT)? STAR))) (WHERE (condition | CURRENT OF cursorName))?
                                       ^
L933:    : UPDATE tableIdentifier SET ((columnsTableId EQUAL expression (COMMA columnsTableId EQUAL expression)*) | ((LPAREN columnsList RPAREN | (aliasName DOT)? STAR) EQUAL (LPAREN expression (COMMA expression)* RPAREN | (aliasName DOT)? STAR))) (WHERE (condition | CURRENT OF cursorName))?
                                                                                                                    ^
L960:    : DATABASE (constantIdentifier (ATSYMBOL constantIdentifier)?) EXCLUSIVE? SEMI?
                    ^
L981:    | (SQLWARNING | WARNING)
           ^
L985:    : (CONTINUE | STOP)
           ^
L995:    : OUTPUT (REPORT TO (string | PIPE string | PRINTER))? ((LEFT MARGIN numericConstant) | (RIGHT MARGIN numericConstant) | (TOP MARGIN numericConstant) | (BOTTOM MARGIN numericConstant) | (PAGE LENGTH numericConstant) | (TOP OF PAGE string))*
                                                                 ^
L995:    : OUTPUT (REPORT TO (string | PIPE string | PRINTER))? ((LEFT MARGIN numericConstant) | (RIGHT MARGIN numericConstant) | (TOP MARGIN numericConstant) | (BOTTOM MARGIN numericConstant) | (PAGE LENGTH numericConstant) | (TOP OF PAGE string))*
                                                                                                 ^
L995:    : OUTPUT (REPORT TO (string | PIPE string | PRINTER))? ((LEFT MARGIN numericConstant) | (RIGHT MARGIN numericConstant) | (TOP MARGIN numericConstant) | (BOTTOM MARGIN numericConstant) | (PAGE LENGTH numericConstant) | (TOP OF PAGE string))*
                                                                                                                                  ^
L995:    : OUTPUT (REPORT TO (string | PIPE string | PRINTER))? ((LEFT MARGIN numericConstant) | (RIGHT MARGIN numericConstant) | (TOP MARGIN numericConstant) | (BOTTOM MARGIN numericConstant) | (PAGE LENGTH numericConstant) | (TOP OF PAGE string))*
                                                                                                                                                                 ^
L995:    : OUTPUT (REPORT TO (string | PIPE string | PRINTER))? ((LEFT MARGIN numericConstant) | (RIGHT MARGIN numericConstant) | (TOP MARGIN numericConstant) | (BOTTOM MARGIN numericConstant) | (PAGE LENGTH numericConstant) | (TOP OF PAGE string))*
                                                                                                                                                                                                   ^
L995:    : OUTPUT (REPORT TO (string | PIPE string | PRINTER))? ((LEFT MARGIN numericConstant) | (RIGHT MARGIN numericConstant) | (TOP MARGIN numericConstant) | (BOTTOM MARGIN numericConstant) | (PAGE LENGTH numericConstant) | (TOP OF PAGE string))*
                                                                                                                                                                                                                                   ^
L1025:    : (ACCEPT | ASCII | COUNT | CURRENT | FALSE | FIRST | FOUND | GROUP | HIDE | INDEX | INT_FLAG | INTERRUPT | LAST | LENGTH | LINENO | MDY | NO | NOT | NOTFOUND | NULL_ | PAGENO | REAL | SIZE | SQL | STATUS | TEMP | TIME | TODAY | TRUE | USER | WAIT | WEEKDAY | WORK)
            ^
L1031:    : ('a' | 'A')
            ^
L1036:    : ('b' | 'B')
            ^
L1041:    : ('c' | 'C')
            ^
L1046:    : ('d' | 'D')
            ^
L1051:    : ('e' | 'E')
            ^
L1056:    : ('f' | 'F')
            ^
L1061:    : ('g' | 'G')
            ^
L1066:    : ('h' | 'H')
            ^
L1071:    : ('i' | 'I')
            ^
L1076:    : ('j' | 'J')
            ^
L1081:    : ('k' | 'K')
            ^
L1086:    : ('l' | 'L')
            ^
L1091:    : ('m' | 'M')
            ^
L1096:    : ('n' | 'N')
            ^
L1101:    : ('o' | 'O')
            ^
L1106:    : ('p' | 'P')
            ^
L1111:    : ('q' | 'Q')
            ^
L1116:    : ('r' | 'R')
            ^
L1121:    : ('s' | 'S')
            ^
L1126:    : ('t' | 'T')
            ^
L1131:    : ('u' | 'U')
            ^
L1136:    : ('v' | 'V')
            ^
L1141:    : ('w' | 'W')
            ^
L1146:    : ('x' | 'X')
            ^
L1151:    : ('y' | 'Y')
            ^
L1156:    : ('z' | 'Z')
            ^
L2783:    : '<' (('>') | ('='))? | '!=' | '^='
                 ^
L2783:    : '<' (('>') | ('='))? | '!=' | '^='
                         ^
L2871:    : ('"') (
            ^
L2871:    : ('"') (
                  ^
L2872:    /*ESC*|*/ ~ ('"' | '\\'))* ('"') | ('\'') (
                                     ^
L2872:    /*ESC*|*/ ~ ('"' | '\\'))* ('"') | ('\'') (
                                             ^
L2872:    /*ESC*|*/ ~ ('"' | '\\'))* ('"') | ('\'') (
                                                    ^
L2873:    /*ESC|~*/ ('\\' | '\''))* ('\'')
                    ^
L2873:    /*ESC|~*/ ('\\' | '\''))* ('\'')
                                    ^
L2879:    : '.' (('0' .. '9')+)? | (('0' .. '9') ('0' .. '9')*)
                ^
L2879:    : '.' (('0' .. '9')+)? | (('0' .. '9') ('0' .. '9')*)
                                   ^
L2879:    : '.' (('0' .. '9')+)? | (('0' .. '9') ('0' .. '9')*)
                                    ^
L2932:    : ('0' .. '9' | 'a' .. 'f')
            ^
./infosapient
L48:    | ((expr | attribClause) operator_ (expr | attribClause) (operator_ (expr | attribClause))*)
          ^
L57:    : id_ ('s' | 'are') (hedgeCollection)? (nLiteral | id_ | restrictionHedge)
                            ^
L61:    : (hedge)+
          ^
L65:    : ('increased' | 'decreased')
          ^
L69:    : ('about' | 'above' | 'after' | 'around' | 'before' | 'below' | 'closeTo' | 'definitely' | 'extremely' | 'generally' | 'mostly' | 'must' | 'near' | ('negative' | 'negatively') | 'not' | ('positive' | 'positively') | 'roughly' | 'should' | 'slightly' | 'somewhat' | 'very' | 'inVicinityOf')
          ^
L69:    : ('about' | 'above' | 'after' | 'around' | 'before' | 'below' | 'closeTo' | 'definitely' | 'extremely' | 'generally' | 'mostly' | 'must' | 'near' | ('negative' | 'negatively') | 'not' | ('positive' | 'positively') | 'roughly' | 'should' | 'slightly' | 'somewhat' | 'very' | 'inVicinityOf')
                                                                                                                                                             ^
L69:    : ('about' | 'above' | 'after' | 'around' | 'before' | 'below' | 'closeTo' | 'definitely' | 'extremely' | 'generally' | 'mostly' | 'must' | 'near' | ('negative' | 'negatively') | 'not' | ('positive' | 'positively') | 'roughly' | 'should' | 'slightly' | 'somewhat' | 'very' | 'inVicinityOf')
                                                                                                                                                                                                   ^
L73:    : ('and' | 'boundedAnd' | 'cosineNot' | 'meanAnd' | 'meanOr' | 'or' | 'productAnd' | 'productOr' | 'sugenoNot' | 'thresholdNot' | 'yagerAnd' | 'yagerNot' | 'yagerOr')
          ^
./iri
L160:    | (':' | '@')
           ^
L165:    : (ipchar | (IPRIVATE | '/' | '?'))*
                     ^
L170:    : (ipchar | ('/' | '?'))*
                     ^
L177:    | ('-' | '.' | '_' | '~' | UCSCHAR)
           ^
L182:    : alpha (alpha | digit | ('+' | '-' | '.'))*
                                  ^
L250:    | ('-' | '.' | '_' | '~')
           ^
L316:    | (A | B | C | D | E | F)
           ^
./iso8601
L157: timeZoneBasic: (('+'|'-') hour minute?)|timeZoneUtc;
                     ^
L158: timeZoneExtended: (('+'|'-') hour (':' minute)?)|timeZoneUtc;
                        ^
./istc
L60:    : ('A' .. 'F' | '0' .. '9')
          ^
./itn
./jam
L47:    : note (chordquality bass?)
               ^
./janus
./java/java
JavaParser.g4:L256:     : '{' (variableInitializer (',' variableInitializer)* (',')? )? '}'
                                                                              ^
JavaParser.g4:L355:     : '{' (elementValue (',' elementValue)*)? (',')? '}'
                                                                  ^
JavaParser.g4:L363:     : '{' (annotationTypeElementDeclaration)* '}'
                              ^
./java/java8
Java8Parser.g4:L958:   ( primaryNoNewArray_lf_primary
                       ^
Java8Parser.g4:L1089:  : ( primaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primary '[' expression ']'
                         ^
./java/java9
Java9Parser.g4:L1025:   ( primaryNoNewArray_lf_primary
                        ^
Java9Parser.g4:L1166:  : ( primaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primary '[' expression ']'
                         ^
./javadoc
./javascript/ecmascript
L684:  : ( NullLiteral
         ^
L706:  | ( NullLiteral
         ^
./javascript/javascript
JavaScriptParser.g4:L274:     : ('[' elementList ']')
                                ^
./javascript/jsx
JavaScriptParser.g4:L273:     : ('[' elementList ']')
                                ^
./javascript/typescript
TypeScriptParser.g4:L45:     : (arrayLiteral | objectLiteral)
                               ^
TypeScriptParser.g4:L220:     : decoratorList? ( accessibilityModifier? identifierOrPattern ('?' typeAnnotation? | typeAnnotation? initializer))
                                               ^
TypeScriptParser.g4:L259:     : accessibilityModifier? Constructor '(' formalParameterList? ')' ( ('{' functionBody '}') | SemiColon)?
                                                                                                  ^
TypeScriptParser.g4:L502:     : Function_ Identifier callSignature ( ('{' functionBody '}') | SemiColon)
                                                                     ^
TypeScriptParser.g4:L536:     | propertyMemberBase propertyName callSignature ( ('{' functionBody '}') | SemiColon)           # MethodDeclarationExpression
                                                                                ^
TypeScriptParser.g4:L597:     : ('[' elementList? ']')
                                ^
./joss
./jpa
L20:    : select_clause from_clause (where_clause)? (groupby_clause)? (having_clause)? (orderby_clause)?
                                    ^
L20:    : select_clause from_clause (where_clause)? (groupby_clause)? (having_clause)? (orderby_clause)?
                                                    ^
L20:    : select_clause from_clause (where_clause)? (groupby_clause)? (having_clause)? (orderby_clause)?
                                                                      ^
L20:    : select_clause from_clause (where_clause)? (groupby_clause)? (having_clause)? (orderby_clause)?
                                                                                       ^
L24:    : update_clause (where_clause)?
                        ^
L28:    : delete_clause (where_clause)?
                        ^
L40:    : abstract_schema_name ('AS')? IDENTIFICATION_VARIABLE
                               ^
L44:    : join_spec join_association_path_expression ('AS')? IDENTIFICATION_VARIABLE
                                                     ^
L52:    : (('LEFT') ('OUTER')? | 'INNER')? 'JOIN'
           ^
L52:    : (('LEFT') ('OUTER')? | 'INNER')? 'JOIN'
                    ^
L69:    : 'IN' '(' collection_valued_path_expression ')' ('AS')? IDENTIFICATION_VARIABLE
                                                         ^
L94:    : 'UPDATE' abstract_schema_name (('AS')? IDENTIFICATION_VARIABLE)? 'SET' update_item (',' update_item)*
                                         ^
L112:    : 'DELETE' 'FROM' abstract_schema_name (('AS')? IDENTIFICATION_VARIABLE)?
                                                 ^
L116:    : 'SELECT' ('DISTINCT')? select_expression (',' select_expression)*
                    ^
L137:    : ('AVG' | 'MAX' | 'MIN' | 'SUM') '(' ('DISTINCT')? state_field_path_expression ')'
                                               ^
L138:    | 'COUNT' '(' ('DISTINCT')? (IDENTIFICATION_VARIABLE | state_field_path_expression | single_valued_association_path_expression) ')'
                       ^
L167:    : simple_select_clause subquery_from_clause (where_clause)? (groupby_clause)? (having_clause)?
                                                     ^
L167:    : simple_select_clause subquery_from_clause (where_clause)? (groupby_clause)? (having_clause)?
                                                                     ^
L167:    : simple_select_clause subquery_from_clause (where_clause)? (groupby_clause)? (having_clause)?
                                                                                       ^
L176:    | association_path_expression ('AS')? IDENTIFICATION_VARIABLE
                                       ^
L186:    : 'SELECT' ('DISTINCT')? simple_select_expression
                    ^
L196:    : (conditional_term) ('OR' conditional_term)*
           ^
L200:    : (conditional_factor) ('AND' conditional_factor)*
           ^
L204:    : ('NOT')? conditional_primary
           ^
L224:    : arithmetic_expression ('NOT')? 'BETWEEN' arithmetic_expression 'AND' arithmetic_expression
                                 ^
L225:    | string_expression ('NOT')? 'BETWEEN' string_expression 'AND' string_expression
                             ^
L226:    | datetime_expression ('NOT')? 'BETWEEN' datetime_expression 'AND' datetime_expression
                               ^
L230:    : state_field_path_expression ('NOT')? 'IN' '(' (in_item (',' in_item)* | subquery) ')'
                                       ^
L239:    : string_expression ('NOT')? 'LIKE' pattern_value ('ESCAPE' ESCAPE_CHARACTER)?
                             ^
L243:    : (single_valued_path_expression | input_parameter) 'IS' ('NOT')? 'NULL'
                                                                  ^
L247:    : collection_valued_path_expression 'IS' ('NOT')? 'EMPTY'
                                                  ^
L251:    : entity_expression ('NOT')? 'MEMBER' ('OF')? collection_valued_path_expression
                             ^
L251:    : entity_expression ('NOT')? 'MEMBER' ('OF')? collection_valued_path_expression
                                               ^
L255:    : ('NOT')? 'EXISTS' '(' subquery ')'
           ^
L286:    : (arithmetic_term) (('+' | '-') arithmetic_term)*
           ^
L290:    : (arithmetic_factor) (('*' | '/') arithmetic_factor)*
           ^
L381:    | 'TRIM' '(' ((trim_specification)? (TRIM_CHARACTER)? 'FROM')? string_primary ')'
                       ^
L381:    | 'TRIM' '(' ((trim_specification)? (TRIM_CHARACTER)? 'FROM')? string_primary ')'
                                             ^
L447:    : '\'' (~ ('\'' | '\\')) '\''
                ^
L451:    : ('\'' (~ ('\\' | '"'))* '\'')
           ^
L451:    : ('\'' (~ ('\\' | '"'))* '\'')
                 ^
./json
./json5
./karel
./kirikiri-tjs
TJSLexer.g4:L147: StringLiteral:                  ('"' DoubleStringCharacter* '"'
                                                  ^
TJSLexer.g4:L151: TemplateStringLiteral:          ('@"' ('\\"' | ~'"')* '"'      // TJS use @"str ${Val} ,str &val; ."
                                                  ^
./kotlin/kotlin
KotlinParser.g4:L191:     (NL* (multiVariableDeclaration | variableDeclaration))
                          ^
KotlinParser.g4:L254:     : (functionTypeReceiver NL* DOT NL*)? functionTypeParameters  NL* ARROW (NL* type)
                                                                                                  ^
KotlinParser.g4:L330:     : elvisExpression ((inOperator NL* elvisExpression)+ | (isOperator NL* type))?
                                                                                 ^
KotlinLexer.g4:L203:     : ('0'
                           ^
KotlinLexer.g4:L288:     | '`' ~('`')+ '`'
                                ^
./kotlin/kotlin-formal
KotlinParser.g4:L180:     (NL* (multiVariableDeclaration | variableDeclaration))
                          ^
KotlinParser.g4:L643:     : (receiverType? NL* '::' NL* (simpleIdentifier | 'class'))
                            ^
./kquery
L35:     : ( ktranslationUnit )*
           ^
L59: expressionList : ( expression )*;
                      ^
L60: identifierList : ( Identifier )*;
                      ^
L83:     | LeftParen comparisonExpr (widthOrSizeExpr)? leftExpr rightExpr RightParen             #CompExprWidth
                                    ^
L84:     | LeftParen concatExpr (widthOrSizeExpr)? leftExpr rightExpr RightParen                 #ConcatExprWidth
                                ^
L87:     | LeftParen genericBitRead widthOrSizeExpr expression (version)? RightParen             #ReadExpresssionVersioned
                                                               ^
L89:     | LeftParen exprNegation (widthOrSizeExpr)? expression RightParen                       #NegationExprWidth
                                  ^
L107:     | LeftBracket (updateList)? RightBracket ATR version    #UpdationList
                        ^
L213:     : BinId (BIN_DIGIT)+  
                  ^
L217:     : OctId (OCTAL_DIGIT)+  
                  ^
L221:     : HexId (HEX_DIGIT)+
                  ^
L229:     : INT (DIGIT)+
                ^
L237:     : WIDTH (DIGIT)+
                  ^
L292:     : ('0'..'9')  
            ^
L297:     : ('0' | '1' | '_')
            ^
L302:     : ('0'..'7' | '_')
            ^
L307:     : ('0'..'9'|'a'..'f'|'A'..'F'|'_') 
            ^
./kuka
L128:    : variableName (parameterCallType)?
                        ^
L136:    : (forwardDeclaration NEWLINE | variableDeclaration NEWLINE | (NEWLINE) NEWLINE | importStatement NEWLINE)*
                                                                       ^
L149:    : type_ (parameterCallType)?
                 ^
L161:    : IDENTIFIER (arrayVariableSuffix)?
                      ^
L190:    | RETURN (assignmentExpression)? NEWLINE
                  ^
L191:    | BRAKE (IDENTIFIER)? NEWLINE
                 ^
L201:    | TRIGGER WHEN (IDENTIFIER) '=' expression DELAY '=' expression DO assignmentExpression (PRIO '=' expression)? NEWLINE
                        ^
L285:    | variableName ('.' variableName)* (arguments)?
                                            ^
L294:    : primitiveType ('[' (INTLITERAL)? ']')?
                              ^
L295:    | typeName ('[' (INTLITERAL)? ']')?
                         ^
L310:    : '(' (expressionList)? ')'
               ^
L720:    : ('a' | 'A')
           ^
L725:    : ('b' | 'B')
           ^
L730:    : ('c' | 'C')
           ^
L735:    : ('d' | 'D')
           ^
L740:    : ('e' | 'E')
           ^
L745:    : ('f' | 'F')
           ^
L750:    : ('g' | 'G')
           ^
L755:    : ('h' | 'H')
           ^
L760:    : ('i' | 'I')
           ^
L765:    : ('j' | 'J')
           ^
L770:    : ('k' | 'K')
           ^
L775:    : ('l' | 'L')
           ^
L780:    : ('m' | 'M')
           ^
L785:    : ('n' | 'N')
           ^
L790:    : ('o' | 'O')
           ^
L795:    : ('p' | 'P')
           ^
L800:    : ('q' | 'Q')
           ^
L805:    : ('r' | 'R')
           ^
L810:    : ('s' | 'S')
           ^
L815:    : ('t' | 'T')
           ^
L820:    : ('u' | 'U')
           ^
L825:    : ('v' | 'V')
           ^
L830:    : ('w' | 'W')
           ^
L835:    : ('x' | 'X')
           ^
L840:    : ('y' | 'Y')
           ^
L845:    : ('z' | 'Z')
           ^
L880:    : '\\' ('b' | 't' | 'n' | 'f' | 'r' | '"' | '\'' | '\\' | ('0' .. '3') ('0' .. '7') ('0' .. '7') | ('0' .. '7') ('0' .. '7') | ('0' .. '7'))
                                                                   ^
L880:    : '\\' ('b' | 't' | 'n' | 'f' | 'r' | '"' | '\'' | '\\' | ('0' .. '3') ('0' .. '7') ('0' .. '7') | ('0' .. '7') ('0' .. '7') | ('0' .. '7'))
                                                                                ^
L880:    : '\\' ('b' | 't' | 'n' | 'f' | 'r' | '"' | '\'' | '\\' | ('0' .. '3') ('0' .. '7') ('0' .. '7') | ('0' .. '7') ('0' .. '7') | ('0' .. '7'))
                                                                                             ^
L880:    : '\\' ('b' | 't' | 'n' | 'f' | 'r' | '"' | '\'' | '\\' | ('0' .. '3') ('0' .. '7') ('0' .. '7') | ('0' .. '7') ('0' .. '7') | ('0' .. '7'))
                                                                                                            ^
L880:    : '\\' ('b' | 't' | 'n' | 'f' | 'r' | '"' | '\'' | '\\' | ('0' .. '3') ('0' .. '7') ('0' .. '7') | ('0' .. '7') ('0' .. '7') | ('0' .. '7'))
                                                                                                                         ^
L880:    : '\\' ('b' | 't' | 'n' | 'f' | 'r' | '"' | '\'' | '\\' | ('0' .. '3') ('0' .. '7') ('0' .. '7') | ('0' .. '7') ('0' .. '7') | ('0' .. '7'))
                                                                                                                                        ^
L905:    : ('0' .. '9' | 'a' .. 'f' | 'A' .. 'F')
           ^
L920:    : ('0' | '1')
           ^

@kaby76
Copy link
Contributor Author

kaby76 commented May 11, 2023

./lambda
./lark
LarkParser.g4:L44:       | (REGEXP | STRING)
                           ^
./lcc
L69:     : ('0'..'9')
           ^
L73:     : ('A'..'Z')
           ^
./less
LessParser.g4:L29:    : (expression +) mathStatement?
                        ^
LessParser.g4:L80:    : '@import' (LPAREN (importOption (COMMA importOption)*) RPAREN)? referenceUrl mediaTypes? ';'
                                          ^
LessParser.g4:L98:    : (Identifier (COMMA Identifier)*)
                        ^
LessParser.g4:L158:    : (GT | PLUS | TIL)
                         ^
LessParser.g4:L178:    : (Identifier | IdentifierAfter)
                         ^
LessLexer.g4:L21:    : ('%' | 'px' | 'cm' | 'mm' | 'in' | 'pt' | 'pc' | 'em' | 'ex' | 'deg' | 'rad' | 'grad' | 'ms' | 's' | 'hz' | 'khz')
                       ^
LessLexer.g4:L282:    : '"' (~ ('"' | '\n' | '\r'))* '"' | '\'' (~ ('\'' | '\n' | '\r'))* '\''
                            ^
LessLexer.g4:L282:    : '"' (~ ('"' | '\n' | '\r'))* '"' | '\'' (~ ('\'' | '\n' | '\r'))* '\''
                                                                ^
LessLexer.g4:L310:    : '//' (~ ('\n' | '\r'))* ('\n' | '\r' ('\n')?) -> skip
                             ^
LessLexer.g4:L310:    : '//' (~ ('\n' | '\r'))* ('\n' | '\r' ('\n')?) -> skip
                                                             ^
LessLexer.g4:L729:    : STRING | (~ (')' | '\n' | '\r' | ';')) +
                                 ^
./limbo
./lisa
L46:  | ('break' ';')
        ^
L47:  | ('continue' ';');
        ^
L60: expression: (variable (exprop expression)*) | simple_expression;
                 ^
L110: INTEGER: [1-9]([0-9]*);
                    ^
L112: ID: [a-zA-Z] ([a-z0-9A-Z_]*);
                   ^
./lisp
./llvm-ir
L201:  | sanitizerKind = (
                         ^
L702:  'phi' fastMathFlag* type (inc (',' inc)*) (
                                ^
L1217:   diTemplateValueParameterField (
                                       ^
L1358: spFlagsField: 'spFlags:' (diSPFlag ('|' diSPFlag)*);
                                ^
L1412: fragment QuotedString: '"' (~["\r\n])* '"';
                                  ^
./logo/logo
L128:    : (('+' | '-'))* (number | deref | func_)
           ^
L128:    : (('+' | '-'))* (number | deref | func_)
            ^
./logo/ucb-logo
./lpc
./lrc
./ltl
./lua
./lucene
LuceneLexer.g4:L127: fragment TERM_CHAR : ( TERM_START_CHAR | ESCAPED_CHAR | [\-+] );
                                          ^
./matlab
L364:    : ('+' | '-')
           ^
./mckeeman-form
./mdx
L5:    : (select_statement) EOF
         ^
L26:    : MEMBER member_name AS ((QUOTE value_expression QUOTE | value_expression) COMMA member_property_def_list?)
                                ^
L152:    : identifier LPAREN (exp_list)? RPAREN
                             ^
L161:    | (LPAREN exp_list RPAREN)
           ^
L162:    | (LBRACE (exp_list)? RBRACE)
           ^
L162:    | (LBRACE (exp_list)? RBRACE)
                   ^
L174:    : CASE (value_expression)? (when_list)? (ELSE value_expression)? END
                ^
L174:    : CASE (value_expression)? (when_list)? (ELSE value_expression)? END
                                    ^
L178:    : when_clause (when_clause)*
                       ^
L195:    : (unquoted_identifier | quoted_identifier)
           ^
L478:    : ('[' (ID ((' ' | '\t') + ID)* | NUMBER) ']')
           ^
L483:    : '"' (~ '"')* '"' | '\'' (~ '\'')* '\''
               ^
L483:    : '"' (~ '"')* '"' | '\'' (~ '\'')* '\''
                                   ^
./memcached_protocol
L23:    : ((storage_command_name key flags exptime bytes) | ('cas' key flags exptime bytes cas_unique)) noreply?
           ^
L23:    : ((storage_command_name key flags exptime bytes) | ('cas' key flags exptime bytes cas_unique)) noreply?
                                                            ^
L86:    | ('VALUE' key flags bytes cas_unique?)
          ^
./metamath
./metric
L45:    : ('^' INTE)
          ^
./microc
./modelica
L30:    : ('within' (name)? ';')* (('final')? class_definition ';')* EOF
                    ^
L30:    : ('within' (name)? ';')* (('final')? class_definition ';')* EOF
                                   ^
L34:    : ('encapsulated')? class_prefixes class_specifier
          ^
L44:    : ('partial')? ('class' | 'model' | ('operator')? 'record' | 'block' | ('expandable')? 'connector' | 'type' | 'package' | (('pure' | 'impure'))? ('operator')? 'function' | 'operator')
          ^
L44:    : ('partial')? ('class' | 'model' | ('operator')? 'record' | 'block' | ('expandable')? 'connector' | 'type' | 'package' | (('pure' | 'impure'))? ('operator')? 'function' | 'operator')
                                            ^
L44:    : ('partial')? ('class' | 'model' | ('operator')? 'record' | 'block' | ('expandable')? 'connector' | 'type' | 'package' | (('pure' | 'impure'))? ('operator')? 'function' | 'operator')
                                                                               ^
L44:    : ('partial')? ('class' | 'model' | ('operator')? 'record' | 'block' | ('expandable')? 'connector' | 'type' | 'package' | (('pure' | 'impure'))? ('operator')? 'function' | 'operator')
                                                                                                                                  ^
L44:    : ('partial')? ('class' | 'model' | ('operator')? 'record' | 'block' | ('expandable')? 'connector' | 'type' | 'package' | (('pure' | 'impure'))? ('operator')? 'function' | 'operator')
                                                                                                                                   ^
L44:    : ('partial')? ('class' | 'model' | ('operator')? 'record' | 'block' | ('expandable')? 'connector' | 'type' | 'package' | (('pure' | 'impure'))? ('operator')? 'function' | 'operator')
                                                                                                                                                         ^
L49:    | 'extends' IDENT (class_modification)? string_comment composition 'end' IDENT
                          ^
L53:    : IDENT '=' base_prefix name (array_subscripts)? (class_modification)? comment
                                     ^
L53:    : IDENT '=' base_prefix name (array_subscripts)? (class_modification)? comment
                                                         ^
L54:    | IDENT '=' 'enumeration' '(' ((enum_list)? | ':') ')' comment
                                       ^
L74:    : element_list ('public' element_list | 'protected' element_list | equation_section | algorithm_section)* ('external' (language_specification)? (external_function_call)? (annotation)? ';')? (annotation ';')?
                                                                                                                              ^
L74:    : element_list ('public' element_list | 'protected' element_list | equation_section | algorithm_section)* ('external' (language_specification)? (external_function_call)? (annotation)? ';')? (annotation ';')?
                                                                                                                                                        ^
L74:    : element_list ('public' element_list | 'protected' element_list | equation_section | algorithm_section)* ('external' (language_specification)? (external_function_call)? (annotation)? ';')? (annotation ';')?
                                                                                                                                                                                  ^
L82:    : (component_reference '=')? IDENT '(' (expression_list)? ')'
                                               ^
L92:    | ('redeclare')? ('final')? ('inner')? ('outer')? ((class_definition | component_clause) | 'replaceable' (class_definition | component_clause) (constraining_clause comment)?)
          ^
L92:    | ('redeclare')? ('final')? ('inner')? ('outer')? ((class_definition | component_clause) | 'replaceable' (class_definition | component_clause) (constraining_clause comment)?)
                         ^
L92:    | ('redeclare')? ('final')? ('inner')? ('outer')? ((class_definition | component_clause) | 'replaceable' (class_definition | component_clause) (constraining_clause comment)?)
                                    ^
L92:    | ('redeclare')? ('final')? ('inner')? ('outer')? ((class_definition | component_clause) | 'replaceable' (class_definition | component_clause) (constraining_clause comment)?)
                                               ^
L92:    | ('redeclare')? ('final')? ('inner')? ('outer')? ((class_definition | component_clause) | 'replaceable' (class_definition | component_clause) (constraining_clause comment)?)
                                                           ^
L104:    : 'extends' name (class_modification)? (annotation)?
                          ^
L104:    : 'extends' name (class_modification)? (annotation)?
                                                ^
L108:    : 'constrainedby' name (class_modification)?
                                ^
L112:    : type_prefix type_specifier (array_subscripts)? component_list
                                      ^
L128:    : declaration (condition_attribute)? comment
                       ^
L136:    : IDENT (array_subscripts)? (modification)?
                 ^
L136:    : IDENT (array_subscripts)? (modification)?
                                     ^
L146:    : '(' (argument_list)? ')'
               ^
L159:    : ('each')? ('final')? (element_modification | element_replaceable)
           ^
L159:    : ('each')? ('final')? (element_modification | element_replaceable)
                     ^
L163:    : name (modification)? string_comment
                ^
L167:    : 'redeclare' ('each')? ('final')? ((short_class_definition | component_clause1) | element_replaceable)
                       ^
L167:    : 'redeclare' ('each')? ('final')? ((short_class_definition | component_clause1) | element_replaceable)
                                 ^
L167:    : 'redeclare' ('each')? ('final')? ((short_class_definition | component_clause1) | element_replaceable)
                                             ^
L171:    : 'replaceable' (short_class_definition | component_clause1) (constraining_clause)?
                                                                      ^
L187:    : ('initial')? 'equation' (equation ';')*
           ^
L191:    : ('initial')? 'algorithm' (statement ';')*
           ^
L260:    : ('not')? relation
           ^
L277:    : (add_op)? term (add_op term)*
           ^
L316:    : ('.')? IDENT ('.' IDENT)*
           ^
L320:    : ('.')? IDENT (array_subscripts)? ('.' IDENT (array_subscripts)?)*
           ^
L320:    : ('.')? IDENT (array_subscripts)? ('.' IDENT (array_subscripts)?)*
                        ^
L320:    : ('.')? IDENT (array_subscripts)? ('.' IDENT (array_subscripts)?)*
                                                       ^
L324:    : '(' (function_arguments)? ')'
               ^
L341:    : 'function' name '(' (named_arguments)? ')'
                               ^
L346:    : (expression)? (',' (expression)?)*
           ^
L346:    : (expression)? (',' (expression)?)*
                              ^
L363:    : string_comment (annotation)?
                          ^
L416:    : DIGIT (DIGIT)*
                 ^
L421:    : UNSIGNED_INTEGER ('.' (UNSIGNED_INTEGER)?)? (('e' | 'E') ('+' | '-')? UNSIGNED_INTEGER)?
                                 ^
./modula2pim4
L218:    : qualident (designatorTail)?
                     ^
L576:    : DIGIT + | OCTAL_DIGIT + ('B' | 'C') | DIGIT (HEX_DIGIT)* 'H'
                                                       ^
./molecule
./moo
L72:    : '@verb' (verbname ':' name) name + permissions?
                  ^
L209:    | ('!' expression)
           ^
L238:    : propertyname (('.' name) | '[' expression ']')*
                         ^
./morsecode
./mps
L19:    : ROWINDICATORCARD (rowdatacard) +
                           ^
L147:    : ('UP' | 'LO' | 'FX' | 'LI' | 'UI' | 'SC' | 'FR' | 'BV' | 'MI' | 'PL')
           ^
L152:    : ('E' | 'L' | 'G' | 'N')
           ^
L177:    : (LETTER | DIGIT)
           ^
L182:    : ('a' .. 'z' | 'A' .. 'Z' | '_' | '/' | '#' | '@' | '(' | ')')
           ^
./muddb
L136:    : ('\r' '\n' | '\n' | '\r')
           ^
./mumath
L23:    : FUNCTION ID list_ COMMA statments (COMMA)? ENDFUN
                                            ^
L40:    : LOOP statments (COMMA)? ENDLOOP
                         ^
L44:    : WHEN expression ((COMMA)? EXIT COMMA statments (COMMA)? EXIT)
                          ^
L44:    : WHEN expression ((COMMA)? EXIT COMMA statments (COMMA)? EXIT)
                           ^
L44:    : WHEN expression ((COMMA)? EXIT COMMA statments (COMMA)? EXIT)
                                                         ^
L53:    | (NOT_EQUAL | LT | LE | GE | GT | EQUATION)
          ^
L57:    : (MINUS)? term (addingOperator term)*
          ^
L71:    : (STAR | SLASH | MOD | AND | POWER)
          ^
L83:    : (NUMBER | STRING | QUOTE ID | QUOTE STRING)
          ^
L87:    : ID LPAREN ((actualParameter (COMMA actualParameter)*) |) RPAREN
                     ^
L91:    : (EQF | EQC)
          ^
L262:    : ('A' .. 'Z' | '@' | '{' | '#') ('A' .. 'Z' | '0' .. '9' | '#' | '}')* (ARR)?
                                                                                 ^
L272:    : '"' (~ '"')* '"'
               ^
./mumps
L50:    : (label | (SPACE + DOT +) | SPACE +) (command + | if_ | subproc)? SPACE* CR
                   ^
L95:    | (CLOSE | ELSE | GOTO | JOB | LOCK | OPEN | TCOMMIT | TRESTART | TROLLBACK | TSTART | USE)
          ^
L115:    | (term (NGT | NLT | LT | GT | EQUALS) term)
           ^
L209:    | (BANG | STRING_LITERAL)
           ^
L502:    : ('a' | 'A')
           ^
L507:    : ('b' | 'B')
           ^
L512:    : ('c' | 'C')
           ^
L517:    : ('d' | 'D')
           ^
L522:    : ('e' | 'E')
           ^
L527:    : ('f' | 'F')
           ^
L532:    : ('g' | 'G')
           ^
L537:    : ('h' | 'H')
           ^
L542:    : ('i' | 'I')
           ^
L547:    : ('j' | 'J')
           ^
L552:    : ('k' | 'K')
           ^
L557:    : ('l' | 'L')
           ^
L562:    : ('m' | 'M')
           ^
L567:    : ('n' | 'N')
           ^
L572:    : ('o' | 'O')
           ^
L577:    : ('p' | 'P')
           ^
L582:    : ('q' | 'Q')
           ^
L587:    : ('r' | 'R')
           ^
L592:    : ('s' | 'S')
           ^
L597:    : ('t' | 'T')
           ^
L602:    : ('u' | 'U')
           ^
L607:    : ('v' | 'V')
           ^
L612:    : ('w' | 'W')
           ^
L617:    : ('x' | 'X')
           ^
L622:    : ('y' | 'Y')
           ^
L627:    : ('z' | 'Z')
           ^
./muparser
L68:  | (INT | FLOAT)      # numberAtom
        ^
L69:  | (TRUE | FALSE)     # booleanAtom
        ^
L70:  | (E | PI)           # predefinedConstantAtom
        ^
./newick
L35:    : ( (rootLeaf ';') | (rootInternal ';') | (branch ';') ) EOF
            ^
L35:    : ( (rootLeaf ';') | (rootInternal ';') | (branch ';') ) EOF
                             ^
L35:    : ( (rootLeaf ';') | (rootInternal ';') | (branch ';') ) EOF
                                                  ^
./oberon
L51:    : (DIGIT+)
          ^
L52:    | (DIGIT HEXDIGIT* 'H')
          ^
L172:    | designator (actualParameters)?
                      ^
L431:    : ('"' .*? '"')
           ^
L432:    | (DIGIT HEXDIGIT* 'X')
           ^
./objc
ObjectiveCParser.g4:L81:     : identifier ((LT protocolList GT) | genericsSpecifier)?
                                           ^
ObjectiveCParser.g4:L340:     : declarationSpecifiers? identifier (LP parameterList? RP) attributeSpecifier?
                                                                  ^
ObjectiveCParser.g4:L512:     : TYPEOF (LP expression RP)
                                       ^
ObjectiveCParser.g4:L717:     | (LP typeName RP) (castExpression | initializer)
                                ^
ObjectiveCParser.g4:L756:     | op=(INC | DEC)
                                   ^
./ocl
L58:       : ('static')? 'operation' ID 
             ^
./oncrpc
xdr.g4:L30: enumBody: '{' (IDENTIFIER '=' value) (',' IDENTIFIER '=' value)* '}';
                          ^
xdr.g4:L32: structBody: '{' (declaration ';') (declaration ';')* '}';
                            ^
xdr.g4:L39: caseSpec: ('case' value ':') ('case' value ':')* declaration ';';
                      ^
xdr.g4:L53: OCTAL : '0' [1-7] ([0-7])*;
                              ^
xdr.g4:L54: DECIMAL : ('-')? ([0-9])+;
                      ^
xdr.g4:L54: DECIMAL : ('-')? ([0-9])+;
                             ^
xdr.g4:L55: HEXADECIMAL : '0x' ([a-fA-F0-9])+;
                               ^
xdr.g4:L56: IDENTIFIER : [a-zA-Z] ([a-zA-Z0-9_])*;
                                  ^
./orwell
L63:    : (tyvar infix tyvar)
          ^
L64:    | (prefix tyvar)
          ^
L79:    | (infix tyvar)
          ^
L80:    | (tyvar infix)
          ^
L110:    | (infix tyterm1)
           ^
L111:    | (tyterm1 infix)
           ^
L123:    : (con typrimary*)
           ^
L124:    | (typrimary infix typrimary)
           ^
L125:    | (prefix typrimary)
           ^
L133:    : (assoc DIGIT)
           ^
L182:    | (patprimaryname patprimary*)
           ^
L187:    | ('(' (pat | patsection) ')')
           ^
L200:    | (infix pat1)
           ^
L201:    | (pat1 infix)
           ^
L217:    : (prefix term1)
           ^
L223:    | (primaryname primary*)
           ^
L241:    | (infix term1)
           ^
L242:    | (term1 infix)
           ^
L329:    | ('$' ID)
           ^
./p
./parkingsign
L123:    : ((INT HOUR) | (INT minute)) PARKING timeRange EXCEPT? dayRange?
            ^
L123:    : ((INT HOUR) | (INT minute)) PARKING timeRange EXCEPT? dayRange?
                         ^
L168:    : (time to time)
           ^
L169:    | (INT to time)
           ^
L226:    | (ANY TIME)
           ^
L426:    | ('12' NOON)
           ^
L431:    | ('12' MIDNIGHT)
           ^
L436:    | ('A.M.')
           ^
L441:    | ('P.M.')
           ^
./pascal
L41:    : programHeading (INTERFACE)? block DOT EOF
                         ^
L126:    : FUNCTION (formalParameterList)? COLON resultType
                    ^
L130:    : PROCEDURE (formalParameterList)?
                     ^
L156:    | (CHAR | BOOLEAN | INTEGER | REAL | STRING)
           ^
L257:    : PROCEDURE identifier (formalParameterList)? SEMI block
                                ^
L284:    : FUNCTION identifier (formalParameterList)? COLON resultType SEMI block
                               ^
L871:    : ('A' .. 'Z') ('A' .. 'Z' | '0' .. '9' | '_')*
           ^
L886:    : ('0' .. '9') + (('.' ('0' .. '9') + (EXPONENT)?)? | EXPONENT)
                                               ^
L891:    : ('E') ('+' | '-')? ('0' .. '9') +
           ^
L876:    : '\'' ('\'\'' | ~ ('\''))* '\''
                            ^
./pbm
L67:    : '#' (~ [\r\n])* -> skip
              ^
./pcre
L485:  : ( Backslash (D0 | D1 | D2 | D3) octal_digit octal_digit
         ^
./pddl
L34:    : ( NAME* | singleTypeNameList+ NAME* )
          ^
L38:    : ( NAME+ '-' t = type_ )
          ^
L42:    : ( '(' 'either' primType+ ')' ) | primType
          ^
L88:    : ( VARIABLE* | singleTypeVarList+ VARIABLE* )
          ^
L92:    : ( VARIABLE+ '-' t = type_ )
          ^
L115:    : ( ':precondition' ( ( '(' ')' ) | goalDesc ) )? ( ':effect' ( ( '(' ')' ) | effect ) )?
                               ^
L115:    : ( ':precondition' ( ( '(' ')' ) | goalDesc ) )? ( ':effect' ( ( '(' ')' ) | effect ) )?
                                                                         ^
L149:    : ':duration' durationConstraint | ':condition' ( ( '(' ')' ) | daGD ) | ':effect' ( ( '(' ')' ) | daEffect )
                                                           ^
L149:    : ':duration' durationConstraint | ':condition' ( ( '(' ')' ) | daGD ) | ':effect' ( ( '(' ')' ) | daEffect )
                                                                                              ^
L249:    : '(' ( ( binaryOp fExpDA fExpDA ) | ( '-' fExpDA ) ) ')' | '?duration' | fExp
                 ^
L249:    : '(' ( ( binaryOp fExpDA fExpDA ) | ( '-' fExpDA ) ) ')' | '?duration' | fExp
                                              ^
./pdn
./peoplecode
L120: forStmt : 'For' VAR_ID '=' expr 'To' expr (';' | ('Step' expr))? stmtList endfor='End-For' ;
                                                       ^
L147: StringLiteral   : '"' ( ~'"' )* '"' ;
                            ^
./pgn
./php
./pii
./pike
L266:    : type_ ('...')? identifier
                 ^
L270:    : (argument (',' argument)*) (',')?
           ^
L270:    : (argument (',' argument)*) (',')?
                                      ^
L274:    : type__ ('*')*
                  ^
L282:    | (OBJECTTYPE ('(' program_specifier ')')?)
           ^
L283:    | (MAPPINGTYPE ('(' type_ ':' type_ ')')?)
           ^
L284:    | (ARRAYTYPE ('(' type_ ')')?)
           ^
L285:    | (MULTISETTYPE ('(' type_ ')')?)
           ^
L286:    | (FUNCTIONTYPE function_type?)
           ^
L290:    : '(' type_ (',' type_)* ('...')? ')'
                                  ^
./pl0
L180:    : ('a' | 'A')
           ^
L185:    : ('b' | 'B')
           ^
L190:    : ('c' | 'C')
           ^
L195:    : ('d' | 'D')
           ^
L200:    : ('e' | 'E')
           ^
L205:    : ('f' | 'F')
           ^
L210:    : ('g' | 'G')
           ^
L215:    : ('h' | 'H')
           ^
L220:    : ('i' | 'I')
           ^
L225:    : ('j' | 'J')
           ^
L230:    : ('k' | 'K')
           ^
L235:    : ('l' | 'L')
           ^
L240:    : ('m' | 'M')
           ^
L245:    : ('n' | 'N')
           ^
L250:    : ('o' | 'O')
           ^
L255:    : ('p' | 'P')
           ^
L260:    : ('q' | 'Q')
           ^
L265:    : ('r' | 'R')
           ^
L270:    : ('s' | 'S')
           ^
L275:    : ('t' | 'T')
           ^
L280:    : ('u' | 'U')
           ^
L285:    : ('v' | 'V')
           ^
L290:    : ('w' | 'W')
           ^
L295:    : ('x' | 'X')
           ^
L300:    : ('y' | 'Y')
           ^
L305:    : ('z' | 'Z')
           ^
./plucid
L45:    | 'filter' (expression ',' expression ',' expression)
                   ^
L46:    | 'substr' (expression ',' expression ',' expression)
                   ^
L73:    | (N_SIGN integer_constant)
          ^
L85:    : (LETTER ALPHANUMERIC*)
          ^
L96:    | ('[' list_constant_element* ']')
          ^
L129:    | ('[%' expressions_list* '%]')
           ^
L134:    | (expression_item ',' expressions_list*)
           ^
L173:    | (expression ',' actuals_list)
           ^
L206:    : identifier (formals_list) '=' expression
                      ^
L211:    | (identifier ',' formals_list)
           ^
./ply
./pmmn
./postalcode
./powerbuilder
PowerBuilderParser.g4:L149:            | TYPE data_type_name identifier_name (LPAREN parameters_list_sub? RPAREN)
                                                                             ^
PowerBuilderParser.g4:L448:    : RETURN (expression)?
                                        ^
PowerBuilderParser.g4:L602:    : identifier_name_ex (DOT identifier_name_ex)* (identifier_array)? (DOT identifier_name_ex (identifier_array)?)*
                                                                              ^
PowerBuilderParser.g4:L602:    : identifier_name_ex (DOT identifier_name_ex)* (identifier_array)? (DOT identifier_name_ex (identifier_array)?)*
                                                                                                                          ^
./powerbuilderdw
PowerBuilderDWLexer.g4:L187: EXPORT_HEADER:      '$' LETTER ((LETTER | DIGIT | '-' | '#' | '%' | '_'))* '$' (LETTER | DIGIT | '.' | ' ' | '_')+ ~[\r\n];
                                                            ^
PowerBuilderDWLexer.g4:L187: EXPORT_HEADER:      '$' LETTER ((LETTER | DIGIT | '-' | '#' | '%' | '_'))* '$' (LETTER | DIGIT | '.' | ' ' | '_')+ ~[\r\n];
                                                             ^
./powerquery
PowerQueryLexer.g4:L25: fragment DELIMITED_COMMENT_SECTION: (
                                                            ^
./prolog
./promql
PromQLParser.g4:L55: unaryOp:        (ADD | SUB);
                                     ^
./propcalc
L118:    : ('a' .. 'z') | ('A' .. 'Z')
           ^
L118:    : ('a' .. 'z') | ('A' .. 'Z')
                          ^
./properties
./protobuf2
./protobuf3
L175:   : ident EQ ( MINUS )? intLit enumValueOptions?SEMI
                   ^
L234:   : RPC rpcName LP ( STREAM )? messageType RP
                         ^
L235:         RETURNS LP ( STREAM )? messageType RP
                         ^
L268: messageType: ( DOT )? ( ident DOT )* messageName;
                   ^
L269: enumType: ( DOT )? ( ident DOT )* enumName;
                ^
L334: STR_LIT: ( '\'' ( CHAR_VALUE )*? '\'' ) |  ( '"' ( CHAR_VALUE )*? '"' );
               ^
L334: STR_LIT: ( '\'' ( CHAR_VALUE )*? '\'' ) |  ( '"' ( CHAR_VALUE )*? '"' );
                      ^
L334: STR_LIT: ( '\'' ( CHAR_VALUE )*? '\'' ) |  ( '"' ( CHAR_VALUE )*? '"' );
                                                 ^
L334: STR_LIT: ( '\'' ( CHAR_VALUE )*? '\'' ) |  ( '"' ( CHAR_VALUE )*? '"' );
                                                       ^
L342: FLOAT_LIT : ( DECIMALS DOT DECIMALS? EXPONENT? | DECIMALS EXPONENT | DOT DECIMALS EXPONENT? ) | 'inf' | 'nan';
                  ^
L347: fragment DECIMAL_LIT : ( [1-9] ) DECIMAL_DIGIT*;
                             ^
./prov-n
L28:    : DOCUMENT (namespaceDeclarations)? (expression)* (bundle (bundle)*)? ENDDOCUMENT EOF
                   ^
L28:    : DOCUMENT (namespaceDeclarations)? (expression)* (bundle (bundle)*)? ENDDOCUMENT EOF
                                            ^
L28:    : DOCUMENT (namespaceDeclarations)? (expression)* (bundle (bundle)*)? ENDDOCUMENT EOF
                                                                  ^
L54:    : BUNDLE identifier (namespaceDeclarations)? (expression)* ENDBUNDLE
                            ^
L54:    : BUNDLE identifier (namespaceDeclarations)? (expression)* ENDBUNDLE
                                                     ^
L62:    : (entityExpression | activityExpression | generationExpression | usageExpression | startExpression | endExpression | invalidationExpression | communicationExpression | agentExpression | associationExpression | attributionExpression | delegationExpression | derivationExpression | influenceExpression | alternateExpression | specializationExpression | membershipExpression | extensibilityExpression)
          ^
L74:    : (| attributeValuePair (',' attributeValuePair)*)
          ^
L99:    : STRING_LITERAL (LANGTAG)?
                         ^
L109:    : (time | '-')
           ^
L125:    : (identifier | '-')
           ^
L133:    : (eIdentifier | '-')
           ^
L137:    : (aIdentifier | '-')
           ^
L145:    : (agIdentifier | '-')
           ^
L161:    : (gIdentifier | '-')
           ^
L169:    : (uIdentifier | '-')
           ^
L233:    : (identifierOrMarker | literal | time | extensibilityExpression | extensibilityTuple)
           ^
L377:    : ('-')? (DIGIT) +
           ^
L377:    : ('-')? (DIGIT) +
                  ^
L392:    : '"' ((~ ["\\\r\n]) | ECHAR)* '"'
                ^
L402:    : '-'? ([1-9] [0-9] [0-9] [0-9] + | '0' [0-9] [0-9] [0-9]) '-' ('0' [1-9] | '1' [0-2]) '-' ('0' [1-9] | [12] [0-9] | '3' [01]) 'T' ((([01] [0-9]) | ('2' [0-3])) ':' [0-5] [0-9] ':' [0-5] [0-9] ('.' [0-9] +)? | ('24:00:00' ('.' '0' +)?)) ('Z' | ('+' | '-') (('0' [0-9] | '1' [0-3]) ':' [0-5] [0-9] | '14:00'))?
                                                                                                                                              ^
L402:    : '-'? ([1-9] [0-9] [0-9] [0-9] + | '0' [0-9] [0-9] [0-9]) '-' ('0' [1-9] | '1' [0-2]) '-' ('0' [1-9] | [12] [0-9] | '3' [01]) 'T' ((([01] [0-9]) | ('2' [0-3])) ':' [0-5] [0-9] ':' [0-5] [0-9] ('.' [0-9] +)? | ('24:00:00' ('.' '0' +)?)) ('Z' | ('+' | '-') (('0' [0-9] | '1' [0-3]) ':' [0-5] [0-9] | '14:00'))?
                                                                                                                                                             ^
L402:    : '-'? ([1-9] [0-9] [0-9] [0-9] + | '0' [0-9] [0-9] [0-9]) '-' ('0' [1-9] | '1' [0-2]) '-' ('0' [1-9] | [12] [0-9] | '3' [01]) 'T' ((([01] [0-9]) | ('2' [0-3])) ':' [0-5] [0-9] ':' [0-5] [0-9] ('.' [0-9] +)? | ('24:00:00' ('.' '0' +)?)) ('Z' | ('+' | '-') (('0' [0-9] | '1' [0-3]) ':' [0-5] [0-9] | '14:00'))?
                                                                                                                                                                                                                           ^
./python/python
PythonParser.g4:L148:     | {this.CheckVersion(2)}? PRINT ((test (COMMA test)* COMMA?)
                                                           ^
PythonParser.g4:L149:                        | RIGHT_SHIFT test ((COMMA test)+ COMMA?)) {this.SetVersion(2);}    #print_stmt   // Python 2
                                                                ^
./python/python2
L121: decorator: '@' dotted_name ( '(' (arglist)? ')' )? NEWLINE
                                       ^
L129: parameters: '(' (varargslist)? ')'
                      ^
L131: varargslist: ((fpdef ('=' test)? ',')*
                   ^
L133:               fpdef ('=' test)? (',' fpdef ('=' test)?)* (',')?)
                                                               ^
L137: fplist: fpdef (',' fpdef)* (',')?
                                 ^
L143: simple_stmt: small_stmt (';' small_stmt)* (';')? NEWLINE
                                                ^
L145: small_stmt: (expr_stmt | print_stmt  | del_stmt | pass_stmt | flow_stmt |
                  ^
L151: augassign: ('+=' | '-=' | '*=' | '/=' | '%=' | '&=' | '|=' | '^=' |
                 ^
L161:             NAME ( ( test (',' test)* (',')? )? |
                                            ^
L162:                  '>>' test ( (',' test)+ (',')? )? )
                                               ^
L174: return_stmt: 'return' (testlist)?
                            ^
L184: import_from: ('from' ('.'* dotted_name | '.'+)
                   ^
L191: import_as_names: import_as_name (',' import_as_name)* (',')?
                                                            ^
L213: try_stmt: ('try' ':' suite
                ^
L233: testlist_safe: old_test ((',' old_test)+ (',')?)?
                                               ^
L237: old_lambdef: 'lambda' (varargslist)? ':' old_test
                            ^
L269: atom:  ('(' (yield_expr|testlist_comp)? ')' |
             ^
L270:         '[' (listmaker)? ']' |
                  ^
L271:         '{' (dictorsetmaker)? '}' |
                  ^
L275: listmaker: test ( list_for | (',' test)* (',')? )
                                               ^
L277: testlist_comp: test ( comp_for | (',' test)* (',')? )
                                                   ^
L279: lambdef: 'lambda' (varargslist)? ':' test
                        ^
L281: trailer: '(' (arglist)? ')' | '[' subscriptlist ']' | '.' NAME
                   ^
L283: subscriptlist: subscript (',' subscript)* (',')?
                                                ^
L285: subscript: '.' '.' '.' | test | (test)? ':' (test)? (sliceop)?
                                      ^
L285: subscript: '.' '.' '.' | test | (test)? ':' (test)? (sliceop)?
                                                  ^
L285: subscript: '.' '.' '.' | test | (test)? ':' (test)? (sliceop)?
                                                          ^
L287: sliceop: ':' (test)?
                   ^
L289: exprlist: expr (',' expr)* (',')?
                                 ^
L291: testlist: test (',' test)* (',')?
                                 ^
L293: dictorsetmaker: ( (test ':' test (comp_for | (',' test ':' test)* (',')?)) |
                      ^
L293: dictorsetmaker: ( (test ':' test (comp_for | (',' test ':' test)* (',')?)) |
                        ^
L293: dictorsetmaker: ( (test ':' test (comp_for | (',' test ':' test)* (',')?)) |
                                                                        ^
L294:                   (test (comp_for | (',' test)* (',')?)) )
                        ^
L294:                   (test (comp_for | (',' test)* (',')?)) )
                                                      ^
L298: classdef: 'class' NAME ('(' (testlist)? ')')? ':' suite
                                  ^
L302: arglist: (argument ',')* (argument (',')?
                                         ^
L308: argument: test (comp_for)? | test '=' test
                     ^
L314: list_for: 'for' exprlist 'in' testlist_safe (list_iter)?
                                                  ^
L316: list_if: 'if' old_test (list_iter)?
                             ^
L322: comp_for: 'for' exprlist 'in' or_test (comp_iter)?
                                            ^
L324: comp_if: 'if' old_test (comp_iter)?
                             ^
L335: yield_expr: 'yield' 'from'? (testlist)?
                                  ^
L355:     ( '\''     ('\\' (([ \t]+ ('\r'? '\n')?)|.) | ~[\\\r\n'])*  '\''
                            ^
L356:     | '"'      ('\\' (([ \t]+ ('\r'? '\n')?)|.) | ~[\\\r\n"])*  '"'
                            ^
L363:     |      '\\'  [ \t]* ('\r'? '\n')  {self._lineContinuation=True})
                              ^
./python/python2-js
L164: decorator: '@' dotted_name ( '(' (arglist)? ')' )? NEWLINE
                                       ^
L172: parameters: '(' (varargslist)? ')'
                      ^
L174: varargslist: ((fpdef ('=' test)? ',')*
                   ^
L176:               fpdef ('=' test)? (',' fpdef ('=' test)?)* (',')?)
                                                               ^
L180: fplist: fpdef (',' fpdef)* (',')?
                                 ^
L186: simple_stmt: small_stmt (';' small_stmt)* (';')? NEWLINE
                                                ^
L188: small_stmt: (expr_stmt | print_stmt  | del_stmt | pass_stmt | flow_stmt |
                  ^
L194: augassign: ('+=' | '-=' | '*=' | '/=' | '%=' | '&=' | '|=' | '^=' |
                 ^
L204:             NAME ( ( test (',' test)* (',')? )? |
                                            ^
L205:                  '>>' test ( (',' test)+ (',')? )? )
                                               ^
L217: return_stmt: 'return' (testlist)?
                            ^
L227: import_from: ('from' ('.'* dotted_name | '.'+)
                   ^
L234: import_as_names: import_as_name (',' import_as_name)* (',')?
                                                            ^
L256: try_stmt: ('try' ':' suite
                ^
L276: testlist_safe: old_test ((',' old_test)+ (',')?)?
                                               ^
L280: old_lambdef: 'lambda' (varargslist)? ':' old_test
                            ^
L312: atom:  ('(' (yield_expr|testlist_comp)? ')' |
             ^
L313:         '[' (listmaker)? ']' |
                  ^
L314:         '{' (dictorsetmaker)? '}' |
                  ^
L318: listmaker: test ( list_for | (',' test)* (',')? )
                                               ^
L320: testlist_comp: test ( comp_for | (',' test)* (',')? )
                                                   ^
L322: lambdef: 'lambda' (varargslist)? ':' test
                        ^
L324: trailer: '(' (arglist)? ')' | '[' subscriptlist ']' | '.' NAME
                   ^
L326: subscriptlist: subscript (',' subscript)* (',')?
                                                ^
L328: subscript: '.' '.' '.' | test | (test)? ':' (test)? (sliceop)?
                                      ^
L328: subscript: '.' '.' '.' | test | (test)? ':' (test)? (sliceop)?
                                                  ^
L328: subscript: '.' '.' '.' | test | (test)? ':' (test)? (sliceop)?
                                                          ^
L330: sliceop: ':' (test)?
                   ^
L332: exprlist: expr (',' expr)* (',')?
                                 ^
L334: testlist: test (',' test)* (',')?
                                 ^
L336: dictorsetmaker: ( (test ':' test (comp_for | (',' test ':' test)* (',')?)) |
                      ^
L336: dictorsetmaker: ( (test ':' test (comp_for | (',' test ':' test)* (',')?)) |
                        ^
L336: dictorsetmaker: ( (test ':' test (comp_for | (',' test ':' test)* (',')?)) |
                                                                        ^
L337:                   (test (comp_for | (',' test)* (',')?)) )
                        ^
L337:                   (test (comp_for | (',' test)* (',')?)) )
                                                      ^
L341: classdef: 'class' NAME ('(' (testlist)? ')')? ':' suite
                                  ^
L345: arglist: (argument ',')* (argument (',')?
                                         ^
L351: argument: test (comp_for)? | test '=' test
                     ^
L357: list_for: 'for' exprlist 'in' testlist_safe (list_iter)?
                                                  ^
L359: list_if: 'if' old_test (list_iter)?
                             ^
L365: comp_for: 'for' exprlist 'in' or_test (comp_iter)?
                                            ^
L367: comp_if: 'if' old_test (comp_iter)?
                             ^
L378: yield_expr: 'yield' 'from'? (testlist)?
                                  ^
L398:     ( '\''     ('\\' (([ \t]+ ('\r'? '\n')?)|.) | ~[\\\r\n'])*  '\''
                            ^
L399:     | '"'      ('\\' (([ \t]+ ('\r'? '\n')?)|.) | ~[\\\r\n"])*  '"'
                            ^
L406:     |      '\\'  [ \t]* ('\r'? '\n')  {this._lineContinuation=true})
                              ^
./python/python3
Python3Parser.g4:L56: typedargslist: (tfpdef ('=' test)? (',' tfpdef ('=' test)?)* (',' (
                                     ^
Python3Parser.g4:L62: varargslist: (vfpdef ('=' test)? (',' vfpdef ('=' test)?)* (',' (
                                   ^
Python3Parser.g4:L64:       | '**' vfpdef (',')?)?)?
                                          ^
Python3Parser.g4:L72: simple_stmt: (expr_stmt | del_stmt | pass_stmt | flow_stmt |
                                   ^
Python3Parser.g4:L78: augassign: ('+=' | '-=' | '*=' | '@=' | '/=' | '%=' | '&=' | '|=' | '^=' |
                                 ^
Python3Parser.g4:L92: import_from: ('from' (('.' | '...')* dotted_name | ('.' | '...')+)
                                   ^
Python3Parser.g4:L108: try_stmt: ('try' ':' block
                                 ^
Python3Parser.g4:L206: dictorsetmaker: ( ((test ':' test | '**' expr)
                                       ^
Python3Parser.g4:L206: dictorsetmaker: ( ((test ':' test | '**' expr)
                                         ^
Python3Parser.g4:L208:                   ((test | star_expr)
                                         ^
Python3Parser.g4:L224: argument: ( test comp_for? |
                                 ^
Python3Lexer.g4:L119:  : ( [rR] | [uU] | [fF] | ( [fF] [rR] ) | ( [rR] [fF] ) )? ( SHORT_STRING | LONG_STRING )
                                                ^
Python3Lexer.g4:L119:  : ( [rR] | [uU] | [fF] | ( [fF] [rR] ) | ( [rR] [fF] ) )? ( SHORT_STRING | LONG_STRING )
                                                                ^
Python3Lexer.g4:L125:  : ( [bB] | ( [bB] [rR] ) | ( [rR] [bB] ) ) ( SHORT_BYTES | LONG_BYTES )
                                  ^
Python3Lexer.g4:L125:  : ( [bB] | ( [bB] [rR] ) | ( [rR] [bB] ) ) ( SHORT_BYTES | LONG_BYTES )
                                                  ^
./python/python3-py
L154: decorator: '@' dotted_name ( '(' (arglist)? ')' )? NEWLINE;
                                       ^
L161: parameters: '(' (typedargslist)? ')';
                      ^
L162: typedargslist: (tfpdef ('=' test)? (',' tfpdef ('=' test)?)* (',' (
                     ^
L163:         '*' (tfpdef)? (',' tfpdef ('=' test)?)* (',' ('**' tfpdef (',')?)?)?
                  ^
L163:         '*' (tfpdef)? (',' tfpdef ('=' test)?)* (',' ('**' tfpdef (',')?)?)?
                                                                        ^
L164:       | '**' tfpdef (',')?)?)?
                          ^
L165:   | '*' (tfpdef)? (',' tfpdef ('=' test)?)* (',' ('**' tfpdef (',')?)?)?
              ^
L165:   | '*' (tfpdef)? (',' tfpdef ('=' test)?)* (',' ('**' tfpdef (',')?)?)?
                                                                    ^
L166:   | '**' tfpdef (',')?);
                      ^
L168: varargslist: (vfpdef ('=' test)? (',' vfpdef ('=' test)?)* (',' (
                   ^
L169:         '*' (vfpdef)? (',' vfpdef ('=' test)?)* (',' ('**' vfpdef (',')?)?)?
                  ^
L169:         '*' (vfpdef)? (',' vfpdef ('=' test)?)* (',' ('**' vfpdef (',')?)?)?
                                                                        ^
L170:       | '**' vfpdef (',')?)?)?
                          ^
L171:   | '*' (vfpdef)? (',' vfpdef ('=' test)?)* (',' ('**' vfpdef (',')?)?)?
              ^
L171:   | '*' (vfpdef)? (',' vfpdef ('=' test)?)* (',' ('**' vfpdef (',')?)?)?
                                                                    ^
L172:   | '**' vfpdef (',')?
                      ^
L177: simple_stmt: small_stmt (';' small_stmt)* (';')? NEWLINE;
                                                ^
L178: small_stmt: (expr_stmt | del_stmt | pass_stmt | flow_stmt |
                  ^
L183: testlist_star_expr: (test|star_expr) (',' (test|star_expr))* (',')?;
                                                                   ^
L184: augassign: ('+=' | '-=' | '*=' | '@=' | '/=' | '%=' | '&=' | '|=' | '^=' |
                 ^
L192: return_stmt: 'return' (testlist)?;
                            ^
L198: import_from: ('from' (('.' | '...')* dotted_name | ('.' | '...')+)
                   ^
L202: import_as_names: import_as_name (',' import_as_name)* (',')?;
                                                            ^
L214: try_stmt: ('try' ':' suite
                ^
L227: lambdef: 'lambda' (varargslist)? ':' test;
                        ^
L228: lambdef_nocond: 'lambda' (varargslist)? ':' test_nocond;
                               ^
L245: atom_expr: (AWAIT)? atom trailer*;
                 ^
L246: atom: ('(' (yield_expr|testlist_comp)? ')' |
            ^
L247:        '[' (testlist_comp)? ']' |
                 ^
L248:        '{' (dictorsetmaker)? '}' |
                 ^
L250: testlist_comp: (test|star_expr) ( comp_for | (',' (test|star_expr))* (',')? );
                                                                           ^
L251: trailer: '(' (arglist)? ')' | '[' subscriptlist ']' | '.' NAME;
                   ^
L252: subscriptlist: subscript (',' subscript)* (',')?;
                                                ^
L253: subscript: test | (test)? ':' (test)? (sliceop)?;
                        ^
L253: subscript: test | (test)? ':' (test)? (sliceop)?;
                                    ^
L253: subscript: test | (test)? ':' (test)? (sliceop)?;
                                            ^
L254: sliceop: ':' (test)?;
                   ^
L255: exprlist: (expr|star_expr) (',' (expr|star_expr))* (',')?;
                                                         ^
L256: testlist: test (',' test)* (',')?;
                                 ^
L257: dictorsetmaker: ( ((test ':' test | '**' expr)
                      ^
L257: dictorsetmaker: ( ((test ':' test | '**' expr)
                        ^
L258:                    (comp_for | (',' (test ':' test | '**' expr))* (',')?)) |
                                                                        ^
L259:                   ((test | star_expr)
                        ^
L260:                    (comp_for | (',' (test | star_expr))* (',')?)) );
                                                               ^
L262: classdef: 'class' NAME ('(' (arglist)? ')')? ':' suite;
                                  ^
L264: arglist: argument (',' argument)*  (',')?;
                                         ^
L275: argument: ( test (comp_for)? |
                ^
L275: argument: ( test (comp_for)? |
                       ^
L281: comp_for: (ASYNC)? 'for' exprlist 'in' or_test (comp_iter)?;
                ^
L281: comp_for: (ASYNC)? 'for' exprlist 'in' or_test (comp_iter)?;
                                                     ^
L282: comp_if: 'if' test_nocond (comp_iter)?;
                                ^
L287: yield_expr: 'yield' (yield_arg)?;
                          ^
L397:  : ( [rR] | [uU] | [fF] | ( [fF] [rR] ) | ( [rR] [fF] ) )? ( SHORT_STRING | LONG_STRING )
                                ^
L397:  : ( [rR] | [uU] | [fF] | ( [fF] [rR] ) | ( [rR] [fF] ) )? ( SHORT_STRING | LONG_STRING )
                                                ^
L401:  : ( [bB] | ( [bB] [rR] ) | ( [rR] [bB] ) ) ( SHORT_BYTES | LONG_BYTES )
                  ^
L401:  : ( [bB] | ( [bB] [rR] ) | ( [rR] [bB] ) ) ( SHORT_BYTES | LONG_BYTES )
                                  ^
./python/python3-ts
L158: decorator: '@' dotted_name ( '(' (arglist)? ')')? NEWLINE;
                                       ^
L165: parameters: '(' (typedargslist)? ')';
                      ^
L166: typedargslist: (
                     ^
L169:     '*' (tfpdef)? (',' tfpdef ('=' test)?)* (
              ^
L170:      ',' ('**' tfpdef (',')?)?
                            ^
L172:     | '**' tfpdef (',')?
                        ^
L175:   | '*' (tfpdef)? (',' tfpdef ('=' test)?)* (
              ^
L176:    ',' ('**' tfpdef (',')?)?
                          ^
L178:   | '**' tfpdef (',')?
                      ^
L181: varargslist: (
                   ^
L184:     '*' (vfpdef)? (',' vfpdef ('=' test)?)* (
              ^
L185:      ',' ('**' vfpdef (',')?)?
                            ^
L187:     | '**' vfpdef (',')?
                        ^
L190:   | '*' (vfpdef)? (',' vfpdef ('=' test)?)* (
              ^
L191:    ',' ('**' vfpdef (',')?)?
                          ^
L193:   | '**' vfpdef (',')?
                      ^
L198: simple_stmt: small_stmt (';' small_stmt)* (';')? NEWLINE;
                                                ^
L199: small_stmt: (
                  ^
L216: testlist_star_expr: (test | star_expr) (',' (test | star_expr))* (
                                                                       ^
L219: augassign: (
                 ^
L245: return_stmt: 'return' (testlist)?;
                            ^
L251: import_from: (
                   ^
L260: import_as_names: import_as_name (',' import_as_name)* (',')?;
                                                            ^
L285: try_stmt: (
                ^
L301: lambdef: 'lambda' (varargslist)? ':' test;
                        ^
L302: lambdef_nocond: 'lambda' (varargslist)? ':' test_nocond;
                               ^
L330: atom_expr: (AWAIT)? atom trailer*;
                 ^
L331: atom: (
            ^
L333:   | '[' (testlist_comp)? ']'
              ^
L334:   | '{' (dictorsetmaker)? '}'
              ^
L345:   | (',' (test | star_expr))* (',')?
                                    ^
L347: trailer: '(' (arglist)? ')' | '[' subscriptlist ']' | '.' NAME;
                   ^
L348: subscriptlist: subscript (',' subscript)* (',')?;
                                                ^
L349: subscript: test | (test)? ':' (test)? (sliceop)?;
                        ^
L349: subscript: test | (test)? ':' (test)? (sliceop)?;
                                    ^
L349: subscript: test | (test)? ':' (test)? (sliceop)?;
                                            ^
L350: sliceop: ':' (test)?;
                   ^
L351: exprlist: (expr | star_expr) (',' (expr | star_expr))* (',')?;
                                                             ^
L352: testlist: test (',' test)* (',')?;
                                 ^
L353: dictorsetmaker: (
                      ^
L354:   (
        ^
L357:     | (',' (test ':' test | '**' expr))* (',')?
                                               ^
L360:   | (
          ^
L363:     | (',' (test | star_expr))* (',')?
                                      ^
L368: classdef: 'class' NAME ('(' (arglist)? ')')? ':' suite;
                                  ^
L370: arglist: argument (',' argument)* (',')?;
                                        ^
L379: argument: (
                ^
L380:   test (comp_for)?
             ^
L387: comp_for: (ASYNC)? 'for' exprlist 'in' or_test (comp_iter)?;
                ^
L387: comp_for: (ASYNC)? 'for' exprlist 'in' or_test (comp_iter)?;
                                                     ^
L388: comp_if: 'if' test_nocond (comp_iter)?;
                                ^
L393: yield_expr: 'yield' (yield_arg)?;
                          ^
L488: STRING_LITERAL: ([rR] | [uU] | [fF] | ( [fF] [rR]) | ( [rR] [fF]))? (
                                            ^
L488: STRING_LITERAL: ([rR] | [uU] | [fF] | ( [fF] [rR]) | ( [rR] [fF]))? (
                                                           ^
L495: BYTES_LITERAL: ([bB] | ( [bB] [rR]) | ( [rR] [bB])) (
                             ^
L495: BYTES_LITERAL: ([bB] | ( [bB] [rR]) | ( [rR] [bB])) (
                                            ^
./python/python3-without-actions
Crash

./python/python3alt
L284:  : PRINT '(' ( ( test (',' test)* (',')? )? |
                                        ^
L285:                   '>>' test ( (',' test)+ (',')? )? ) ')'
                                                ^
L286:  | PRINT ( ( test (',' test)* (',')? )? |
                                    ^
L287:                            '>>' test ( (',' test)+ (',')? )? )
                                                         ^
./python/tiny-python
Crash

./qif
qifLexer.g4:L67:    : ('X' | 'x' | '*')
                      ^
./quakemap
./r
R.g4:L135: HEXDIGIT : ('0'..'9'|'a'..'f'|'A'..'F') ;
                      ^
./racket-bsl
L93:     : '"' ([ -~])* '"'
               ^
./racket-isl
L130:     : '"' ([ -~])* '"'
                ^
./rcs
L76:    : head ( branch )? access symbols ( locks )? ( strict )? ( comment )? ( expand )? ( newphrase )*
               ^
L76:    : head ( branch )? access symbols ( locks )? ( strict )? ( comment )? ( expand )? ( newphrase )*
                                          ^
L76:    : head ( branch )? access symbols ( locks )? ( strict )? ( comment )? ( expand )? ( newphrase )*
                                                     ^
L76:    : head ( branch )? access symbols ( locks )? ( strict )? ( comment )? ( expand )? ( newphrase )*
                                                                 ^
L76:    : head ( branch )? access symbols ( locks )? ( strict )? ( comment )? ( expand )? ( newphrase )*
                                                                              ^
L76:    : head ( branch )? access symbols ( locks )? ( strict )? ( comment )? ( expand )? ( newphrase )*
                                                                                          ^
L88:    : LITERAL_ACCESS ( IDENT )* SEMI
                         ^
L92:    : LITERAL_SYMBOLS ( tags )* SEMI
                          ^
L100:    : LITERAL_LOCKS ( IDENT )* SEMI
                         ^
L108:    : LITERAL_COMMENT ( STRING )? SEMI
                           ^
L112:    : LITERAL_EXPAND ( STRING )? SEMI
                          ^
L116:    : ( delta )*
           ^
L120:    : REVISION delta_date delta_author delta_state delta_branches delta_next ( newphrase )*
                                                                                  ^
L136:    : LITERAL_BRANCHES ( REVISION )* SEMI
                            ^
L140:    : LITERAL_NEXT ( REVISION )? SEMI
                        ^
L148:    : ( deltatext )*
           ^
L152:    : REVISION deltatext_log ( newphrase )* deltatext_text
                                  ^
L164:    : ( IDENT )+ SEMI
           ^
L272:    : ( ~ ( '$' | ',' | '.' | ':' | ';' | '@' | ' ' | '\t' | '\n' | '\r' | '\f' ) )+
           ^
L303:    : ( ' ' | '\t' | '\f' | ( '\r\n' | '\r' | '\n' ) )+ -> skip
                                 ^
./recfile
./redcode
./refal
./rego
RegoLexer.g4:L224:   : (DecimalDigit* '.' DecimalDigit+ | DecimalDigit+ '.'?)
                       ^
./restructuredtext
L74:   :  (LineBreak overline=SectionSeparator)? title LineBreak? SectionSeparator (LineBreak)* sectionElement*
                                                                                   ^
L79:   |  LineBreak lineSpecial Space+ (paragraphNoBreak)?
                                       ^
L100:   :  LineBreak Space* bullet Space* (paragraph+)? 
                                          ^
L153:   |  LineBreak indentation? SectionSeparator (Space+ SectionSeparator) Space* // for table.
                                                   ^
L181:   :  (Minus ~(Space | LineBreak | Star))
           ^
L182:   |  (Plus ~(Space | Star))
           ^
L183:   |  (Numbers Dot ~(Space | LineBreak | Star))
           ^
L184:   |  (Numbers ~(Dot | LineBreak | Star))
           ^
L186:   |  (Alphabet Dot)
           ^
L187:   |  (Block ~(Space | Star))
           ^
L188:   |  (UnderScore ~(Space | Star))
           ^
L189:   |  (Alphabet ~(Dot | LineBreak | Star))
           ^
L351:   :  (Minus | Equal | Plus | Hat)
           ^
L444:   :  ('.. ' LineBreak?)
           ^
L445:   |  ('..' LineBreak)
           ^
L66:   :  ~(LineBreak)+
           ^
./rexx
RexxLexer.g4:L338: fragment A                      :   ('a'|'A');
                                                       ^
RexxLexer.g4:L339: fragment B                      :   ('b'|'B');
                                                       ^
RexxLexer.g4:L340: fragment C                      :   ('c'|'C');
                                                       ^
RexxLexer.g4:L341: fragment D                      :   ('d'|'D');
                                                       ^
RexxLexer.g4:L342: fragment E                      :   ('e'|'E');
                                                       ^
RexxLexer.g4:L343: fragment F                      :   ('f'|'F');
                                                       ^
RexxLexer.g4:L344: fragment G                      :   ('g'|'G');
                                                       ^
RexxLexer.g4:L345: fragment H                      :   ('h'|'H');
                                                       ^
RexxLexer.g4:L346: fragment I                      :   ('i'|'I');
                                                       ^
RexxLexer.g4:L347: fragment J                      :   ('j'|'J');
                                                       ^
RexxLexer.g4:L348: fragment K                      :   ('k'|'K');
                                                       ^
RexxLexer.g4:L349: fragment L                      :   ('l'|'L');
                                                       ^
RexxLexer.g4:L350: fragment M                      :   ('m'|'M');
                                                       ^
RexxLexer.g4:L351: fragment N                      :   ('n'|'N');
                                                       ^
RexxLexer.g4:L352: fragment O                      :   ('o'|'O');
                                                       ^
RexxLexer.g4:L353: fragment P                      :   ('p'|'P');
                                                       ^
RexxLexer.g4:L354: fragment Q                      :   ('q'|'Q');
                                                       ^
RexxLexer.g4:L355: fragment R                      :   ('r'|'R');
                                                       ^
RexxLexer.g4:L356: fragment S                      :   ('s'|'S');
                                                       ^
RexxLexer.g4:L357: fragment T                      :   ('t'|'T');
                                                       ^
RexxLexer.g4:L358: fragment U                      :   ('u'|'U');
                                                       ^
RexxLexer.g4:L359: fragment V                      :   ('v'|'V');
                                                       ^
RexxLexer.g4:L360: fragment W                      :   ('w'|'W');
                                                       ^
RexxLexer.g4:L361: fragment X                      :   ('x'|'X');
                                                       ^
RexxLexer.g4:L362: fragment Y                      :   ('y'|'Y');
                                                       ^
RexxLexer.g4:L363: fragment Z                      :   ('z'|'Z');
                                                       ^
./rfc1035
./rfc1960
./rfc3080
./rfc822/rfc822-datetime
L84:    | (('+' | '-') four_digit)
          ^
./rfc822/rfc822-emailaddress
L44:     |  (phrase routeaddr );
            ^
./robotwars
L58:     | ('<' expression)
           ^
L59:     | ('>' expression)) statement
           ^
L87:    : (argument (operation argument)*)
          ^
L88:    | (operation argument)
          ^
./romannumerals
./ron
./rpn
L93:    : ('+' | '-')
          ^
L103:    : ('a' .. 'z') | ('A' .. 'Z') | '_'
           ^
L103:    : ('a' .. 'z') | ('A' .. 'Z') | '_'
                          ^
L108:    : VALID_ID_START | ('0' .. '9')
                            ^
./ruby
L107: function_param : ( function_unnamed_param | function_named_param );
                       ^
L109: function_unnamed_param : ( int_result | float_result | string_result | dynamic_result );
                               ^
L115: all_result : ( int_result | float_result | string_result | dynamic_result | global_result );
                   ^
L142: all_assignment : ( int_assignment | float_assignment | string_assignment | dynamic_assignment );
                       ^
L192: array_definition_elements : ( int_result | dynamic_result )
                                  ^
L406: SL_COMMENT : ('#' ~('\r' | '\n')* '\r'? '\n') -> skip;
                   ^
L407: ML_COMMENT : ('=begin' .*? '=end' '\r'? '\n') -> skip;
                   ^
./rust
./scala
L517:    : '{' selfInvocation (blockStat)* '}'
                              ^
L604:    : (';' | (NL)+) -> skip
                  ^
L1354:    :   '//' (~[\r\n])* -> skip
                   ^
./scotty
L53:    : ('+' prefix_exp prefix_exp)
          ^
L54:    | ('-' prefix_exp prefix_exp)
          ^
L55:    | ('*' prefix_exp prefix_exp)
          ^
L56:    | ('/' prefix_exp prefix_exp)
          ^
L57:    | ('(' identifier prefix_exp ')')
          ^
./scss
ScssParser.g4:L97:     : ( ( Minus Minus ) Dollar | plusMinus Dollar | Dollar) identifier
                           ^
ScssParser.g4:L265:     : ( ( value | className | interpolation ) Comma?)
                          ^
ScssParser.g4:L385:     : ( listBracketed
                          ^
ScssParser.g4:L490:     : ( length | dimension | percentage | degree )
                          ^
ScssLexer.g4:L49: LineComment      : '//' ~([\n\r\u2028\u2029])*;
                                           ^
./semver
./sexpression
L61:    : ('+' | '-')? (DIGIT)+ ('.' (DIGIT)+)?
                       ^
L61:    : ('+' | '-')? (DIGIT)+ ('.' (DIGIT)+)?
                                     ^
L81:    : ('a' .. 'z')
          ^
L82:    | ('A' .. 'Z')
          ^
L91:    : ('0' .. '9')
          ^
./sgf
L134: COLOR           :   ('W'|'B');
                          ^
./sharc
SHARCParser.g4:L36:    : ( DIV ( seg_qualifier_1 | seg_qualifier_2 ) )
                         ^
SHARCParser.g4:L40:    : ( DIV seg_qualifier_3 )
                         ^
SHARCParser.g4:L44:    : ( DIV DMAONLY )
                         ^
SHARCParser.g4:L114:    : ( op = MINUS )? factor
                          ^
SHARCParser.g4:L530:    : LCNTR EQU lcntr_v ( COMMA DO jump_addr_int_or_pc UNTIL LCE )
                                            ^
SHARCParser.g4:L656:    : DOT_ALGIGN INT | DOT_COMPRESS | DOT_EXTERN ID ( COMMA ID )* | DOT_FILE StringLiteral | DOT_FILE_ATTR . | DOT_FORCECOMPRESS | DOT_GLOBAL ID ( COMMA ID )* | DOT_IMPORT StringLiteral ( COMMA StringLiteral )* | DOT_LEFTMARGIN value_exp | DOT_LIST | DOT_LIST_DATA | DOT_LIST_DATFILE | DOT_LIST_DEFTAB value_exp | DOT_LIST_LOCTAB value_exp | DOT_LIST_WRAPDATA | DOT_NEWPAGE | DOT_NOCOMPRESS | DOT_NOLIST_DATA | DOT_NOLIST_DATFILE | DOT_NOLIST_WRAPDATA | DOT_PAGELENGTH value_exp | DOT_PAGEWIDTH value_exp | DOT_PRECISION ( EQU? ) INT | DOT_ROUND_MINUS | DOT_ROUND_NEAREST | DOT_ROUND_PLUS | DOT_ROUND_ZERO | DOT_PREVIOUS | DOT_WEAK ID
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             ^
SHARCLexer.g4:L24:    : ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )
                        ^
SHARCLexer.g4:L29:    : ( '0' .. '9' )+ '.' ( '0' .. '9' )* Exponent? | '.' ( '0' .. '9' )+ Exponent? | ( '0' .. '9' )+ Exponent | ( '0' .. '9' )+ | HexPrefix ( HexDigit )+
                                                                                                                                                               ^
./sici
./sieve
./smalltalk
L50: bareSymbol : (IDENTIFIER | BINARY_SELECTOR) | KEYWORD+ | string;
                  ^
L63: STRING : '\'' (.)*? '\'';
                   ^
L64: COMMENT : '"' (.)*? '"';
                   ^
./smiles
./smtlibv2
./snobol
L38:    : (label? subject pattern? (EQ expression +)? (COLON transfer)?)
          ^
L39:    | (COLON transfer)
          ^
L40:    | (COMMENT | END)
          ^
L48:    : (AMP? STRING ('[' STRING (',' STRING)* ']')?)
          ^
L69:    : (STRINGLITERAL1 | STRINGLITERAL2 | INTEGER)
          ^
L227:    : ('f' | 'F' | 's' | 'S')
           ^
L317:    : ('a' | 'A')
           ^
L322:    : ('b' | 'B')
           ^
L327:    : ('c' | 'C')
           ^
L332:    : ('d' | 'D')
           ^
L337:    : ('e' | 'E')
           ^
L342:    : ('f' | 'F')
           ^
L347:    : ('g' | 'G')
           ^
L352:    : ('h' | 'H')
           ^
L357:    : ('i' | 'I')
           ^
L362:    : ('j' | 'J')
           ^
L367:    : ('k' | 'K')
           ^
L372:    : ('l' | 'L')
           ^
L377:    : ('m' | 'M')
           ^
L382:    : ('n' | 'N')
           ^
L387:    : ('o' | 'O')
           ^
L392:    : ('p' | 'P')
           ^
L397:    : ('q' | 'Q')
           ^
L402:    : ('r' | 'R')
           ^
L407:    : ('s' | 'S')
           ^
L412:    : ('t' | 'T')
           ^
L417:    : ('u' | 'U')
           ^
L422:    : ('v' | 'V')
           ^
L427:    : ('w' | 'W')
           ^
L432:    : ('x' | 'X')
           ^
L437:    : ('y' | 'Y')
           ^
L442:    : ('z' | 'Z')
           ^
./solidity
L186:   : ( variableDeclarationStatement | expressionStatement ) ;
          ^
L295:   : '(' ( expression? ( ',' expression? )* ) ')'
              ^
L358:   : ( '-' '>' assemblyTypedVariableList ) ;
          ^
L382:   : ('from' | 'calldata' | 'address' | Identifier) ;
          ^
L233:   : 'fixed' | ( 'fixed' [0-9]+ 'x' [0-9]+ ) ;
                    ^
L236:   : 'ufixed' | ( 'ufixed' [0-9]+ 'x' [0-9]+ ) ;
                     ^
L388:   : ( DecimalDigits | (DecimalDigits? '.' DecimalDigits) ) ( [eE] '-'? DecimalDigits )? ;
                            ^
L406:   : 'hex' (('"' HexDigits? '"') | ('\'' HexDigits? '\'')) ;
                 ^
L406:   : 'hex' (('"' HexDigits? '"') | ('\'' HexDigits? '\'')) ;
                                        ^
L475:   : ~["\r\n\\] | ('\\' .) ;
                       ^
L479:   : ~['\r\n\\] | ('\\' .) ;
                       ^
./sparql
L97:     : ( limitClause offsetClause? | offsetClause limitClause? )
           ^
L105:     : ( ( 'ASC' | 'DESC' ) brackettedExpression )
            ^
L106:     | ( constraint | var_ )
            ^
L154:     : ( NIL | '(' expression ( ',' expression )* ')' )
            ^
L300:     : string_ ( LANGTAG | ( '^^' iriRef ) )?
                                ^
L354:     : '<' ( ~('<' | '>' | '"' | '{' | '}' | '|' | '^' | '\\' | '`') | (PN_CHARS))* '>'
                                                                            ^
L457:     : ( PN_CHARS_U | DIGIT ) ( PN_CHARS_U | DIGIT | '\u00B7' | ('\u0300'..'\u036F') | ('\u203F'..'\u2040') )*
                                                                     ^
L457:     : ( PN_CHARS_U | DIGIT ) ( PN_CHARS_U | DIGIT | '\u00B7' | ('\u0300'..'\u036F') | ('\u203F'..'\u2040') )*
                                                                                            ^
./spass
./sql/athena
AthenaParser.g4:L292:         ADD COLUMNS (col_name data_type)
                                          ^
AthenaParser.g4:L321:     : ALTER TABLE table_name PARTITION (partition_spec) RENAME TO PARTITION (np=partition_spec)
                                                             ^
AthenaParser.g4:L321:     : ALTER TABLE table_name PARTITION (partition_spec) RENAME TO PARTITION (np=partition_spec)
                                                                                                  ^
AthenaLexer.g4:L208:     :  (DIGIT+ '.' DIGIT+ |  DIGIT+ '.' | '.' DIGIT+)
                            ^
AthenaLexer.g4:L216:     : '\'' ( ~('\''|'\\') | ('\\' .) )* '\''
                                                 ^
AthenaLexer.g4:L220:     : '"' ( ~('"'|'\\') | ('\\' .) )* '"'
                                               ^
AthenaLexer.g4:L232:     : (INTEGRAL_LITERAL | DEC_DOT_DEC) ('E' [+-]? DIGIT+)
                                                            ^
AthenaLexer.g4:L240:     : '--' (~('\n'|'\r'))* -> channel(HIDDEN)
                                ^
./sql/derby
DerbyParser.g4:L318:     : WHEN NOT MATCHED ( AND match_refinement ) THEN merge_insert
                                            ^
DerbyParser.g4:L502:             (
                                 ^
DerbyParser.g4:L611:     : column_name SET DATA TYPE BLOB( integer )
                                                         ^
DerbyParser.g4:L612:     | column_name SET DATA TYPE CLOB( integer )
                                                         ^
DerbyParser.g4:L613:     | column_name SET DATA TYPE VARCHAR( integer )
                                                            ^
DerbyParser.g4:L614:     | column_name SET DATA TYPE VARCHAR( integer ) FOR BIT DATA
                                                            ^
DerbyParser.g4:L670:     : CREATE DERBY AGGREGATE aggregate_name FOR value_data_type (RETURNS value_data_type) EXTERNAL NAME string
                                                                                     ^
DerbyParser.g4:L692:     : TABLE '(' column_element (COMMA column_element ) ')'
                                                    ^
DerbyParser.g4:L701:     | (DETERMINISTIC | NOT DETERMINISTIC)
                           ^
DerbyParser.g4:L705:     | ( NO SQL | CONTAINS SQL | READS SQL DATA )
                           ^
DerbyParser.g4:L706:     | ( RETURNS NULL_ ON NULL_ INPUT | CALLED ON NULL_ INPUT )
                           ^
DerbyParser.g4:L734:     | (INT | INTEGER)
                           ^
DerbyParser.g4:L749:     | ( DETERMINISTIC | NOT DETERMINISTIC )
                           ^
DerbyParser.g4:L753:     | ( NO SQL
                           ^
DerbyLexer.g4:L371: REAL_LITERAL:                (DECIMAL_LITERAL | DEC_DOT_DEC) ('E' [+-]? DEC_DIGIT+);
                                                                                 ^
DerbyLexer.g4:L411: fragment DEC_DOT_DEC:  (DEC_DIGIT+ '.' DEC_DIGIT+ |  DEC_DIGIT+ '.' | '.' DEC_DIGIT+);
                                           ^
./sql/drill
./sql/hive/v2
HiveParser.g4:L63:     | (KW_VECTORIZATION vectorizationOnly? vectorizatonDetail?)
                         ^
HiveParser.g4:L110:          KW_FROM (path=StringLiteral)
                                     ^
HiveParser.g4:L429:     : (rewriteEnabled | rewriteDisabled)
                          ^
HiveParser.g4:L570:     | ((KW_FORMATTED|KW_EXTENDED) tabPartColTypeExpr)
                          ^
HiveParser.g4:L576:     : KW_ANALYZE KW_TABLE (tableOrPartition)
                                              ^
HiveParser.g4:L577:       ( KW_COMPUTE KW_STATISTICS (KW_NOSCAN | (KW_FOR KW_COLUMNS columnNameList?))?
                                                                  ^
HiveParser.g4:L608:         (KW_PLAN identifier)
                            ^
HiveParser.g4:L991:     |  (KW_NORELY)?
                           ^
HiveParser.g4:L1071:     : ( tableConstraint )
                           ^
HiveParser.g4:L1072:     | ( columnNameTypeConstraint )
                           ^
HiveParser.g4:L1076:     : ( createForeignKey )
                           ^
HiveParser.g4:L1077:     | ( createConstraint )
                           ^
HiveParser.g4:L1085:     : ( foreignKeyConstraint )
                           ^
HiveParser.g4:L1086:     | ( colConstraint )
                           ^
HiveParser.g4:L1098:     : ( alterForeignKeyConstraint )
                           ^
HiveParser.g4:L1099:     | ( alterColConstraint )
                           ^
HiveParser.g4:L1213:     : (singleFromStatement)
                           ^
HiveParser.g4:L1294:    : KW_LIMIT ((Number COMMA)? Number)
                                   ^
IdentifiersParser.g4:L371:     : atomExpression ((LSQUARE expression RSQUARE) | (DOT identifier))*
                                                 ^
IdentifiersParser.g4:L371:     : atomExpression ((LSQUARE expression RSQUARE) | (DOT identifier))*
                                                                                ^
SelectClauseParser.g4:L24:     : KW_SELECT QUERY_HINT? (((KW_ALL | KW_DISTINCT)? selectList)
                                                        ^
SelectClauseParser.g4:L25:                           | (KW_TRANSFORM selectTrfmClause))
                                                       ^
SelectClauseParser.g4:L37:     ( KW_AS ((LPAREN (aliasList | columnNameTypeList) RPAREN) | (aliasList | columnNameTypeList)))?
                                        ^
SelectClauseParser.g4:L37:     ( KW_AS ((LPAREN (aliasList | columnNameTypeList) RPAREN) | (aliasList | columnNameTypeList)))?
                                                                                           ^
SelectClauseParser.g4:L43:     | ( expression
                                 ^
SelectClauseParser.g4:L44:       ((KW_AS? identifier) | (KW_AS LPAREN identifier (COMMA identifier)* RPAREN))?
                                  ^
SelectClauseParser.g4:L44:       ((KW_AS? identifier) | (KW_AS LPAREN identifier (COMMA identifier)* RPAREN))?
                                                        ^
SelectClauseParser.g4:L53:     ( KW_AS ((LPAREN (aliasList | columnNameTypeList) RPAREN) | (aliasList | columnNameTypeList)))?
                                        ^
SelectClauseParser.g4:L53:     ( KW_AS ((LPAREN (aliasList | columnNameTypeList) RPAREN) | (aliasList | columnNameTypeList)))?
                                                                                           ^
SelectClauseParser.g4:L79:     (identifier | ( LPAREN identifier? partitioningSpec? window_frame? RPAREN))
                               ^
SelectClauseParser.g4:L79:     (identifier | ( LPAREN identifier? partitioningSpec? window_frame? RPAREN))
                                             ^
HiveLexer.g4:L413:     : 'E' ( PLUS|MINUS )? (Digit)+
                                             ^
HiveLexer.g4:L425:     : ( '\'' ( ~('\''|'\\') | ('\\' .) )* '\''
                                                 ^
HiveLexer.g4:L426:     | '"' ( ~('"'|'\\') | ('\\' .) )* '"'
                                             ^
HiveLexer.g4:L436:     : (Digit)+ ('L' | 'S' | 'Y')
                         ^
HiveLexer.g4:L444:     : (Digit)+ ('B' | 'K' | 'M' | 'G')
                         ^
HiveLexer.g4:L448:     : (Digit)+ ( DOT (Digit)* (Exponent)? | Exponent)?
                         ^
HiveLexer.g4:L448:     : (Digit)+ ( DOT (Digit)* (Exponent)? | Exponent)?
                                        ^
HiveLexer.g4:L448:     : (Digit)+ ( DOT (Digit)* (Exponent)? | Exponent)?
                                                 ^
HiveLexer.g4:L492:     : '--' (~('\n'|'\r'))* -> channel(HIDDEN)
                              ^
HiveLexer.g4:L481:     '`'  ( '``' | ~('`') )* '`'
                                      ^
./sql/hive/v3
HiveParser.g4:L59:     | (KW_VECTORIZATION vectorizationOnly? vectorizatonDetail?)
                         ^
HiveParser.g4:L106:          KW_FROM (path=StringLiteral)
                                     ^
HiveParser.g4:L425:     : (rewriteEnabled | rewriteDisabled)
                          ^
HiveParser.g4:L566:     | ((KW_FORMATTED|KW_EXTENDED) tabPartColTypeExpr)
                          ^
HiveParser.g4:L572:     : KW_ANALYZE KW_TABLE (tableOrPartition)
                                              ^
HiveParser.g4:L573:       ( KW_COMPUTE KW_STATISTICS (KW_NOSCAN | (KW_FOR KW_COLUMNS columnNameList?))?
                                                                  ^
HiveParser.g4:L604:         (KW_PLAN identifier)
                            ^
HiveParser.g4:L987:     |  (KW_NORELY)?
                           ^
HiveParser.g4:L1067:     : ( tableConstraint )
                           ^
HiveParser.g4:L1068:     | ( columnNameTypeConstraint )
                           ^
HiveParser.g4:L1072:     : ( createForeignKey )
                           ^
HiveParser.g4:L1073:     | ( createConstraint )
                           ^
HiveParser.g4:L1081:     : ( foreignKeyConstraint )
                           ^
HiveParser.g4:L1082:     | ( colConstraint )
                           ^
HiveParser.g4:L1094:     : ( alterForeignKeyConstraint )
                           ^
HiveParser.g4:L1095:     | ( alterColConstraint )
                           ^
HiveParser.g4:L1209:     : (singleFromStatement)
                           ^
HiveParser.g4:L1290:    : KW_LIMIT ((Number COMMA)? Number)
                                   ^
IdentifiersParser.g4:L371:     : atomExpression ((LSQUARE expression RSQUARE) | (DOT identifier))*
                                                 ^
IdentifiersParser.g4:L371:     : atomExpression ((LSQUARE expression RSQUARE) | (DOT identifier))*
                                                                                ^
ResourcePlanParser.g4:L40:   : (KW_QUERY_PARALLELISM EQUAL Number)
                               ^
ResourcePlanParser.g4:L41:   | (KW_DEFAULT KW_POOL EQUAL poolPath)
                               ^
ResourcePlanParser.g4:L49:   : (KW_QUERY_PARALLELISM)
                               ^
ResourcePlanParser.g4:L50:   | (KW_DEFAULT KW_POOL)
                               ^
ResourcePlanParser.g4:L59:           (identifier KW_LIKE identifier)
                                     ^
ResourcePlanParser.g4:L60:         | (identifier (KW_WITH rpAssignList)?)
                                     ^
ResourcePlanParser.g4:L92:           (KW_VALIDATE)
                                     ^
ResourcePlanParser.g4:L93:         | (KW_DISABLE)
                                     ^
ResourcePlanParser.g4:L94:         | (KW_SET rpAssignList)
                                     ^
ResourcePlanParser.g4:L95:         | (KW_UNSET rpUnassignList)
                                     ^
ResourcePlanParser.g4:L96:         | (KW_RENAME KW_TO identifier)
                                     ^
ResourcePlanParser.g4:L97:         | ((activate enable? | enable activate?))
                                     ^
ResourcePlanParser.g4:L97:         | ((activate enable? | enable activate?))
                                      ^
ResourcePlanParser.g4:L109:           (KW_ACTIVE KW_RESOURCE KW_PLAN KW_WITH identifier)
                                      ^
ResourcePlanParser.g4:L110:         | (KW_RESOURCE KW_PLAN identifier KW_WITH identifier)
                                      ^
ResourcePlanParser.g4:L157:     | (KW_MOVE KW_TO poolPath)
                                  ^
ResourcePlanParser.g4:L170:         (KW_WHEN triggerExpression KW_DO triggerActionExpression)
                                    ^
ResourcePlanParser.g4:L171:       | (KW_ADD KW_TO KW_POOL poolPath)
                                    ^
ResourcePlanParser.g4:L172:       | (KW_DROP KW_FROM KW_POOL poolPath)
                                    ^
ResourcePlanParser.g4:L173:       | (KW_ADD KW_TO KW_UNMANAGED)
                                    ^
ResourcePlanParser.g4:L174:       | (KW_DROP KW_FROM KW_UNMANAGED)
                                    ^
ResourcePlanParser.g4:L184:     : (
                                  ^
ResourcePlanParser.g4:L185:         (KW_ALLOC_FRACTION EQUAL Number)
                                    ^
ResourcePlanParser.g4:L186:       | (KW_QUERY_PARALLELISM EQUAL Number)
                                    ^
ResourcePlanParser.g4:L187:       | (KW_SCHEDULING_POLICY EQUAL StringLiteral)
                                    ^
ResourcePlanParser.g4:L188:       | (KW_PATH EQUAL poolPath)
                                    ^
ResourcePlanParser.g4:L203:         (KW_SET poolAssignList)
                                    ^
ResourcePlanParser.g4:L204:         | (KW_UNSET KW_SCHEDULING_POLICY)
                                      ^
ResourcePlanParser.g4:L205:         | (KW_ADD KW_TRIGGER identifier)
                                      ^
ResourcePlanParser.g4:L206:         | (KW_DROP KW_TRIGGER identifier)
                                      ^
ResourcePlanParser.g4:L215:     : (KW_CREATE (KW_USER | KW_GROUP | KW_APPLICATION)
                                  ^
ResourcePlanParser.g4:L217:          KW_IN identifier ((KW_TO poolPath) | unmanaged)
                                                       ^
ResourcePlanParser.g4:L222:     : (KW_ALTER (KW_USER | KW_GROUP | KW_APPLICATION)
                                  ^
ResourcePlanParser.g4:L224:          KW_IN identifier ((KW_TO poolPath) | unmanaged)
                                                       ^
SelectClauseParser.g4:L24:     : KW_SELECT QUERY_HINT? (((KW_ALL | KW_DISTINCT)? selectList)
                                                        ^
SelectClauseParser.g4:L25:                           | (KW_TRANSFORM selectTrfmClause))
                                                       ^
SelectClauseParser.g4:L37:     ( KW_AS ((LPAREN (aliasList | columnNameTypeList) RPAREN) | (aliasList | columnNameTypeList)))?
                                        ^
SelectClauseParser.g4:L37:     ( KW_AS ((LPAREN (aliasList | columnNameTypeList) RPAREN) | (aliasList | columnNameTypeList)))?
                                                                                           ^
SelectClauseParser.g4:L43:     | ( expression
                                 ^
SelectClauseParser.g4:L44:       ((KW_AS? identifier) | (KW_AS LPAREN identifier (COMMA identifier)* RPAREN))?
                                  ^
SelectClauseParser.g4:L44:       ((KW_AS? identifier) | (KW_AS LPAREN identifier (COMMA identifier)* RPAREN))?
                                                        ^
SelectClauseParser.g4:L53:     ( KW_AS ((LPAREN (aliasList | columnNameTypeList) RPAREN) | (aliasList | columnNameTypeList)))?
                                        ^
SelectClauseParser.g4:L53:     ( KW_AS ((LPAREN (aliasList | columnNameTypeList) RPAREN) | (aliasList | columnNameTypeList)))?
                                                                                           ^
SelectClauseParser.g4:L79:     (identifier | ( LPAREN identifier? partitioningSpec? window_frame? RPAREN))
                               ^
SelectClauseParser.g4:L79:     (identifier | ( LPAREN identifier? partitioningSpec? window_frame? RPAREN))
                                             ^
HiveLexer.g4:L416:     : 'E' ( PLUS|MINUS )? (Digit)+
                                             ^
HiveLexer.g4:L428:     : ( '\'' ( ~('\''|'\\') | ('\\' .) )* '\''
                                                 ^
HiveLexer.g4:L429:     | '"' ( ~('"'|'\\') | ('\\' .) )* '"'
                                             ^
HiveLexer.g4:L439:     : (Digit)+ ('L' | 'S' | 'Y')
                         ^
HiveLexer.g4:L451:     : (Digit)+ ( DOT (Digit)* (Exponent)? | Exponent)?
                         ^
HiveLexer.g4:L451:     : (Digit)+ ( DOT (Digit)* (Exponent)? | Exponent)?
                                        ^
HiveLexer.g4:L451:     : (Digit)+ ( DOT (Digit)* (Exponent)? | Exponent)?
                                                 ^
HiveLexer.g4:L495:     : '--' (~('\n'|'\r'))* -> channel(HIDDEN)
                              ^
HiveLexer.g4:L484:     '`'  ( '``' | ~('`') )* '`'
                                      ^
./sql/hive/v4
HiveParser.g4:L500:       (KW_TABLE tableName
                          ^
HiveParser.g4:L1896:     | (expression (KW_AS? id_ | KW_AS LPAREN id_ (COMMA id_)* RPAREN)?)
                           ^
HiveParser.g4:L3014:     : ( KW_ALLOC_FRACTION EQUAL allocFraction=Number
                           ^
HiveLexer.g4:L444:     : ( '\'' ( ~('\''|'\\') | ('\\' .) )* '\''
                                                 ^
HiveLexer.g4:L445:     | '"' ( ~('"'|'\\') | ('\\' .) )* '"'
                                             ^
HiveLexer.g4:L459:     : Number ('B'? 'D')
                                ^
HiveLexer.g4:L519:     : ('E') ( PLUS|MINUS )? (Digit)+
                         ^
HiveLexer.g4:L519:     : ('E') ( PLUS|MINUS )? (Digit)+
                                               ^
./sql/informix-sql
./sql/mariadb
MariaDBParser.g4:L320:           (startIntervals+=intervalExpr)*
                                 ^
MariaDBParser.g4:L324:           (endIntervals+=intervalExpr)*
                                 ^
MariaDBParser.g4:L360:     | (VISIBLE | INVISIBLE)
                             ^
MariaDBParser.g4:L364:     | (IGNORED | NOT IGNORED)                                  // MariaDB-specific only
                             ^
MariaDBParser.g4:L379:     | (
                             ^
MariaDBParser.g4:L415:     | (AUTO_INCREMENT | ON UPDATE currentTimestamp)                 #autoIncrementColumnConstraint
                             ^
MariaDBParser.g4:L1005:         | moveOrder=(FIRST | NEXT | PREV | LAST)
                                            ^
MariaDBParser.g4:L1124:                ('(' (querySpecificationNointo | queryExpressionNointo) ')' (AS? uid)?)
                                       ^
MariaDBParser.g4:L1162:     : (ALL | DISTINCT | DISTINCTROW)
                              ^
MariaDBParser.g4:L1165:     | (SQL_CACHE | SQL_NO_CACHE)
                              ^
MariaDBParser.g4:L1183:     | (
                              ^
MariaDBParser.g4:L1763:     | DELETE | DROP (ROLE)? | EVENT | EXECUTE | FILE | GRANT OPTION
                                            ^
MariaDBParser.g4:L1912:         (LIMIT
                                ^
MariaDBParser.g4:L1995:     : (
                              ^
MariaDBParser.g4:L2047:     : SIGNAL ( ( SQLSTATE VALUE? stringLiteral ) | ID | REVERSE_QUOTE_ID )
                                       ^
MariaDBParser.g4:L2052:     : RESIGNAL ( ( SQLSTATE VALUE? stringLiteral ) | ID | REVERSE_QUOTE_ID )?
                                         ^
MariaDBParser.g4:L2074:           ( variableClause '=' ( NUMBER | ROW_COUNT ) ( ',' variableClause '=' ( NUMBER | ROW_COUNT ) )* )
                                  ^
MariaDBParser.g4:L2075:         | ( CONDITION  ( decimalLiteral | variableClause ) variableClause '=' diagnosticsConditionInformationName ( ',' variableClause '=' diagnosticsConditionInformationName )* )
                                  ^
MariaDBParser.g4:L2098:     : (
                              ^
MariaDBParser.g4:L2280:     | typeName=(
                                       ^
MariaDBParser.g4:L2292:     | typeName=(
                                       ^
MariaDBParser.g4:L2312:       | typeName=(DATE | DATETIME | TIME | JSON | INT | INTEGER)
                                         ^
MariaDBParser.g4:L2381:     (
                            ^
MariaDBLexer.g4:L1294: REAL_LITERAL:                        (DEC_DIGIT+)? '.' DEC_DIGIT+
                                                            ^
MariaDBLexer.g4:L1296:                                      | (DEC_DIGIT+)? '.' (DEC_DIGIT+ EXPONENT_NUM_PART)
                                                              ^
MariaDBLexer.g4:L1296:                                      | (DEC_DIGIT+)? '.' (DEC_DIGIT+ EXPONENT_NUM_PART)
                                                                                ^
MariaDBLexer.g4:L1327: IP_ADDRESS:                          (
                                                            ^
./sql/mysql/Positive-Technologies
MySqlParser.g4:L296:           (startIntervals+=intervalExpr)*
                               ^
MySqlParser.g4:L300:           (endIntervals+=intervalExpr)*
                               ^
MySqlParser.g4:L336:     | (VISIBLE | INVISIBLE)
                           ^
MySqlParser.g4:L353:     | (
                           ^
MySqlParser.g4:L389:     | (AUTO_INCREMENT | ON UPDATE currentTimestamp)                 #autoIncrementColumnConstraint
                           ^
MySqlParser.g4:L977:         | moveOrder=(FIRST | NEXT | PREV | LAST)
                                         ^
MySqlParser.g4:L1096:                ('(' (querySpecificationNointo | queryExpressionNointo) ')' (AS? uid)?)
                                     ^
MySqlParser.g4:L1133:     : (ALL | DISTINCT | DISTINCTROW)
                            ^
MySqlParser.g4:L1136:     | (SQL_CACHE | SQL_NO_CACHE)
                            ^
MySqlParser.g4:L1154:     | (
                            ^
MySqlParser.g4:L1735:     | DELETE | DROP (ROLE)? | EVENT | EXECUTE | FILE | GRANT OPTION
                                          ^
MySqlParser.g4:L1875:         (LIMIT
                              ^
MySqlParser.g4:L1958:     : (
                            ^
MySqlParser.g4:L2010:     : SIGNAL ( ( SQLSTATE VALUE? stringLiteral ) | ID | REVERSE_QUOTE_ID )
                                     ^
MySqlParser.g4:L2015:     : RESIGNAL ( ( SQLSTATE VALUE? stringLiteral ) | ID | REVERSE_QUOTE_ID )?
                                       ^
MySqlParser.g4:L2041:           ( variableClause '=' ( NUMBER | ROW_COUNT ) ( ',' variableClause '=' ( NUMBER | ROW_COUNT ) )* )
                                ^
MySqlParser.g4:L2042:         | ( CONDITION  ( decimalLiteral | variableClause ) variableClause '=' diagnosticsConditionInformationName ( ',' variableClause '=' diagnosticsConditionInformationName )* )
                                ^
MySqlParser.g4:L2065:     : (
                            ^
MySqlParser.g4:L2241:     | typeName=(
                                     ^
MySqlParser.g4:L2273:       | typeName=(DATE | DATETIME | TIME | JSON | INT | INTEGER)
                                       ^
MySqlParser.g4:L2344:     (
                          ^
MySqlLexer.g4:L1286: REAL_LITERAL:                        (DEC_DIGIT+)? '.' DEC_DIGIT+
                                                          ^
MySqlLexer.g4:L1288:                                      | (DEC_DIGIT+)? '.' (DEC_DIGIT+ EXPONENT_NUM_PART)
                                                            ^
MySqlLexer.g4:L1288:                                      | (DEC_DIGIT+)? '.' (DEC_DIGIT+ EXPONENT_NUM_PART)
                                                                              ^
MySqlLexer.g4:L1319: IP_ADDRESS:                          (
                                                          ^
./sql/phoenix
PhoenixParser.g4:L549:     | expression comp_op any_all LP (select_command) RP
                                                           ^
PhoenixLexer.g4:L232: REAL_LITERAL:                (DECIMAL_LITERAL | DEC_DOT_DEC) ('E' [+-]? DEC_DIGIT+);
                                                                                   ^
PhoenixLexer.g4:L233: CHAR_LITERAL:                '\'' (~['\\\r\n]) '\'';
                                                        ^
./sql/plsql
PlSqlParser.g4:L184:                                       | ( replace_disk_clause
                                                             ^
PlSqlParser.g4:L260:     : REBALANCE ( ((WITH | WITHOUT) phase+)? (POWER numeric) (WAIT | NOWAIT)?
                                                                  ^
PlSqlParser.g4:L487:       ((PIPELINED? (IS | AS) (DECLARE? seq_of_declare_specs? body | call_spec))
                            ^
PlSqlParser.g4:L628:       RETURN type_spec PIPELINED? DETERMINISTIC? (RESULT_CACHE)? ';'
                                                                      ^
PlSqlParser.g4:L672:       ((PIPELINED? DETERMINISTIC? (IS | AS) (DECLARE? seq_of_declare_specs? body | call_spec)) | (PIPELINED | AGGREGATE) USING implementation_type_name) ';'
                            ^
PlSqlParser.g4:L745:       ((ENABLE | DISABLE) | RENAME TO rename_trigger_name=trigger_name | COMPILE DEBUG? compiler_parameters_clause* (REUSE SETTINGS)?) ';'
                            ^
PlSqlParser.g4:L937:     : BODY type_name (IS | AS) (type_body_elements)+ END
                                                    ^
PlSqlParser.g4:L966:       ('(' (SELF IN OUT type_spec ',') type_elements_parameter (',' type_elements_parameter)*  ')')?
                                ^
PlSqlParser.g4:L1007:      (PIPELINED? (IS | AS) (DECLARE? seq_of_declare_specs? body))? ';'?
                                                 ^
PlSqlParser.g4:L1021:       type_spec ('(' (SELF IN OUT type_spec ',') type_elements_parameter (',' type_elements_parameter)*  ')')?
                                           ^
PlSqlParser.g4:L1148:         REFERENCES DISTINCT? ('(' attribute_name (',' attribute_name) ')' | attribute_name)
                                                                       ^
PlSqlParser.g4:L1315:     | (system_action | ALL)
                            ^
PlSqlParser.g4:L2248:     : {self.isVersion12()}? (CONTAINER EQUALS_OP (CURRENT | ALL))
                                                  ^
PlSqlParser.g4:L2252:     : ( (sql_statement_shortcut | ALL STATEMENTS?)  (',' (sql_statement_shortcut | ALL STATEMENTS?) )*
                            ^
PlSqlParser.g4:L2686:     : ( (CONSTRAINT constraint_name)?
                            ^
PlSqlParser.g4:L2699:       | (RELY | NORELY)
                              ^
PlSqlParser.g4:L2700:       | (ENABLE | DISABLE)
                              ^
PlSqlParser.g4:L2701:       | (VALIDATE | NOVALIDATE)
                              ^
PlSqlParser.g4:L2750:     | (DATAFILE | TEMPFILE) (online_or_offline)
                                                  ^
PlSqlParser.g4:L2797:         | (ONLINE | OFFLINE)
                                ^
PlSqlParser.g4:L2896:    (','? datafile_tempfile_spec)
                         ^
PlSqlParser.g4:L2901:    (','? datafile_tempfile_spec)
                         ^
PlSqlParser.g4:L2947:        | (cache_or_nocache)
                               ^
PlSqlParser.g4:L3044:         ( ( physical_attributes_clause
                              ^
PlSqlParser.g4:L3047:           | (CACHE | NOCACHE)
                                  ^
PlSqlParser.g4:L3072:          ( IMMEDIATE (SYNCHRONOUS | ASYNCHRONOUS)?
                               ^
PlSqlParser.g4:L3097:     : (PCTFREE numeric | PCTUSED numeric | SCALE numeric | TABLESPACE tablespace | (CACHE | NOCACHE))+
                                                                                                         ^
PlSqlParser.g4:L3175:         ( USING INDEX ( (physical_attributes_clause | TABLESPACE mv_tablespace=id_expression)+ )*
                                            ^
PlSqlParser.g4:L3194:     : ( NEVER REFRESH
                            ^
PlSqlParser.g4:L3196:          ( (FAST | COMPLETE | FORCE)
                                 ^
PlSqlParser.g4:L3198:          | (START WITH | NEXT) //date goes here TODO
                                 ^
PlSqlParser.g4:L3288:     : CREATE (OR REPLACE)? (PUBLIC | PRIVATE)? OUTLINE (o=id_expression)?
                                                                             ^
PlSqlParser.g4:L3598:         ( ( '(' ( range_subpartition_desc (',' range_subpartition_desc)*
                              ^
PlSqlParser.g4:L3598:         ( ( '(' ( range_subpartition_desc (',' range_subpartition_desc)*
                                ^
PlSqlParser.g4:L3610:         ( ( '(' ( range_subpartition_desc (',' range_subpartition_desc)*
                              ^
PlSqlParser.g4:L3610:         ( ( '(' ( range_subpartition_desc (',' range_subpartition_desc)*
                                ^
PlSqlParser.g4:L3622:         ( ( '(' ( range_subpartition_desc (',' range_subpartition_desc)*
                              ^
PlSqlParser.g4:L3622:         ( ( '(' ( range_subpartition_desc (',' range_subpartition_desc)*
                                ^
PlSqlParser.g4:L3835:     | ((ROW | COLUMN) STORE COMPRESS (ADVANCED | FOR QUERY)) ROW AFTER ilm_time_period OF NO MODIFICATION
                            ^
PlSqlParser.g4:L3957:     : UPGRADE (NOT? INCLUDING DATA) column_properties
                                    ^
PlSqlParser.g4:L4205:          ((TEST | ALLOW UNSIGNED_INTEGER CORRUPTION | parallel_clause)+ )?
                               ^
PlSqlParser.g4:L4214:           ((UNTIL (CANCEL |TIME CHAR_STRING | CHANGE UNSIGNED_INTEGER | CONSISTENT)
                                ^
PlSqlParser.g4:L4265:         (AS (//TODO (','? file_specification)+ |
                                  ^
PlSqlParser.g4:L4283:         | DROP (INCLUDING DATAFILES)
                                     ^
PlSqlParser.g4:L4295:     : (ARCHIVELOG MANUAL? | NOARCHIVELOG)
                            ^
PlSqlParser.g4:L4387:         ((TO (((PHYSICAL | LOGICAL)? PRIMARY |  PHYSICAL? STANDBY)
                               ^
PlSqlParser.g4:L4654:       ((enable_disable_clause | enable_or_disable (TABLE LOCK | ALL TRIGGERS) )+)?
                            ^
PlSqlParser.g4:L4750:       | (CACHE | NOCACHE)
                              ^
PlSqlParser.g4:L4905:     : SET UNUSED (COLUMN column_name| ('(' column_name (',' column_name)* ')' )) (CASCADE CONSTRAINTS | INVALIDATE)*
                                                            ^
PlSqlParser.g4:L4907:     | DROP (UNUSED COLUMNS | COLUMNS CONTINUE) (CHECKPOINT UNSIGNED_INTEGER)
                                                                     ^
PlSqlParser.g4:L4930:           | ( column_definition | virtual_column_definition ))
                                  ^
PlSqlParser.g4:L4961:     :  TABLESPACE tablespace_name=id_expression | (lob_parameters storage_clause? )
                                                                        ^
PlSqlParser.g4:L4966:     : LOB ( '(' lob_item (',' lob_item)* ')' STORE AS ( (SECUREFILE|BASICFILE) | '(' lob_storage_parameters* ')' )+
                                                                              ^
PlSqlParser.g4:L4967:           | '(' lob_item ')' STORE AS ( (SECUREFILE | BASICFILE) | lob_segname | '(' lob_storage_parameters* ')' )+
                                                              ^
PlSqlParser.g4:L5041:     : LOB ('(' lob_item (',' lob_item) ')' STORE AS ((SECUREFILE | BASICFILE) | '(' lob_storage_parameters ')')+
                                              ^
PlSqlParser.g4:L5041:     : LOB ('(' lob_item (',' lob_item) ')' STORE AS ((SECUREFILE | BASICFILE) | '(' lob_storage_parameters ')')+
                                                                           ^
PlSqlParser.g4:L5042:           | '(' lob_item ')' STORE AS ((SECUREFILE | BASICFILE) | lob_segname | '(' lob_storage_parameters ')')+
                                                             ^
PlSqlParser.g4:L5689:     : table_ref_aux_internal flashback_query_clause* (/*{isTableAlias()}?*/ table_alias)?
                                                                           ^
PlSqlParser.g4:L5716:     : PARTITION BY (('(' (subquery | expressions)? ')') | expressions)
                                          ^
PlSqlParser.g4:L6083:     ( NULL_
                          ^
PlSqlParser.g4:L6108:     | (NOT_EQUAL_OP | '<' '>' | '!' '=' | '^' '=')
                            ^
PlSqlParser.g4:L6305:     : (WITHOUT ARRAY? WRAPPER) | (WITH (UNCONDITIONAL | CONDITIONAL)? ARRAY? WRAPPER)
                            ^
PlSqlParser.g4:L6305:     : (WITHOUT ARRAY? WRAPPER) | (WITH (UNCONDITIONAL | CONDITIONAL)? ARRAY? WRAPPER)
                                                       ^
./sql/postgresql
PostgreSQLLexer.g4:L169:    : '$' ([0-9])+
                                  ^
PostgreSQLLexer.g4:L2911:    : ('/*' ('/'* BlockComment | ~ [/*] | '/'+ ~ [/*] | '*'+ ~ [/*])* '*'* '*/') -> channel (HIDDEN)
                               ^
PostgreSQLLexer.g4:L2917:    ('/'+ ~ [/*] | '*'+ ~ [/*]))*
                             ^
PostgreSQLLexer.g4:L3036:    : ('$' Tag? '$')
                               ^
./sql/snowflake
SnowflakeParser.g4:L213:     : STAGE_FILE_FORMAT EQ '(' ( FORMAT_NAME EQ string )
                                                        ^
SnowflakeParser.g4:L214:                          | (TYPE EQ ( CSV | JSON | AVRO | ORC | PARQUET | XML ) format_type_options+ )
                                                    ^
SnowflakeParser.g4:L274:          | ( schema_privileges          | ALL PRIVILEGES? ) ON ( FUTURE SCHEMAS IN DATABASE id_ )
                                                                                        ^
SnowflakeParser.g4:L295:     | ( APPLY MASKING POLICY
                               ^
SnowflakeParser.g4:L300:     | ( EXECUTE TASK
                               ^
SnowflakeParser.g4:L371:             | ( TABLE object_name | ALL TABLES IN SCHEMA schema_name )
                                       ^
SnowflakeParser.g4:L436:            | ( schema_privileges          | ALL  PRIVILEGES? ) ON ( FUTURE SCHEMAS IN DATABASE <db_name> )
                                                                                           ^
SnowflakeParser.g4:L447:            | ( TABLE object_name | ALL TABLES IN SCHEMA schema_name )
                                      ^
SnowflakeParser.g4:L448:            | ( VIEW object_name | ALL VIEWS IN SCHEMA schema_name )  )
                                      ^
SnowflakeParser.g4:L755:     | ALTER FILE FORMAT if_exists? id_ SET ( format_type_options* comment_clause? )
                                                                    ^
SnowflakeParser.g4:L793:         | SET (
                                       ^
SnowflakeParser.g4:L822:     : ALTER PIPE if_exists? id_ SET ( object_properties? comment_clause? )
                                                             ^
SnowflakeParser.g4:L910:     | ALTER SCHEMA if_exists? schema_name SET (
                                                                       ^
SnowflakeParser.g4:L983:         ( EXTERNAL_OAUTH_SCOPE_DELIMITER EQ string ) // Only for EXTERNAL_OAUTH_TYPE EQ CUSTOM
                                 ^
SnowflakeParser.g4:L1065:     | ALTER STAGE if_exists? id_ SET (
                                                               ^
SnowflakeParser.g4:L1072:     | ALTER STAGE if_exists? id_ SET (
                                                               ^
SnowflakeParser.g4:L1170:     ( UNIQUE | PRIMARY KEY | ( ( FOREIGN KEY )? REFERENCES object_name ( '(' column_name ')' )? ) )
                                                       ^
SnowflakeParser.g4:L1236:     | ( SET? NOT NULL_ | DROP NOT NULL_ )
                                ^
SnowflakeParser.g4:L1313:     | id_ DISABLE FAILOVER ( TO ACCOUNTS  id_ DOT id_  (COMMA id_ DOT id_) )?
                                                                                 ^
SnowflakeParser.g4:L1462:           API_PROVIDER EQ ( id_ )
                                                    ^
SnowflakeParser.g4:L1496:     : CREATE CONNECTION if_not_exists? id_ ( comment_clause? | (AS REPLICA OF id_ DOT id_ DOT id_ comment_clause?) )
                                                                                         ^
SnowflakeParser.g4:L1536:         ( ( CALLED ON NULL_ INPUT) | ((RETURNS NULL_ ON NULL_ INPUT) | STRICT) )?
                                    ^
SnowflakeParser.g4:L1536:         ( ( CALLED ON NULL_ INPUT) | ((RETURNS NULL_ ON NULL_ INPUT) | STRICT) )?
                                                               ^
SnowflakeParser.g4:L1536:         ( ( CALLED ON NULL_ INPUT) | ((RETURNS NULL_ ON NULL_ INPUT) | STRICT) )?
                                                                ^
SnowflakeParser.g4:L2082:       ( ( STORAGE_INTEGRATION EQ id_ )
                                  ^
SnowflakeParser.g4:L2083:         | ( CREDENTIALS EQ LR_BRACKET ( ( aws_key_id aws_secret_key aws_token? ) | aws_role ) RR_BRACKET )
                                    ^
SnowflakeParser.g4:L2083:         | ( CREDENTIALS EQ LR_BRACKET ( ( aws_key_id aws_secret_key aws_token? ) | aws_role ) RR_BRACKET )
                                                                  ^
SnowflakeParser.g4:L2092:       ( ( STORAGE_INTEGRATION EQ id_ ) | ( CREDENTIALS EQ LR_BRACKET ( AZURE_SAS_TOKEN EQ string )? RR_BRACKET ) )?
                                  ^
SnowflakeParser.g4:L2092:       ( ( STORAGE_INTEGRATION EQ id_ ) | ( CREDENTIALS EQ LR_BRACKET ( AZURE_SAS_TOKEN EQ string )? RR_BRACKET ) )?
                                                                   ^
SnowflakeParser.g4:L2244:     : ( ( LOCAL | GLOBAL )? temporary | VOLATILE ) | TRANSIENT
                                ^
SnowflakeParser.g4:L2443:         ( (WAREHOUSE EQ string) | (USER_TASK_MANAGED_INITIAL_WAREHOUSE_SIZE EQ string ) )?
                                    ^
SnowflakeParser.g4:L2443:         ( (WAREHOUSE EQ string) | (USER_TASK_MANAGED_INITIAL_WAREHOUSE_SIZE EQ string ) )?
                                                            ^
SnowflakeParser.g4:L3407:     : ifnull=( IFNULL | NVL )
                                       ^
SnowflakeParser.g4:L3412:     | to_date=( TO_DATE | DATE )
                                        ^
SnowflakeParser.g4:L3419:     | substring=( SUBSTRING | SUBSTR )
                                          ^
SnowflakeParser.g4:L3424:     : dateadd=( DATEADD | TIMEADD | TIMESTAMPADD )
                                        ^
SnowflakeParser.g4:L3425:     | datefiff=( DATEDIFF | TIMEDIFF | TIMESTAMPDIFF )
                                         ^
SnowflakeParser.g4:L3695:     : (UNION ALL? | (EXCEPT | MINUS_) | INTERSECT) select_statement
                                              ^
SnowflakeParser.g4:L3696:     | ('(' select_statement ')')
                                ^
SnowflakeParser.g4:L3765:     : var (COMMA var);
                                    ^
SnowflakeParser.g4:L3954:     : (BERNOULLI | ROW)
                                ^
SnowflakeParser.g4:L3955:     | (SYSTEM | BLOCK)
                                ^
SnowflakeParser.g4:L3963:     : LR_BRACKET (num | (num ROWS)) RR_BRACKET repeatable_seed?
                                                  ^
SnowflakeLexer.g4:L1110: ID:                     [A-Z_] ( [A-Z0-9_@$] )*;
                                                        ^
SnowflakeLexer.g4:L1111: ID2:                    '$' [A-Z_] ( [A-Z0-9_] )*;
                                                            ^
SnowflakeLexer.g4:L1125: REAL:                (DECIMAL | DEC_DOT_DEC) ('E' [+-]? DEC_DIGIT+);
                                                                      ^
SnowflakeLexer.g4:L1178: fragment DEC_DOT_DEC:  (DEC_DIGIT+ '.' DEC_DIGIT+ |  DEC_DIGIT+ '.' | '.' DEC_DIGIT+);
                                                ^
./sql/sqlite
SQLiteParser.g4:L37: parse: (sql_stmt_list)* EOF
                            ^
SQLiteParser.g4:L143:         (PRIMARY_ KEY_ asc_desc? conflict_clause? AUTOINCREMENT_?)
                              ^
SQLiteParser.g4:L290:     | function_name OPEN_PAR ((DISTINCT_? expr ( COMMA expr)*) | STAR)? CLOSE_PAR filter_clause? over_clause?
                                                    ^
SQLiteParser.g4:L305:     | ((NOT_)? EXISTS_)? OPEN_PAR select_stmt CLOSE_PAR
                             ^
SQLiteParser.g4:L351:         (
                              ^
SQLiteParser.g4:L367:         | UPDATE_ SET_ (
                                             ^
SQLiteParser.g4:L401:     (
                          ^
SQLiteParser.g4:L430: table_or_subquery: (
                                         ^
SQLiteParser.g4:L502:     OPEN_PAR base_window_name? (PARTITION_ BY_ expr (COMMA expr)*)? (
                                                                                          ^
SQLiteLexer.g4:L226: NUMERIC_LITERAL: ((DIGIT+ ('.' DIGIT*)?) | ('.' DIGIT+)) ('E' [-+]? DIGIT+)? | '0x' HEX_DIGIT+;
                                       ^
SQLiteLexer.g4:L226: NUMERIC_LITERAL: ((DIGIT+ ('.' DIGIT*)?) | ('.' DIGIT+)) ('E' [-+]? DIGIT+)? | '0x' HEX_DIGIT+;
                                                                ^
SQLiteLexer.g4:L234: SINGLE_LINE_COMMENT: '--' ~[\r\n]* (('\r'? '\n') | EOF) -> channel(HIDDEN);
                                                         ^
./sql/trino
TrinoParser.g4:L67:         (WITH_ (NO_)? DATA_)?                                             #createTableAsSelect
                                   ^
TrinoParser.g4:L234:       | FETCH_ (FIRST_ | NEXT_) (fetchFirst=rowCount)? (ROW_ | ROWS_) (ONLY_ | WITH_ TIES_)
                                                     ^
TrinoParser.g4:L295:     : (existingWindowName=identifier)?
                           ^
TrinoParser.g4:L302:     : name=identifier (columnAliases)? AS_ LPAREN_ query RPAREN_
                                           ^
TrinoParser.g4:L506:         (WITHIN_ GROUP_ LPAREN_ ORDER_ BY_ sortItem (COMMA_ sortItem)* RPAREN_)                          #listagg
                             ^
TrinoParser.g4:L754:     : ASTERISK_ (reluctant=QUESTION_MARK_)?                                                       #zeroOrMoreQuantifier
                                     ^
TrinoParser.g4:L755:     | PLUS_ (reluctant=QUESTION_MARK_)?                                                           #oneOrMoreQuantifier
                                 ^
TrinoParser.g4:L756:     | QUESTION_MARK_ (reluctant=QUESTION_MARK_)?                                                  #zeroOrOneQuantifier
                                          ^
TrinoParser.g4:L757:     | LCURLY_ exactly=INTEGER_VALUE_ RCURLY_ (reluctant=QUESTION_MARK_)?                                  #rangeQuantifier
                                                                  ^
TrinoParser.g4:L758:     | LCURLY_ (atLeast=INTEGER_VALUE_)? COMMA_ (atMost=INTEGER_VALUE_)? RCURLY_ (reluctant=QUESTION_MARK_)?   #rangeQuantifier
                                   ^
TrinoParser.g4:L758:     | LCURLY_ (atLeast=INTEGER_VALUE_)? COMMA_ (atMost=INTEGER_VALUE_)? RCURLY_ (reluctant=QUESTION_MARK_)?   #rangeQuantifier
                                                                    ^
TrinoParser.g4:L758:     | LCURLY_ (atLeast=INTEGER_VALUE_)? COMMA_ (atMost=INTEGER_VALUE_)? RCURLY_ (reluctant=QUESTION_MARK_)?   #rangeQuantifier
                                                                                                     ^
./sql/tsql
TSqlParser.g4:L686:     | SERVER ( ( AUDIT SPECIFICATION? ) | ROLE )?
                                   ^
TSqlParser.g4:L713:     : SET LR_BRACKET ( ( AUTOMATED_BACKUP_PREFERENCE EQUAL ( PRIMARY | SECONDARY_ONLY| SECONDARY | NONE )  | FAILURE_CONDITION_LEVEL  EQUAL DECIMAL   | HEALTH_CHECK_TIMEOUT EQUAL milliseconds=DECIMAL  | DB_FAILOVER  EQUAL ( ON | OFF )   | REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT EQUAL DECIMAL ) RR_BRACKET  )
                                         ^
TSqlParser.g4:L716:     | ADD REPLICA ON server_instance=STRING (WITH LR_BRACKET ( (ENDPOINT_URL EQUAL STRING)?   (COMMA? AVAILABILITY_MODE EQUAL (SYNCHRONOUS_COMMIT| ASYNCHRONOUS_COMMIT))?    (COMMA? FAILOVER_MODE EQUAL (AUTOMATIC|MANUAL) )?  (COMMA?   SEEDING_MODE EQUAL (AUTOMATIC|MANUAL) )?  (COMMA?  BACKUP_PRIORITY EQUAL DECIMAL)?  ( COMMA? PRIMARY_ROLE  LR_BRACKET ALLOW_CONNECTIONS EQUAL ( READ_WRITE | ALL ) RR_BRACKET)?   ( COMMA? SECONDARY_ROLE  LR_BRACKET ALLOW_CONNECTIONS EQUAL ( READ_ONLY  ) RR_BRACKET )? )
                                                                ^
TSqlParser.g4:L716:     | ADD REPLICA ON server_instance=STRING (WITH LR_BRACKET ( (ENDPOINT_URL EQUAL STRING)?   (COMMA? AVAILABILITY_MODE EQUAL (SYNCHRONOUS_COMMIT| ASYNCHRONOUS_COMMIT))?    (COMMA? FAILOVER_MODE EQUAL (AUTOMATIC|MANUAL) )?  (COMMA?   SEEDING_MODE EQUAL (AUTOMATIC|MANUAL) )?  (COMMA?  BACKUP_PRIORITY EQUAL DECIMAL)?  ( COMMA? PRIMARY_ROLE  LR_BRACKET ALLOW_CONNECTIONS EQUAL ( READ_WRITE | ALL ) RR_BRACKET)?   ( COMMA? SECONDARY_ROLE  LR_BRACKET ALLOW_CONNECTIONS EQUAL ( READ_ONLY  ) RR_BRACKET )? )
                                                                                 ^
TSqlParser.g4:L716:     | ADD REPLICA ON server_instance=STRING (WITH LR_BRACKET ( (ENDPOINT_URL EQUAL STRING)?   (COMMA? AVAILABILITY_MODE EQUAL (SYNCHRONOUS_COMMIT| ASYNCHRONOUS_COMMIT))?    (COMMA? FAILOVER_MODE EQUAL (AUTOMATIC|MANUAL) )?  (COMMA?   SEEDING_MODE EQUAL (AUTOMATIC|MANUAL) )?  (COMMA?  BACKUP_PRIORITY EQUAL DECIMAL)?  ( COMMA? PRIMARY_ROLE  LR_BRACKET ALLOW_CONNECTIONS EQUAL ( READ_WRITE | ALL ) RR_BRACKET)?   ( COMMA? SECONDARY_ROLE  LR_BRACKET ALLOW_CONNECTIONS EQUAL ( READ_ONLY  ) RR_BRACKET )? )
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            ^
TSqlParser.g4:L718:         |SECONDARY_ROLE LR_BRACKET (ALLOW_CONNECTIONS EQUAL (NO|READ_ONLY|ALL) | READ_ONLY_ROUTING_LIST EQUAL ( LR_BRACKET ( ( STRING) ) RR_BRACKET ) )
                                                                                                                                  ^
TSqlParser.g4:L718:         |SECONDARY_ROLE LR_BRACKET (ALLOW_CONNECTIONS EQUAL (NO|READ_ONLY|ALL) | READ_ONLY_ROUTING_LIST EQUAL ( LR_BRACKET ( ( STRING) ) RR_BRACKET ) )
                                                                                                                                               ^
TSqlParser.g4:L718:         |SECONDARY_ROLE LR_BRACKET (ALLOW_CONNECTIONS EQUAL (NO|READ_ONLY|ALL) | READ_ONLY_ROUTING_LIST EQUAL ( LR_BRACKET ( ( STRING) ) RR_BRACKET ) )
                                                                                                                                                 ^
TSqlParser.g4:L719:         |PRIMARY_ROLE LR_BRACKET (ALLOW_CONNECTIONS EQUAL (NO|READ_ONLY|ALL) | READ_ONLY_ROUTING_LIST EQUAL ( LR_BRACKET ( (COMMA? STRING)*|NONE ) RR_BRACKET )
                                                                                                                                ^
TSqlParser.g4:L723:         |SECONDARY_ROLE LR_BRACKET (ALLOW_CONNECTIONS EQUAL (NO|READ_ONLY|ALL) | READ_ONLY_ROUTING_LIST EQUAL ( LR_BRACKET ( ( STRING) ) RR_BRACKET ) )
                                                                                                                                  ^
TSqlParser.g4:L723:         |SECONDARY_ROLE LR_BRACKET (ALLOW_CONNECTIONS EQUAL (NO|READ_ONLY|ALL) | READ_ONLY_ROUTING_LIST EQUAL ( LR_BRACKET ( ( STRING) ) RR_BRACKET ) )
                                                                                                                                               ^
TSqlParser.g4:L723:         |SECONDARY_ROLE LR_BRACKET (ALLOW_CONNECTIONS EQUAL (NO|READ_ONLY|ALL) | READ_ONLY_ROUTING_LIST EQUAL ( LR_BRACKET ( ( STRING) ) RR_BRACKET ) )
                                                                                                                                                 ^
TSqlParser.g4:L724:         |PRIMARY_ROLE LR_BRACKET (ALLOW_CONNECTIONS EQUAL (NO|READ_ONLY|ALL) | READ_ONLY_ROUTING_LIST EQUAL ( LR_BRACKET ( (COMMA? STRING)*|NONE ) RR_BRACKET )
                                                                                                                                ^
TSqlParser.g4:L729:     | JOIN AVAILABILITY GROUP ON (COMMA? ag_name=STRING WITH LR_BRACKET ( LISTENER_URL EQUAL STRING COMMA AVAILABILITY_MODE EQUAL (SYNCHRONOUS_COMMIT|ASYNCHRONOUS_COMMIT) COMMA FAILOVER_MODE EQUAL MANUAL COMMA SEEDING_MODE EQUAL (AUTOMATIC|MANUAL) RR_BRACKET ) )+
                                                                                            ^
TSqlParser.g4:L730:      | MODIFY AVAILABILITY GROUP ON (COMMA? ag_name_modified=STRING WITH LR_BRACKET (LISTENER_URL EQUAL STRING  (COMMA? AVAILABILITY_MODE EQUAL (SYNCHRONOUS_COMMIT|ASYNCHRONOUS_COMMIT) )? (COMMA? FAILOVER_MODE EQUAL MANUAL )? (COMMA? SEEDING_MODE EQUAL (AUTOMATIC|MANUAL))? RR_BRACKET ) )+
                                                                                                        ^
TSqlParser.g4:L735:     | ADD LISTENER listener_name=STRING  LR_BRACKET ( WITH DHCP (ON LR_BRACKET ip_v4_failover ip_v4_failover RR_BRACKET ) | WITH IP LR_BRACKET (    (COMMA? LR_BRACKET ( ip_v4_failover COMMA  ip_v4_failover | ip_v6_failover ) RR_BRACKET)+ RR_BRACKET  (COMMA PORT EQUAL DECIMAL)? ) ) RR_BRACKET
                                                                                    ^
TSqlParser.g4:L735:     | ADD LISTENER listener_name=STRING  LR_BRACKET ( WITH DHCP (ON LR_BRACKET ip_v4_failover ip_v4_failover RR_BRACKET ) | WITH IP LR_BRACKET (    (COMMA? LR_BRACKET ( ip_v4_failover COMMA  ip_v4_failover | ip_v6_failover ) RR_BRACKET)+ RR_BRACKET  (COMMA PORT EQUAL DECIMAL)? ) ) RR_BRACKET
                                                                                                                                                                   ^
TSqlParser.g4:L756:      ( CONTRACT_NAME EQUAL ( ( id_) | ANY )  COMMA?  )?
                                                 ^
TSqlParser.g4:L840:     : DROP DEFAULT ( IF EXISTS )? (COMMA? (schema_name=id_ DOT)? default_name=id_)
                                                      ^
TSqlParser.g4:L998:     : DROP ( COUNTER )? SIGNATURE FROM (schema_name=id_ DOT)? module_name=id_
                               ^
TSqlParser.g4:L1149:        (COMMA? ADD EVENT ( (event_module_guid=id_ DOT)? event_package_name=id_ DOT event_name=id_)
                                              ^
TSqlParser.g4:L1158:       ( (ADD TARGET (event_module_guid=id_ DOT)? event_package_name=id_ DOT target_name=id_ ) ( LR_BRACKET SET (COMMA? target_parameter_name=id_ EQUAL (LR_BRACKET? DECIMAL RR_BRACKET? |STRING) )+ RR_BRACKET )* )*
                             ^
TSqlParser.g4:L1187:     : (event_field_name=id_ | (event_field_name=id_ |( (event_module_guid=id_ DOT)?  event_package_name=id_ DOT predicate_source_name=id_ ) ) (EQUAL |(LESS GREATER) | (EXCLAMATION EQUAL) | GREATER  | (GREATER EQUAL)| LESS | LESS EQUAL) (DECIMAL | STRING) )
                           ^
TSqlParser.g4:L1187:     : (event_field_name=id_ | (event_field_name=id_ |( (event_module_guid=id_ DOT)?  event_package_name=id_ DOT predicate_source_name=id_ ) ) (EQUAL |(LESS GREATER) | (EXCLAMATION EQUAL) | GREATER  | (GREATER EQUAL)| LESS | LESS EQUAL) (DECIMAL | STRING) )
                                                                          ^
TSqlParser.g4:L1187:     : (event_field_name=id_ | (event_field_name=id_ |( (event_module_guid=id_ DOT)?  event_package_name=id_ DOT predicate_source_name=id_ ) ) (EQUAL |(LESS GREATER) | (EXCLAMATION EQUAL) | GREATER  | (GREATER EQUAL)| LESS | LESS EQUAL) (DECIMAL | STRING) )
                                                                                                                                                                           ^
TSqlParser.g4:L1187:     : (event_field_name=id_ | (event_field_name=id_ |( (event_module_guid=id_ DOT)?  event_package_name=id_ DOT predicate_source_name=id_ ) ) (EQUAL |(LESS GREATER) | (EXCLAMATION EQUAL) | GREATER  | (GREATER EQUAL)| LESS | LESS EQUAL) (DECIMAL | STRING) )
                                                                                                                                                                                            ^
TSqlParser.g4:L1187:     : (event_field_name=id_ | (event_field_name=id_ |( (event_module_guid=id_ DOT)?  event_package_name=id_ DOT predicate_source_name=id_ ) ) (EQUAL |(LESS GREATER) | (EXCLAMATION EQUAL) | GREATER  | (GREATER EQUAL)| LESS | LESS EQUAL) (DECIMAL | STRING) )
                                                                                                                                                                                                                             ^
TSqlParser.g4:L1188:     | (event_module_guid=id_ DOT)?  event_package_name=id_ DOT predicate_compare_name=id_ LR_BRACKET (event_field_name=id_ |( (event_module_guid=id_ DOT)?  event_package_name=id_ DOT predicate_source_name=id_ ) COMMA  (DECIMAL | STRING) ) RR_BRACKET
                                                                                                                                                 ^
TSqlParser.g4:L1202:        (SET|ADD) ( LR_BRACKET CONTENT EQUAL (client_library=STRING | BINARY | NONE) (COMMA PLATFORM EQUAL (WINDOWS|LINUX)? RR_BRACKET) WITH (COMMA? LANGUAGE EQUAL (R|PYTHON) | DATA_SOURCE EQUAL external_data_source_name=id_ )+ RR_BRACKET )
                                      ^
TSqlParser.g4:L1202:        (SET|ADD) ( LR_BRACKET CONTENT EQUAL (client_library=STRING | BINARY | NONE) (COMMA PLATFORM EQUAL (WINDOWS|LINUX)? RR_BRACKET) WITH (COMMA? LANGUAGE EQUAL (R|PYTHON) | DATA_SOURCE EQUAL external_data_source_name=id_ )+ RR_BRACKET )
                                                                                                         ^
TSqlParser.g4:L1208:        FROM (COMMA? LR_BRACKET?  (CONTENT EQUAL)? (client_library=STRING | BINARY | NONE) (COMMA PLATFORM EQUAL (WINDOWS|LINUX)? RR_BRACKET)? ) ( WITH (COMMA? LANGUAGE EQUAL (R|PYTHON) | DATA_SOURCE EQUAL external_data_source_name=id_ )+ RR_BRACKET  )?
                                 ^
TSqlParser.g4:L1255:        ( (ENABLE|DISABLE)?  | WITH ( (PASSWORD EQUAL ( password=STRING | password_hash=BINARY HASHED ) ) (MUST_CHANGE|UNLOCK)* )? (OLD_PASSWORD EQUAL old_password=STRING (MUST_CHANGE|UNLOCK)* )? (DEFAULT_DATABASE EQUAL default_database=id_)? (DEFAULT_LANGUAGE EQUAL default_laguage=id_)?  (NAME EQUAL login_name=id_)? (CHECK_POLICY EQUAL (ON|OFF) )? (CHECK_EXPIRATION EQUAL (ON|OFF) )? (CREDENTIAL EQUAL credential_name=id_)? (NO CREDENTIAL)? | (ADD|DROP) CREDENTIAL credential_name=id_ )
                                                          ^
TSqlParser.g4:L1261:        ( WITH ( (PASSWORD EQUAL ( password=STRING | password_hash=BINARY HASHED ) ) (MUST_CHANGE|UNLOCK)* )?
                                     ^
TSqlParser.g4:L1268:       |(FROM
                            ^
TSqlParser.g4:L1270:           (WITH (COMMA? DEFAULT_DATABASE EQUAL default_database=id_)? (COMMA?  DEFAULT_LANGUAGE EQUAL default_language=STRING)? )
                               ^
TSqlParser.g4:L1294:           ( PASSWORD EQUAL password=STRING (MUST_CHANGE)?
                               ^
TSqlParser.g4:L1294:           ( PASSWORD EQUAL password=STRING (MUST_CHANGE)?
                                                                ^
TSqlParser.g4:L1303:     : ALTER MASTER KEY ( (FORCE)? REGENERATE WITH ENCRYPTION BY PASSWORD EQUAL password=STRING |(ADD|DROP) ENCRYPTION BY (SERVICE MASTER KEY | PASSWORD EQUAL encryption_password=STRING) )
                                              ^
TSqlParser.g4:L1312:     : ALTER MASTER KEY ( (FORCE)? REGENERATE WITH ENCRYPTION BY PASSWORD EQUAL password=STRING |ADD ENCRYPTION BY (SERVICE MASTER KEY | PASSWORD EQUAL encryption_password=STRING) | DROP ENCRYPTION BY  PASSWORD EQUAL encryption_password=STRING )
                                              ^
TSqlParser.g4:L1334:     : ALTER PARTITION SCHEME partition_scheme_name=id_ NEXT USED (file_group_name=id_)?
                                                                                      ^
TSqlParser.g4:L1377:     : ALTER RESOURCE GOVERNOR ( (DISABLE | RECONFIGURE) | WITH LR_BRACKET CLASSIFIER_FUNCTION EQUAL ( schema_name=id_ DOT function_name=id_ | NULL_ ) RR_BRACKET | RESET STATISTICS | WITH LR_BRACKET MAX_OUTSTANDING_IO_PER_VOLUME EQUAL max_outstanding_io_per_volume=DECIMAL RR_BRACKET )
                                                     ^
TSqlParser.g4:L1529:                 ( LR_BRACKET
                                     ^
TSqlParser.g4:L1547:             ( WHERE ( COMMA? (NOT?) event_field_name=id_
                                                  ^
TSqlParser.g4:L1549:                                     |(LESS GREATER)
                                                          ^
TSqlParser.g4:L1550:                                     | (EXCLAMATION EQUAL)
                                                           ^
TSqlParser.g4:L1552:                                     | (GREATER EQUAL)
                                                           ^
TSqlParser.g4:L1558:                                            |(LESS GREATER)
                                                                 ^
TSqlParser.g4:L1559:                                            | (EXCLAMATION EQUAL)
                                                                  ^
TSqlParser.g4:L1561:                                            | (GREATER EQUAL)
                                                                  ^
TSqlParser.g4:L1575:                 ( LR_BRACKET
                                     ^
TSqlParser.g4:L1596:             ( WHERE ( COMMA? (NOT?) event_field_name=id_
                                                  ^
TSqlParser.g4:L1598:                                     |(LESS GREATER)
                                                          ^
TSqlParser.g4:L1599:                                     | (EXCLAMATION EQUAL)
                                                           ^
TSqlParser.g4:L1601:                                     | (GREATER EQUAL)
                                                           ^
TSqlParser.g4:L1607:                                            |(LESS GREATER)
                                                                 ^
TSqlParser.g4:L1608:                                            | (EXCLAMATION EQUAL)
                                                                  ^
TSqlParser.g4:L1610:                                            | (GREATER EQUAL)
                                                                  ^
TSqlParser.g4:L1641:       SET  ( (PROCESS AFFINITY (CPU EQUAL (AUTO | (COMMA? DECIMAL | COMMA? DECIMAL TO DECIMAL)+ ) | NUMANODE EQUAL ( COMMA? DECIMAL |COMMA?  DECIMAL TO DECIMAL)+ ) | DIAGNOSTICS LOG (ON|OFF|PATH EQUAL (STRING | DEFAULT) |MAX_SIZE EQUAL (DECIMAL MB |DEFAULT)|MAX_FILES EQUAL (DECIMAL|DEFAULT) ) | FAILOVER CLUSTER PROPERTY (VERBOSELOGGING EQUAL (STRING|DEFAULT) |SQLDUMPERFLAGS EQUAL (STRING|DEFAULT) | SQLDUMPERPATH EQUAL (STRING|DEFAULT) | SQLDUMPERTIMEOUT (STRING|DEFAULT) | FAILURECONDITIONLEVEL EQUAL (STRING|DEFAULT) | HEALTHCHECKTIMEOUT EQUAL (DECIMAL|DEFAULT) ) | HADR CLUSTER CONTEXT EQUAL (STRING|LOCAL) | BUFFER POOL EXTENSION (ON LR_BRACKET FILENAME EQUAL STRING COMMA SIZE EQUAL DECIMAL (KB|MB|GB)  RR_BRACKET | OFF ) | SET SOFTNUMA (ON|OFF) ) )
                                ^
TSqlParser.g4:L1641:       SET  ( (PROCESS AFFINITY (CPU EQUAL (AUTO | (COMMA? DECIMAL | COMMA? DECIMAL TO DECIMAL)+ ) | NUMANODE EQUAL ( COMMA? DECIMAL |COMMA?  DECIMAL TO DECIMAL)+ ) | DIAGNOSTICS LOG (ON|OFF|PATH EQUAL (STRING | DEFAULT) |MAX_SIZE EQUAL (DECIMAL MB |DEFAULT)|MAX_FILES EQUAL (DECIMAL|DEFAULT) ) | FAILOVER CLUSTER PROPERTY (VERBOSELOGGING EQUAL (STRING|DEFAULT) |SQLDUMPERFLAGS EQUAL (STRING|DEFAULT) | SQLDUMPERPATH EQUAL (STRING|DEFAULT) | SQLDUMPERTIMEOUT (STRING|DEFAULT) | FAILURECONDITIONLEVEL EQUAL (STRING|DEFAULT) | HEALTHCHECKTIMEOUT EQUAL (DECIMAL|DEFAULT) ) | HADR CLUSTER CONTEXT EQUAL (STRING|LOCAL) | BUFFER POOL EXTENSION (ON LR_BRACKET FILENAME EQUAL STRING COMMA SIZE EQUAL DECIMAL (KB|MB|GB)  RR_BRACKET | OFF ) | SET SOFTNUMA (ON|OFF) ) )
                                  ^
TSqlParser.g4:L1681:     : ALTER SERVICE MASTER KEY ( FORCE? REGENERATE | (WITH (OLD_ACCOUNT EQUAL acold_account_name=STRING COMMA OLD_PASSWORD EQUAL old_password=STRING | NEW_ACCOUNT EQUAL new_account_name=STRING COMMA NEW_PASSWORD EQUAL new_password=STRING)?  ) )
                                                                          ^
TSqlParser.g4:L1687:     : ALTER SYMMETRIC KEY key_name=id_ ( (ADD|DROP) ENCRYPTION BY (CERTIFICATE certificate_name=id_ | PASSWORD EQUAL password=STRING | SYMMETRIC KEY symmetric_key_name=id_ | ASYMMETRIC KEY Asym_key_name=id_  ) )
                                                            ^
TSqlParser.g4:L1826:              (
                                  ^
TSqlParser.g4:L1838:            (STATUS EQUAL on_off)
                                ^
TSqlParser.g4:L1877:       (VALIDATION EQUAL (NONE
                           ^
TSqlParser.g4:L1901:     | (WHEN NOT MATCHED (BY TARGET)? (AND search_condition)?
                           ^
TSqlParser.g4:L1958:       (INTO table_variable=id_ (WHERE where=search_condition))? ')'?
                                                    ^
TSqlParser.g4:L1971:     : (LOCAL_ID | constant)
                           ^
TSqlParser.g4:L2001:     : CREATE DATABASE (database=id_)
                                           ^
TSqlParser.g4:L2014:     (create_index_options)?
                         ^
TSqlParser.g4:L2035:     : WITH '(' (resumable_index_option (',' resumable_index_option)*) ')'
                                    ^
TSqlParser.g4:L2049:     : WITH '(' (reorganize_option (',' reorganize_option)*) ')'
                                    ^
TSqlParser.g4:L2178:     : ((CREATE (OR (ALTER | REPLACE))?) | ALTER) proc=(PROC | PROCEDURE) procName=func_proc_name_schema (';' DECIMAL)?
                            ^
TSqlParser.g4:L2211:     : (INSERT | UPDATE | DELETE)
                           ^
TSqlParser.g4:L2228:     : ((CREATE (OR ALTER)?) | ALTER) FUNCTION funcName=func_proc_name_schema
                            ^
TSqlParser.g4:L2229:         (('(' procedure_param (',' procedure_param)* ')') | '(' ')') //must have (), but can be empty
                              ^
TSqlParser.g4:L2302:     : ( FULLSCAN (','? PERSIST_SAMPLE_PERCENT '=' on_off )? )
                           ^
TSqlParser.g4:L2303:     | ( SAMPLE number=DECIMAL (PERCENT | ROWS)
                           ^
TSqlParser.g4:L2430:           (',' MAXSIZE    '=' (max_size=file_size) | UNLIMITED )?
                                                   ^
TSqlParser.g4:L2590:     | (id_ DOT |id_)
                           ^
TSqlParser.g4:L2601:     : ( ONLINE | OFFLINE | EMERGENCY )
                           ^
TSqlParser.g4:L2627:       ( ( AVAILABILITY GROUP EQUAL availability_group_name=id_ | OFF ) |(SUSPEND|RESUME) )
                             ^
TSqlParser.g4:L2627:       ( ( AVAILABILITY GROUP EQUAL availability_group_name=id_ | OFF ) |(SUSPEND|RESUME) )
                                                                                             ^
TSqlParser.g4:L2655:     | MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT = (ON | OFF )
                                                                  ^
TSqlParser.g4:L2761:      '.' (database=id_)? '.' (scheme=id_)? '.' (table=id_)
                              ^
TSqlParser.g4:L2761:      '.' (database=id_)? '.' (scheme=id_)? '.' (table=id_)
                                                  ^
TSqlParser.g4:L2761:      '.' (database=id_)? '.' (scheme=id_)? '.' (table=id_)
                                                                    ^
TSqlParser.g4:L2794:     : BACKUP DATABASE ( database_name=id_ )
                                           ^
TSqlParser.g4:L2817:                    | COMMA? MEDIANAME EQUAL (medianame=STRING)
                                                                 ^
TSqlParser.g4:L2845:     : BACKUP LOG ( database_name=id_ )
                                      ^
TSqlParser.g4:L2866:                    | COMMA? MEDIANAME EQUAL (medianame=STRING)
                                                                 ^
TSqlParser.g4:L2926:     : (session_id=(DECIMAL|STRING) | UOW) (WITH STATUSONLY)?
                                       ^
TSqlParser.g4:L2974:     : (constant | LOCAL_ID (OUTPUT | OUT)? | id_ | DEFAULT | NULL_)
                           ^
TSqlParser.g4:L3219:     : GO (count=DECIMAL)?
                              ^
TSqlParser.g4:L3242:     : CHECKPOINT (checkPointDuration=DECIMAL)?
                                      ^
TSqlParser.g4:L3442:         ('(' SIZE '=' ( (DECIMAL ( MB | GB | TB ) ) | DEFAULT ) ')')?
                                             ^
TSqlParser.g4:L3513:     :  (((PRIMARY KEY | INDEX id_) (CLUSTERED | NONCLUSTERED)?) | UNIQUE) '(' column_name_list_with_order ')'
                             ^
TSqlParser.g4:L3584:       | (
                             ^
TSqlParser.g4:L3589:       | (
                             ^
TSqlParser.g4:L3608:             (partition_scheme_name=id_ '(' partition_column_name=id_ ')')
                                 ^
TSqlParser.g4:L3618:             (
                                 ^
TSqlParser.g4:L3625:             (
                                 ^
TSqlParser.g4:L3631:             (
                                 ^
TSqlParser.g4:L3636:             (
                                 ^
TSqlParser.g4:L3704:       | (SEMI_SENSITIVE | INSENSITIVE)? SCROLL? CURSOR FOR select_statement_standalone (FOR (READ ONLY | UPDATE | (OF column_name_list)))?
                                                                                                                                       ^
TSqlParser.g4:L3714:     : (LOCAL | GLOBAL)
                           ^
TSqlParser.g4:L3715:     | (FORWARD_ONLY | SCROLL)
                           ^
TSqlParser.g4:L3716:     | (STATIC | KEYSET | DYNAMIC | FAST_FORWARD)
                           ^
TSqlParser.g4:L3717:     | (READ_ONLY | SCROLL_LOCKS | OPTIMISTIC)
                           ^
TSqlParser.g4:L3873:     : (UNION ALL? | EXCEPT | INTERSECT) (spec=query_specification | ('(' op=query_expression ')'))
                                                                                         ^
TSqlParser.g4:L3885:       (GROUP BY ((groupByAll=ALL? groupBys+=group_by_item (',' groupBys+=group_by_item)*) | GROUPING SETS '(' groupSets+=grouping_sets_item (',' groupSets+=grouping_sets_item)* ')'))?
                                      ^
TSqlParser.g4:L3927:         ( ROOT ('(' STRING ')')
                                    ^
TSqlParser.g4:L4097:     : (inner=INNER? | join_type=(LEFT | RIGHT | FULL) outer=OUTER?) (join_hint=(LOOP | HASH | MERGE | REMOTE))?
                                                                                         ^
TSqlParser.g4:L4097:     : (inner=INNER? | join_type=(LEFT | RIGHT | FULL) outer=OUTER?) (join_hint=(LOOP | HASH | MERGE | REMOTE))?
                                                                                                    ^
TSqlParser.g4:L4131:     :  (
                            ^
TSqlParser.g4:L4134:      | ( OPENROWSET '(' BULK data_file=STRING ',' (bulk_option (',' bulk_option)* | id_)')' )
                            ^
TSqlParser.g4:L4360:     | GETANSINULL '(' (database=STRING)? ')'                                #GETANSINULL
                                           ^
TSqlParser.g4:L4532:     | RAND '(' (seed=expression)? ')' #RAND
                                    ^
TSqlParser.g4:L4558:     | DATABASE_PRINCIPAL_ID '(' (principal_name=expression)? ')' #DATABASE_PRINCIPAL_ID
                                                     ^
TSqlParser.g4:L4584:     | SUSER_ID '(' (login=expression)? ')'              #SUSER_ID
                                        ^
TSqlParser.g4:L4586:     | SUSER_NAME '(' (server_user_sid=expression)? ')'  #SUSER_SNAME
                                          ^
TSqlParser.g4:L4590:     | SUSER_SNAME '(' (server_user_sid=expression)? ')' #SUSER_SNAME
                                           ^
TSqlParser.g4:L4596:     | USER_ID '(' (user=expression)? ')'                #USER_ID
                                       ^
TSqlParser.g4:L4598:     | USER_NAME '(' (id=expression)? ')' #USER_NAME
                                         ^
TSqlParser.g4:L4855:     : FILESTREAM ( database_filestream_option (',' database_filestream_option)* )
                                      ^
TSqlParser.g4:L4868:          ( NON_TRANSACTED_ACCESS EQUAL ( OFF | READ_ONLY | FULL ) )
                              ^
TSqlParser.g4:L4870:          ( DIRECTORY_NAME EQUAL STRING )
                              ^
TSqlParser.g4:L4882:      ( DEFAULT )?
                          ^
TSqlParser.g4:L4900:     |                database=id_ '.' (schema=id_)? '.'
                                                           ^
TSqlParser.g4:L4931:     : ((schema=id_) '.')? procedure=id_
                            ^
TSqlParser.g4:L4950:     : ((DELETED | INSERTED | full_table_name) '.')? (column_name=id_ | ('$' (IDENTITY | ROWGUID)))
                                                                                            ^
TSqlParser.g4:L5002:     : BEGIN DIALOG (CONVERSATION)? dialog_handle=LOCAL_ID
                                        ^
TSqlParser.g4:L5014:     : (id_ | expression)
                           ^
TSqlParser.g4:L5018:     : (id_ | expression)
                           ^
TSqlParser.g4:L5035:     : (database_name=id_ '.' schema_name=id_ '.' name=id_)
                           ^
TSqlParser.g4:L5071:     | (DECIMAL | REAL | FLOAT)          // float or decimal
                           ^
TSqlLexer.g4:L1224: REAL:                (DECIMAL | DEC_DOT_DEC) ('E' [+-]? DEC_DIGIT+);
                                                                 ^
TSqlLexer.g4:L1266: fragment DEC_DOT_DEC:  (DEC_DIGIT+ '.' DEC_DIGIT+ |  DEC_DIGIT+ '.' | '.' DEC_DIGIT+);
                                           ^
./stacktrace
L24:    : (atLine | ellipsisLine)
          ^
L40:    : (qualifiedClass message?)
          ^
L48:    : ('$' className)
          ^
L52:    : (identifier '.java' | NATIVE_METHOD | UNKNOWN_SOURCE)
          ^
L80:    : COLON (: .)*?
                ^
L90:    : (JavaCharacter) +
          ^
L95:    : (CapitalLetter | NonCapitalLetter | Symbol | Digit)
          ^
./star
./stellaris
./stl
./stringtemplate
./suokif
./swift/swift2
L1036:   : ('/' | '=' | '-' | '+' | '!' | '*' | '%' | '&' | '|' | '<' | '>' | '^' | '~' | '?') // wrapping in (..) makes it a fast set comparison
           ^
./swift/swift3
L207: elseif_directive_clauses : (elseif_directive_clause)+ ;
                                 ^
L740:     ( '.' | ',' | ':' | ';' | '=' | '@' | '#' | '`' | '?' )
          ^
L1013: argument_names : argument_name (argument_name)* ;
                                      ^
L1497:   : ('/' | '=' | '-' | '+' | '!' | '*' | '%' | '&' | '|' | '<' | '>' | '^' | '~' | '?') // wrapping in (..) makes it a fast set comparison
           ^
./swift/swift5
Swift5Parser.g4:L670:  (
                       ^
Swift5Parser.g4:L1017:  (
                        ^
Swift5Parser.g4:L1219: operator_head: (
                                      ^
./swift-fin
./szf
./tcpheader
./teal
./telephone
./terraform
L144:    | 'jsonencode' LPAREN (.)*? RPAREN
                               ^
L271:    : [a-zA-Z] ([a-zA-Z0-9_-])*
                    ^
./thrift
L85:     : ('oneway' | 'async')
           ^
L221:     : ('//' | '#') (~'\n')* ('\r')? '\n' -> channel(HIDDEN)
                         ^
L221:     : ('//' | '#') (~'\n')* ('\r')? '\n' -> channel(HIDDEN)
                                  ^
./tiny
./tinybasic
L86:    : ('<' ('>' | '=' )?)
          ^
L87:    | ('>' ('<' | '=' )?)
          ^
./tinyc
./tinymud
L236:    : 'kill' player ('=' cost)
                         ^
L248:    : 'page' player ('=' message)
                         ^
./tinyos_nesc
TinyosParser.g4:L107:  | EVENT VOID? common_name event_condition_block event_stat_block? (
                                                                                         ^
TinyosParser.g4:L117:  | TASK VOID? common_name task_condition_block task_stat_block? (
                                                                                      ^
TinyosParser.g4:L127:  | STATIC VOID? common_name static_condition_block static_stat_block? (
                                                                                            ^
TinyosParser.g4:L137:  | VOID? common_name other_condition_block other_stat_block? (
                                                                                   ^
TinyosParser.g4:L173:  SWITCH switch_condition_block OBRACE (switch_stat_block)* CBRACE;
                                                            ^
TinyosParser.g4:L185:  | (statement | if_stat | other_stat);
                         ^
TinyosParser.g4:L197:  | atom (atom)*        # atomExpr
                              ^
TinyosParser.g4:L204:  | (INT | FLOAT)  # numberAtom
                         ^
TinyosParser.g4:L205:  | (TRUE | FALSE) # booleanAtom
                         ^
TinyosParser.g4:L214:  | (OBRACE atom COMMA atom CBRACE) COMMA?;
                         ^
TinyosParser.g4:L216: chars: (
                             ^
TinyosParser.g4:L236: chars_no_comma: (
                                      ^
TinyosParser.g4:L255: reservedwords: (
                                     ^
TinyosParser.g4:L287: name_with_char: (atom) (DOT? (chars | symbol | atom))*;
                                      ^
TinyosLexer.g4:L159: :'0x' ([a-fA-F0-9])+
                           ^
./tl
./tnsnames
tnsnamesParser.g4:L28: lsnr_entry       : alias EQUAL (lsnr_description | address_list | (address)+) ;
                                                                                         ^
tnsnamesParser.g4:L30: lsnr_description : L_PAREN DESCRIPTION EQUAL (address_list | (address)+) R_PAREN ;
                                                                                    ^
tnsnamesParser.g4:L50: description_list : L_PAREN DESCRIPTION_LIST  EQUAL  (dl_params)? (description)+ (dl_params)? R_PAREN ;
                                                                           ^
tnsnamesParser.g4:L50: description_list : L_PAREN DESCRIPTION_LIST  EQUAL  (dl_params)? (description)+ (dl_params)? R_PAREN ;
                                                                                        ^
tnsnamesParser.g4:L50: description_list : L_PAREN DESCRIPTION_LIST  EQUAL  (dl_params)? (description)+ (dl_params)? R_PAREN ;
                                                                                                       ^
tnsnamesParser.g4:L63: description      : L_PAREN DESCRIPTION EQUAL  (d_params)? (address_list | (address)+) (d_params)? connect_data (d_params)? R_PAREN ;
                                                                     ^
tnsnamesParser.g4:L63: description      : L_PAREN DESCRIPTION EQUAL  (d_params)? (address_list | (address)+) (d_params)? connect_data (d_params)? R_PAREN ;
                                                                                                 ^
tnsnamesParser.g4:L63: description      : L_PAREN DESCRIPTION EQUAL  (d_params)? (address_list | (address)+) (d_params)? connect_data (d_params)? R_PAREN ;
                                                                                                             ^
tnsnamesParser.g4:L63: description      : L_PAREN DESCRIPTION EQUAL  (d_params)? (address_list | (address)+) (d_params)? connect_data (d_params)? R_PAREN ;
                                                                                                                                      ^
tnsnamesParser.g4:L107: address_list     : L_PAREN ADDRESS_LIST EQUAL (al_params)? (address)+ (al_params)? R_PAREN ;
                                                                      ^
tnsnamesParser.g4:L107: address_list     : L_PAREN ADDRESS_LIST EQUAL (al_params)? (address)+ (al_params)? R_PAREN ;
                                                                                   ^
tnsnamesParser.g4:L107: address_list     : L_PAREN ADDRESS_LIST EQUAL (al_params)? (address)+ (al_params)? R_PAREN ;
                                                                                              ^
tnsnamesParser.g4:L126: address          : L_PAREN ADDRESS EQUAL  protocol_info (a_params)? R_PAREN ;
                                                                                ^
tnsnamesLexer.g4:L117: COMMENT          : '#' (.)*? '\n' -> skip ;
                                              ^
tnsnamesLexer.g4:L194: DQ_STRING        : D_QUOTE (~'"')* D_QUOTE ;
                                                  ^
tnsnamesLexer.g4:L373: ISQ_STRING      : S_QUOTE (~'\'')* S_QUOTE ;
                                                 ^
tnsnamesLexer.g4:L375: IUQ_STRING      :  (~["'=])*? NL ;
                                          ^
tnsnamesLexer.g4:L377: I_COMMENT       : '#' (.)*? NL  -> skip  ;
                                             ^
./tnt
./toml
TomlParser.g4:L55: array_values : (comment_or_nl value nl_or_comment COMMA array_values comment_or_nl) | comment_or_nl value nl_or_comment COMMA? ;
                                  ^
TomlLexer.g4:L24: COMMENT : '#' (~[\n])* ;
                                ^
TomlLexer.g4:L41: LITERAL_STRING : '\'' (~['\n])*? '\'' ;
                                        ^
TomlLexer.g4:L62: ML_LITERAL_STRING : '\'\'\'' (.)*? '\'\'\'' -> popMode ;
                                               ^
TomlLexer.g4:L77: DEC_INT : [+-]? (DIGIT | (DIGIT_1_9 (DIGIT | '_' DIGIT)+)) -> popMode ;
                                           ^
./trac
L57:    | ('(' macro ')')
          ^
./tsv
./ttm
L57:    | ('<' function_ '>')
          ^
./turing
L51:    : ('const' id_ ':=' expn)
          ^
L52:    | ('const' id_ (':' typeSpec)? ':=' initializingValue)
          ^
L56:    : expn '(' 'init' (initializingValue (',' initializingValue)* ')')
                          ^
L60:    : ('var' id_ (',' id_)* ':=' expn)
          ^
L61:    | ('var' id_ (',' id_)* ':' typeSpec (':=' initializingValue)?)
          ^
L137:    : (variableReference ':=' expn)
           ^
L139:    | ('assert' booleanExpn)
           ^
L169:    : ('for' id_ ':' expn '..' expn ('by' expn)? declarationsAndStatements 'end' 'for')
           ^
L170:    | ('for' 'decreasing' id_ ':' expn '..' expn ('by' expn)? declarationsAndStatements 'end' 'for')
           ^
L174:    : 'put' (':' streamNumber ',')? putItem (',' putItem)* ('..')?
                                                                ^
L299:    : expn ('*' ('-' expn))
                ^
L299:    : expn ('*' ('-' expn))
                     ^
L311:    : ('+' | '-')? ([0-9]+ '.')? [0-9]+ ('e' [0-9]+)
                                             ^
./turtle
./turtle-doc
L97:    : string (LangTag | ('^^' iri))?
                            ^
L165:    : '<' ((~ [\u0000-\u0020<>"{}|^`\\]) | Uchar)* '>'
                ^
L201:    : '"' ((~ [\u0022\u005C\u000A\u000D]) | ECHAR | Uchar)* '"'
                ^
L206:    : '\'' ((~ [\u0027\u005C\u000A\u000D]) | ECHAR | Uchar)* '\''
                 ^
L211:    : '\'\'\'' (('\'' | '\'\'')? ((~ ['\\]) | ECHAR | Uchar))* '\'\'\''
                                       ^
L216:    : '"""' (('\'' | '\'\'')? ((~ ['\\]) | ECHAR | Uchar))* '"""'
                                    ^
./unicode/graphemes
./unicode/unicode16
./unreal_angelscript
UnrealAngelscriptParser.g4:L221:  | (expressionStatement
                                    ^
UnrealAngelscriptParser.g4:L521:  (
                                  ^
UnrealAngelscriptLexer.g4:L292:  | ('\\' ('\r' '\n'? | '\n'))
                                   ^
./upnp
./url
./useragent
./v
L181:     : 'import' ( importSpec  )
                     ^
L278:     : identifierList ( ':=' expressionList )
                           ^
L281:     : 'mut'? ( noMutDecl )
                   ^
./vb6
VisualBasic6Parser.g4:L103:   | (LBRACE ambiguousIdentifier RBRACE)
                                ^
VisualBasic6Parser.g4:L110:  )? (WS GUID)? NEWLINE+ (cp_Properties+)? ENDPROPERTY NEWLINE+;
                                                    ^
VisualBasic6Parser.g4:L252:  | DO NEWLINE+ (block NEWLINE+) LOOP WS (WHILE | UNTIL) WS valueStmt
                                           ^
VisualBasic6Parser.g4:L257: enumerationStmt: (publicPrivateVisibility WS)? ENUM WS ambiguousIdentifier NEWLINE+ (
                                                                                                                ^
VisualBasic6Parser.g4:L494: typeStmt: (visibility WS)? TYPE WS ambiguousIdentifier NEWLINE+ (
                                                                                            ^
VisualBasic6Parser.g4:L523:     | valueStmt WS? (IDIV) WS? valueStmt                            # vsIDiv
                                                ^
VisualBasic6Lexer.g4:L429: DATELITERAL: HASH (~ [#\r\n])* HASH;
                                             ^
./vba
L262: declareStmt : (visibility WS)? DECLARE WS (PTRSAFE WS)? ((FUNCTION typeHint?) | SUB) WS ambiguousIdentifier typeHint? WS LIB WS STRINGLITERAL (WS ALIAS WS STRINGLITERAL)? (WS? argList)? (WS asTypeClause)?;
                                                               ^
L564:  WITH WS (implicitCallStmt_InStmt | (NEW WS type_)) endOfStatement
                                          ^
L947: IDENTIFIER :  ~[\]()\r\n\t.,'"|!@#$%^&*\-+:=; ]+ | L_SQUARE_BRACKET (~[!\]\r\n])+ R_SQUARE_BRACKET;
                                                                          ^
./velocity
./verilog/systemverilog
./verilog/verilog
./vhdl
L174:   : identifier_list ( tolerance_aspect )? ( VARASGN expression )? ACROSS
                          ^
L203:     name ( signature )? SEMI
               ^
L226:     END ( ARCHITECTURE )? ( identifier )? SEMI
              ^
L226:     END ( ARCHITECTURE )? ( identifier )? SEMI
                                ^
L230:   : ( block_declarative_item )*
          ^
L236:   | ( label_colon )? concurrent_procedure_call_statement
          ^
L237:   | ( label_colon )? concurrent_assertion_statement
          ^
L238:   | ( label_colon )? ( POSTPONED )? concurrent_signal_assignment_statement
          ^
L238:   | ( label_colon )? ( POSTPONED )? concurrent_signal_assignment_statement
                           ^
L246:   : ( architecture_statement )*
          ^
L264:   : ( label_colon )? assertion SEMI
          ^
L301:   : ( USE entity_aspect )? ( generic_map_aspect )? ( port_map_aspect )?
                                 ^
L301:   : ( USE entity_aspect )? ( generic_map_aspect )? ( port_map_aspect )?
                                                         ^
L306:     ( use_clause )*
          ^
L307:     ( configuration_item )*
          ^
L337:   : ( block_declarative_item )*
          ^
L351:   : label_colon BLOCK ( LPAREN expression RPAREN )? ( IS )?
                                                          ^
L355:     END BLOCK ( identifier )? SEMI
                    ^
L359:   : ( architecture_statement )*
          ^
L363:   : QUANTITY ( across_aspect )?
                   ^
L364:     ( through_aspect )? terminal_aspect SEMI
          ^
L368:   : ( break_selector_clause )? name ARROW expression
          ^
L380:   : ( label_colon )? BREAK ( break_list )? ( WHEN condition )? SEMI
          ^
L380:   : ( label_colon )? BREAK ( break_list )? ( WHEN condition )? SEMI
                                 ^
L384:   : ( label_colon )? CASE expression IS
          ^
L385:     ( case_statement_alternative )+
          ^
L386:     END CASE ( identifier )? SEMI
                   ^
L407:     ( block_configuration )?
          ^
L412:   : COMPONENT identifier ( IS )?
                               ^
L413:     ( generic_clause )?
          ^
L414:     ( port_clause )?
          ^
L415:     END COMPONENT ( identifier )? SEMI
                        ^
L420:     ( generic_map_aspect )?
          ^
L421:     ( port_map_aspect )? SEMI
          ^
L439:   : ( label_colon )? ( POSTPONED )? assertion SEMI
          ^
L439:   : ( label_colon )? ( POSTPONED )? assertion SEMI
                           ^
L443:   : ( label_colon )? BREAK ( break_list )? ( sensitivity_clause )?
          ^
L443:   : ( label_colon )? BREAK ( break_list )? ( sensitivity_clause )?
                                 ^
L443:   : ( label_colon )? BREAK ( break_list )? ( sensitivity_clause )?
                                                 ^
L448:   : ( label_colon )? ( POSTPONED )? procedure_call SEMI
          ^
L448:   : ( label_colon )? ( POSTPONED )? procedure_call SEMI
                           ^
L452:   : ( label_colon )? ( POSTPONED )?
          ^
L452:   : ( label_colon )? ( POSTPONED )?
                           ^
L476:     END ( CONFIGURATION )? ( identifier )? SEMI
              ^
L476:     END ( CONFIGURATION )? ( identifier )? SEMI
                                 ^
L486:   : ( configuration_declarative_item )*
          ^
L517:   : ( context_item )*
          ^
L531:   : ( design_unit )* EOF
          ^
L604:   : entity_class ( BOX )?
                       ^
L615:     END ( ENTITY )? ( identifier )? SEMI
              ^
L615:     END ( ENTITY )? ( identifier )? SEMI
                          ^
L642:   : ( entity_declarative_item )*
          ^
L646:   : entity_tag ( signature )?
                     ^
L650:   : ( generic_clause )?
          ^
L651:     ( port_clause )?
          ^
L671:   : ( entity_statement )*
          ^
L690:   : ( label_colon )? EXIT ( identifier )? ( WHEN condition )? SEMI
          ^
L690:   : ( label_colon )? EXIT ( identifier )? ( WHEN condition )? SEMI
                                ^
L707:     ( file_open_information )? SEMI
          ^
L739:     ( ( block_declarative_item )* BEGIN )?
            ^
L740:     ( architecture_statement )*
          ^
L741:     END GENERATE ( identifier )? SEMI
                       ^
L793:   : ( label_colon )? IF condition THEN
          ^
L797:     END IF ( identifier )? SEMI
                 ^
L814:   : ( COMPONENT )? name
          ^
L826:   : ( CONSTANT )? identifier_list COLON ( IN )? subtype_indication
          ^
L826:   : ( CONSTANT )? identifier_list COLON ( IN )? subtype_indication
                                              ^
L865:   : identifier_list COLON ( signal_mode )? subtype_indication
                                ^
L866:     ( BUS )? ( VARASGN expression )?
          ^
L870:   : SIGNAL identifier_list COLON ( signal_mode )? subtype_indication
                                       ^
L871:     ( BUS )? ( VARASGN expression )?
          ^
L879:   : ( VARIABLE )? identifier_list COLON
          ^
L880:     ( signal_mode )? subtype_indication ( VARASGN expression )?
          ^
L926:   : ( label_colon )? ( iteration_scheme )?
          ^
L926:   : ( label_colon )? ( iteration_scheme )?
                           ^
L929:     END LOOP ( identifier )? SEMI
                   ^
L961:   : ( identifier | STRING_LITERAL ) ( name_part )*
                                          ^
L988:   : ( signature )? APOSTROPHE attribute_designator ( LPAREN expression RPAREN )?
          ^
L1005:   : ( label_colon )? NEXT ( identifier )? ( WHEN condition )? SEMI
           ^
L1005:   : ( label_colon )? NEXT ( identifier )? ( WHEN condition )? SEMI
                                 ^
L1023:   : ( GUARDED )? ( delay_mechanism )?
           ^
L1023:   : ( GUARDED )? ( delay_mechanism )?
                        ^
L1029:     END ( PACKAGE BODY )? ( identifier )? SEMI
                                 ^
L1047:   : ( package_body_declarative_item )*
           ^
L1053:     END ( PACKAGE )? ( identifier )? SEMI
               ^
L1053:     END ( PACKAGE )? ( identifier )? SEMI
                            ^
L1079:   : ( package_declarative_item )*
           ^
L1087:   : abstract_literal (: identifier)
                            ^
L1092:     ( secondary_unit_declaration )* 
           ^
L1093:     END UNITS ( identifier )?
                     ^
L1139:   : ( procedural_declarative_item )*
           ^
L1143:   : ( sequential_statement )*
           ^
L1151:   : ( label_colon )? procedure_call SEMI
           ^
L1171:   : ( process_declarative_item )*
           ^
L1175:   : ( label_colon )? ( POSTPONED )? PROCESS
           ^
L1175:   : ( label_colon )? ( POSTPONED )? PROCESS
                            ^
L1176:     ( LPAREN sensitivity_list RPAREN )? ( IS )?
                                               ^
L1180:     END ( POSTPONED )? PROCESS ( identifier )? SEMI
               ^
L1180:     END ( POSTPONED )? PROCESS ( identifier )? SEMI
                                      ^
L1184:   : ( sequential_statement )*
           ^
L1221:   : RECORD ( nature_element_declaration )+
                  ^
L1222:     END RECORD ( identifier )?
                      ^
L1226:   : RECORD ( element_declaration )+
                  ^
L1227:     END RECORD ( identifier )?
                      ^
L1245:   : ( label_colon )? REPORT expression ( SEVERITY expression )? SEMI
           ^
L1249:   : ( label_colon )? RETURN ( expression )? SEMI
           ^
L1249:   : ( label_colon )? RETURN ( expression )? SEMI
                                   ^
L1288:   : ( sequential_statement )*
           ^
L1303:   | ( label_colon )? NULL_ SEMI
           ^
L1323:   : ( label_colon )?
           ^
L1324:     target LE ( delay_mechanism )? waveform SEMI
                     ^
L1329:     subtype_indication ( signal_kind )? ( VARASGN expression )? SEMI
                              ^
L1355:   : ( label_colon )?
           ^
L1356:     simple_expression ASSIGN simple_expression ( tolerance_aspect )? SEMI
                                                      ^
L1364:   : ( label_colon )? CASE expression USE
           ^
L1365:     ( simultaneous_alternative )+ 
           ^
L1366:     END CASE ( identifier )? SEMI
                    ^
L1370:   : ( label_colon )? IF condition USE
           ^
L1374:     END USE ( identifier )? SEMI
                   ^
L1378:   : ( label_colon )? PROCEDURAL ( IS )?
           ^
L1378:   : ( label_colon )? PROCEDURAL ( IS )?
                                       ^
L1381:     END PROCEDURAL ( identifier )? SEMI
                          ^
L1389:   | ( label_colon )? NULL_ SEMI
           ^
L1393:   : ( simultaneous_statement )*
           ^
L1414:   : name ( index_constraint )? 
                ^
L1423:     END ( subprogram_kind )? ( designator )? SEMI
               ^
L1423:     END ( subprogram_kind )? ( designator )? SEMI
                                    ^
L1447:   : ( subprogram_declarative_item )*
           ^
L1470:   : ( sequential_statement )*
           ^
L1481:   : selected_name ( selected_name )? ( constraint )? ( tolerance_aspect )?
                         ^
L1481:   : selected_name ( selected_name )? ( constraint )? ( tolerance_aspect )?
                                            ^
L1481:   : selected_name ( selected_name )? ( constraint )? ( tolerance_aspect )?
                                                            ^
L1509:   : identifier_list ( tolerance_aspect )? ( VARASGN expression )? THROUGH
                           ^
L1546:   : ( label_colon )? target VARASGN expression SEMI
           ^
L1550:   : ( SHARED )? VARIABLE identifier_list COLON
           ^
L1555:   : ( label_colon )? WAIT ( sensitivity_clause )? 
           ^
L1555:   : ( label_colon )? WAIT ( sensitivity_clause )? 
                                 ^
L1556:     ( condition_clause )? ( timeout_clause )? SEMI
           ^
L1556:     ( condition_clause )? ( timeout_clause )? SEMI
                                 ^
L133: fragment A:('a'|'A');
                 ^
L134: fragment B:('b'|'B');
                 ^
L135: fragment C:('c'|'C');
                 ^
L136: fragment D:('d'|'D');
                 ^
L137: fragment E:('e'|'E');
                 ^
L138: fragment F:('f'|'F');
                 ^
L139: fragment G:('g'|'G');
                 ^
L140: fragment H:('h'|'H');
                 ^
L141: fragment I:('i'|'I');
                 ^
L142: fragment J:('j'|'J');
                 ^
L143: fragment K:('k'|'K');
                 ^
L144: fragment L:('l'|'L');
                 ^
L145: fragment M:('m'|'M');
                 ^
L146: fragment N:('n'|'N');
                 ^
L147: fragment O:('o'|'O');
                 ^
L148: fragment P:('p'|'P');
                 ^
L149: fragment Q:('q'|'Q');
                 ^
L150: fragment R:('r'|'R');
                 ^
L151: fragment S:('s'|'S');
                 ^
L152: fragment T:('t'|'T');
                 ^
L153: fragment U:('u'|'U');
                 ^
L154: fragment V:('v'|'V');
                 ^
L155: fragment W:('w'|'W');
                 ^
L156: fragment X:('x'|'X');
                 ^
L157: fragment Y:('y'|'Y');
                 ^
L158: fragment Z:('z'|'Z');
                 ^
L1576:    :  INTEGER '#' BASED_INTEGER ('.'BASED_INTEGER)? '#' (EXPONENT)?
                                                               ^
L1598:    :    INTEGER '.' INTEGER  ( EXPONENT )?;
                                    ^
L1616:   : '--' ( ~'\n' )* 
                ^
L1621:   : ( '\t' )+ -> skip 
           ^
L1625:   : ( ' ' )+ -> skip 
           ^
L1696:     : ('A'..'F'|'a'..'f')
             ^
L1713:   : (DIGIT | LETTER)
           ^
./vmf
./wat
WatLexer.g4:L70: STORE : NXX '.store' (MEM_SIZE)? ;
                                      ^
WatLexer.g4:L232: fragment Nat : Num | ('0x' HexNum) ;
                                       ^
./wavefront
L404: decimal: ( DECIMAL | INTEGER );
               ^
L416: INTEGER : '-'? ( DIGIT )+;
                     ^
L430: FILENAME: ( ~[/ \t\r\n] )+;
                ^
L433: NL : ( '\r' '\n'? | '\n' );
           ^
L435: NON_WS : ( ~[ \t\r\n] )+;
               ^
./webidl
./wkt
L11:    : (polygonGeometry | lineStringGeometry | pointGeometry | compoundCurveGeometry | curvePolygonGeometry | multiSurfaceGeometry | multiCurveGeometry | multiPointGeometry | multiLineStringGeometry | multiPolygonGeometry | circularStringGeometry | multiPolyhedralSurfaceGeometry | multiTinGeometry | geometryCollection)
          ^
L15:    : POINT ((name? LPAR point RPAR) | EMPTY_)
                 ^
L27:    : MULTICURVE ((LPAR (lineString | circularStringGeometry | compoundCurveGeometry) (COMMA (circularStringGeometry | lineString | compoundCurveGeometry))* RPAR) | EMPTY_)
                      ^
L31:    : MULTISURFACE ((LPAR (polygon | curvePolygonGeometry) (COMMA (polygon | curvePolygonGeometry))* RPAR) | EMPTY_)
                        ^
L35:    : CURVEPOLYGON ((LPAR (lineString | circularStringGeometry | compoundCurveGeometry) (COMMA (circularStringGeometry | lineString | compoundCurveGeometry))* RPAR) | EMPTY_)
                        ^
L39:    : COMPOUNDCURVE ((LPAR (lineString | circularStringGeometry) (COMMA (circularStringGeometry | lineString))* RPAR) | EMPTY_)
                         ^
L43:    : MULTIPOINT ((LPAR pointOrClosedPoint (COMMA pointOrClosedPoint)* RPAR) | EMPTY_)
                      ^
L47:    : MULTILINESTRING ((LPAR lineString (COMMA lineString)* RPAR) | EMPTY_)
                           ^
L51:    : MULTIPOLYGON ((LPAR polygon (COMMA polygon)* RPAR) | EMPTY_)
                        ^
L55:    : POLYHEDRALSURFACE ((LPAR polygon (COMMA polygon)* RPAR) | EMPTY_)
                             ^
L59:    : TIN ((LPAR polygon (COMMA polygon)* RPAR) | EMPTY_)
               ^
L215:    : ('a' | 'A')
           ^
L220:    : ('b' | 'B')
           ^
L225:    : ('c' | 'C')
           ^
L230:    : ('d' | 'D')
           ^
L235:    : ('e' | 'E')
           ^
L240:    : ('f' | 'F')
           ^
L245:    : ('g' | 'G')
           ^
L250:    : ('h' | 'H')
           ^
L255:    : ('i' | 'I')
           ^
L260:    : ('j' | 'J')
           ^
L265:    : ('k' | 'K')
           ^
L270:    : ('l' | 'L')
           ^
L275:    : ('m' | 'M')
           ^
L280:    : ('n' | 'N')
           ^
L285:    : ('o' | 'O')
           ^
L290:    : ('p' | 'P')
           ^
L295:    : ('q' | 'Q')
           ^
L300:    : ('r' | 'R')
           ^
L305:    : ('s' | 'S')
           ^
L310:    : ('t' | 'T')
           ^
L315:    : ('u' | 'U')
           ^
L320:    : ('v' | 'V')
           ^
L325:    : ('w' | 'W')
           ^
L330:    : ('x' | 'X')
           ^
L335:    : ('y' | 'Y')
           ^
L340:    : ('z' | 'Z')
           ^
./wln
./wren
WrenParser.g4:L83: lambdaParameters: BITOR (id (COMMA id)*) BITOR;
                                           ^
WrenParser.g4:L163: importVariables: FOR_T importVariable (COMMA importVariable);
                                                          ^
WrenParser.g4:L167: callInvoke:(LPAREN enumeration? RPAREN) ;
                               ^
WrenParser.g4:L205: enumeration: (expression (COMMA expression)*);
                                 ^
WrenParser.g4:L206: pairEnumeration: (expression COLON expression (COMMA expression COLON expression)*);
                                     ^
./xml
./xpath/xpath1
./xpath/xpath20
L40: pathexpr : ( SLASH relativepathexpr?) | ( SS relativepathexpr) | relativepathexpr ;
                ^
L40: pathexpr : ( SLASH relativepathexpr?) | ( SS relativepathexpr) | relativepathexpr ;
                                             ^
L44: forwardstep : (forwardaxis nodetest) | abbrevforwardstep ;
                   ^
L46: forwardaxis : ( KW_CHILD COLONCOLON) | ( KW_DESCENDANT COLONCOLON) | ( KW_ATTRIBUTE COLONCOLON) | ( KW_SELF COLONCOLON) | ( KW_DESCENDANT_OR_SELF COLONCOLON) | ( KW_FOLLOWING_SIBLING COLONCOLON) | ( KW_FOLLOWING COLONCOLON) | ( KW_NAMESPACE COLONCOLON) ;
                   ^
L46: forwardaxis : ( KW_CHILD COLONCOLON) | ( KW_DESCENDANT COLONCOLON) | ( KW_ATTRIBUTE COLONCOLON) | ( KW_SELF COLONCOLON) | ( KW_DESCENDANT_OR_SELF COLONCOLON) | ( KW_FOLLOWING_SIBLING COLONCOLON) | ( KW_FOLLOWING COLONCOLON) | ( KW_NAMESPACE COLONCOLON) ;
                                            ^
L46: forwardaxis : ( KW_CHILD COLONCOLON) | ( KW_DESCENDANT COLONCOLON) | ( KW_ATTRIBUTE COLONCOLON) | ( KW_SELF COLONCOLON) | ( KW_DESCENDANT_OR_SELF COLONCOLON) | ( KW_FOLLOWING_SIBLING COLONCOLON) | ( KW_FOLLOWING COLONCOLON) | ( KW_NAMESPACE COLONCOLON) ;
                                                                          ^
L46: forwardaxis : ( KW_CHILD COLONCOLON) | ( KW_DESCENDANT COLONCOLON) | ( KW_ATTRIBUTE COLONCOLON) | ( KW_SELF COLONCOLON) | ( KW_DESCENDANT_OR_SELF COLONCOLON) | ( KW_FOLLOWING_SIBLING COLONCOLON) | ( KW_FOLLOWING COLONCOLON) | ( KW_NAMESPACE COLONCOLON) ;
                                                                                                       ^
L46: forwardaxis : ( KW_CHILD COLONCOLON) | ( KW_DESCENDANT COLONCOLON) | ( KW_ATTRIBUTE COLONCOLON) | ( KW_SELF COLONCOLON) | ( KW_DESCENDANT_OR_SELF COLONCOLON) | ( KW_FOLLOWING_SIBLING COLONCOLON) | ( KW_FOLLOWING COLONCOLON) | ( KW_NAMESPACE COLONCOLON) ;
                                                                                                                               ^
L46: forwardaxis : ( KW_CHILD COLONCOLON) | ( KW_DESCENDANT COLONCOLON) | ( KW_ATTRIBUTE COLONCOLON) | ( KW_SELF COLONCOLON) | ( KW_DESCENDANT_OR_SELF COLONCOLON) | ( KW_FOLLOWING_SIBLING COLONCOLON) | ( KW_FOLLOWING COLONCOLON) | ( KW_NAMESPACE COLONCOLON) ;
                                                                                                                                                                     ^
L46: forwardaxis : ( KW_CHILD COLONCOLON) | ( KW_DESCENDANT COLONCOLON) | ( KW_ATTRIBUTE COLONCOLON) | ( KW_SELF COLONCOLON) | ( KW_DESCENDANT_OR_SELF COLONCOLON) | ( KW_FOLLOWING_SIBLING COLONCOLON) | ( KW_FOLLOWING COLONCOLON) | ( KW_NAMESPACE COLONCOLON) ;
                                                                                                                                                                                                          ^
L46: forwardaxis : ( KW_CHILD COLONCOLON) | ( KW_DESCENDANT COLONCOLON) | ( KW_ATTRIBUTE COLONCOLON) | ( KW_SELF COLONCOLON) | ( KW_DESCENDANT_OR_SELF COLONCOLON) | ( KW_FOLLOWING_SIBLING COLONCOLON) | ( KW_FOLLOWING COLONCOLON) | ( KW_NAMESPACE COLONCOLON) ;
                                                                                                                                                                                                                                       ^
L48: reversestep : (reverseaxis nodetest) | abbrevreversestep ;
                   ^
L49: reverseaxis : ( KW_PARENT COLONCOLON) | ( KW_ANCESTOR COLONCOLON) | ( KW_PRECEDING_SIBLING COLONCOLON) | ( KW_PRECEDING COLONCOLON) | ( KW_ANCESTOR_OR_SELF COLONCOLON) ;
                   ^
L49: reverseaxis : ( KW_PARENT COLONCOLON) | ( KW_ANCESTOR COLONCOLON) | ( KW_PRECEDING_SIBLING COLONCOLON) | ( KW_PRECEDING COLONCOLON) | ( KW_ANCESTOR_OR_SELF COLONCOLON) ;
                                             ^
L49: reverseaxis : ( KW_PARENT COLONCOLON) | ( KW_ANCESTOR COLONCOLON) | ( KW_PRECEDING_SIBLING COLONCOLON) | ( KW_PRECEDING COLONCOLON) | ( KW_ANCESTOR_OR_SELF COLONCOLON) ;
                                                                         ^
L49: reverseaxis : ( KW_PARENT COLONCOLON) | ( KW_ANCESTOR COLONCOLON) | ( KW_PRECEDING_SIBLING COLONCOLON) | ( KW_PRECEDING COLONCOLON) | ( KW_ANCESTOR_OR_SELF COLONCOLON) ;
                                                                                                              ^
L49: reverseaxis : ( KW_PARENT COLONCOLON) | ( KW_ANCESTOR COLONCOLON) | ( KW_PRECEDING_SIBLING COLONCOLON) | ( KW_PRECEDING COLONCOLON) | ( KW_ANCESTOR_OR_SELF COLONCOLON) ;
                                                                                                                                           ^
L54: wildcard : STAR | (NCName CS) | ( SC NCName) ;
                       ^
L54: wildcard : STAR | (NCName CS) | ( SC NCName) ;
                                     ^
L89: sequencetype : ( KW_EMPTY_SEQUENCE OP CP) | (itemtype occurrenceindicator?) ;
                    ^
L89: sequencetype : ( KW_EMPTY_SEQUENCE OP CP) | (itemtype occurrenceindicator?) ;
                                                 ^
L91: itemtype : kindtest | ( KW_ITEM OP CP) | atomictype ;
                           ^
L285: DecimalLiteral : ('.' FragDigits) | (FragDigits '.' [0-9]*) ;
                       ^
L285: DecimalLiteral : ('.' FragDigits) | (FragDigits '.' [0-9]*) ;
                                          ^
L286: DoubleLiteral : (('.' FragDigits) | (FragDigits ('.' [0-9]*)?)) [eE] [+-]? FragDigits ;
                       ^
L286: DoubleLiteral : (('.' FragDigits) | (FragDigits ('.' [0-9]*)?)) [eE] [+-]? FragDigits ;
                                          ^
L287: StringLiteral : ('"' (FragEscapeQuot | ~[^"])*? '"') | ('\'' (FragEscapeApos | ~['])*? '\'') ;
                      ^
L287: StringLiteral : ('"' (FragEscapeQuot | ~[^"])*? '"') | ('\'' (FragEscapeApos | ~['])*? '\'') ;
                                                             ^
./xpath/xpath31
L53: pathexpr : ( SLASH relativepathexpr?) | ( SS relativepathexpr) | relativepathexpr ;
                ^
L53: pathexpr : ( SLASH relativepathexpr?) | ( SS relativepathexpr) | relativepathexpr ;
                                             ^
L58: forwardstep : (forwardaxis nodetest) | abbrevforwardstep ;
                   ^
L59: forwardaxis : ( KW_CHILD COLONCOLON) | ( KW_DESCENDANT COLONCOLON) | ( KW_ATTRIBUTE COLONCOLON) | ( KW_SELF COLONCOLON) | ( KW_DESCENDANT_OR_SELF COLONCOLON) | ( KW_FOLLOWING_SIBLING COLONCOLON) | ( KW_FOLLOWING COLONCOLON) | ( KW_NAMESPACE COLONCOLON) ;
                   ^
L59: forwardaxis : ( KW_CHILD COLONCOLON) | ( KW_DESCENDANT COLONCOLON) | ( KW_ATTRIBUTE COLONCOLON) | ( KW_SELF COLONCOLON) | ( KW_DESCENDANT_OR_SELF COLONCOLON) | ( KW_FOLLOWING_SIBLING COLONCOLON) | ( KW_FOLLOWING COLONCOLON) | ( KW_NAMESPACE COLONCOLON) ;
                                            ^
L59: forwardaxis : ( KW_CHILD COLONCOLON) | ( KW_DESCENDANT COLONCOLON) | ( KW_ATTRIBUTE COLONCOLON) | ( KW_SELF COLONCOLON) | ( KW_DESCENDANT_OR_SELF COLONCOLON) | ( KW_FOLLOWING_SIBLING COLONCOLON) | ( KW_FOLLOWING COLONCOLON) | ( KW_NAMESPACE COLONCOLON) ;
                                                                          ^
L59: forwardaxis : ( KW_CHILD COLONCOLON) | ( KW_DESCENDANT COLONCOLON) | ( KW_ATTRIBUTE COLONCOLON) | ( KW_SELF COLONCOLON) | ( KW_DESCENDANT_OR_SELF COLONCOLON) | ( KW_FOLLOWING_SIBLING COLONCOLON) | ( KW_FOLLOWING COLONCOLON) | ( KW_NAMESPACE COLONCOLON) ;
                                                                                                       ^
L59: forwardaxis : ( KW_CHILD COLONCOLON) | ( KW_DESCENDANT COLONCOLON) | ( KW_ATTRIBUTE COLONCOLON) | ( KW_SELF COLONCOLON) | ( KW_DESCENDANT_OR_SELF COLONCOLON) | ( KW_FOLLOWING_SIBLING COLONCOLON) | ( KW_FOLLOWING COLONCOLON) | ( KW_NAMESPACE COLONCOLON) ;
                                                                                                                               ^
L59: forwardaxis : ( KW_CHILD COLONCOLON) | ( KW_DESCENDANT COLONCOLON) | ( KW_ATTRIBUTE COLONCOLON) | ( KW_SELF COLONCOLON) | ( KW_DESCENDANT_OR_SELF COLONCOLON) | ( KW_FOLLOWING_SIBLING COLONCOLON) | ( KW_FOLLOWING COLONCOLON) | ( KW_NAMESPACE COLONCOLON) ;
                                                                                                                                                                     ^
L59: forwardaxis : ( KW_CHILD COLONCOLON) | ( KW_DESCENDANT COLONCOLON) | ( KW_ATTRIBUTE COLONCOLON) | ( KW_SELF COLONCOLON) | ( KW_DESCENDANT_OR_SELF COLONCOLON) | ( KW_FOLLOWING_SIBLING COLONCOLON) | ( KW_FOLLOWING COLONCOLON) | ( KW_NAMESPACE COLONCOLON) ;
                                                                                                                                                                                                          ^
L59: forwardaxis : ( KW_CHILD COLONCOLON) | ( KW_DESCENDANT COLONCOLON) | ( KW_ATTRIBUTE COLONCOLON) | ( KW_SELF COLONCOLON) | ( KW_DESCENDANT_OR_SELF COLONCOLON) | ( KW_FOLLOWING_SIBLING COLONCOLON) | ( KW_FOLLOWING COLONCOLON) | ( KW_NAMESPACE COLONCOLON) ;
                                                                                                                                                                                                                                       ^
L61: reversestep : (reverseaxis nodetest) | abbrevreversestep ;
                   ^
L62: reverseaxis : ( KW_PARENT COLONCOLON) | ( KW_ANCESTOR COLONCOLON) | ( KW_PRECEDING_SIBLING COLONCOLON) | ( KW_PRECEDING COLONCOLON) | ( KW_ANCESTOR_OR_SELF COLONCOLON) ;
                   ^
L62: reverseaxis : ( KW_PARENT COLONCOLON) | ( KW_ANCESTOR COLONCOLON) | ( KW_PRECEDING_SIBLING COLONCOLON) | ( KW_PRECEDING COLONCOLON) | ( KW_ANCESTOR_OR_SELF COLONCOLON) ;
                                             ^
L62: reverseaxis : ( KW_PARENT COLONCOLON) | ( KW_ANCESTOR COLONCOLON) | ( KW_PRECEDING_SIBLING COLONCOLON) | ( KW_PRECEDING COLONCOLON) | ( KW_ANCESTOR_OR_SELF COLONCOLON) ;
                                                                         ^
L62: reverseaxis : ( KW_PARENT COLONCOLON) | ( KW_ANCESTOR COLONCOLON) | ( KW_PRECEDING_SIBLING COLONCOLON) | ( KW_PRECEDING COLONCOLON) | ( KW_ANCESTOR_OR_SELF COLONCOLON) ;
                                                                                                              ^
L62: reverseaxis : ( KW_PARENT COLONCOLON) | ( KW_ANCESTOR COLONCOLON) | ( KW_PRECEDING_SIBLING COLONCOLON) | ( KW_PRECEDING COLONCOLON) | ( KW_ANCESTOR_OR_SELF COLONCOLON) ;
                                                                                                                                           ^
L67: wildcard : STAR | (NCName CS) | ( SC NCName) | (BracedURILiteral STAR) ;
                       ^
L67: wildcard : STAR | (NCName CS) | ( SC NCName) | (BracedURILiteral STAR) ;
                                     ^
L67: wildcard : STAR | (NCName CS) | ( SC NCName) | (BracedURILiteral STAR) ;
                                                    ^
L124: sequencetype : ( KW_EMPTY_SEQUENCE OP CP) | (itemtype occurrenceindicator?) ;
                     ^
L124: sequencetype : ( KW_EMPTY_SEQUENCE OP CP) | (itemtype occurrenceindicator?) ;
                                                  ^
L127: itemtype : kindtest | ( KW_ITEM OP CP) | functiontest | maptest | arraytest | atomicoruniontype | parenthesizeditemtype ;
                            ^
L334: DecimalLiteral : ('.' FragDigits) | (FragDigits '.' [0-9]*) ;
                       ^
L334: DecimalLiteral : ('.' FragDigits) | (FragDigits '.' [0-9]*) ;
                                          ^
L335: DoubleLiteral : (('.' FragDigits) | (FragDigits ('.' [0-9]*)?)) [eE] [+-]? FragDigits ;
                       ^
L335: DoubleLiteral : (('.' FragDigits) | (FragDigits ('.' [0-9]*)?)) [eE] [+-]? FragDigits ;
                                          ^
L336: StringLiteral : ('"' (FragEscapeQuot | ~[^"])*? '"') | ('\'' (FragEscapeApos | ~['])*? '\'') ;
                      ^
L336: StringLiteral : ('"' (FragEscapeQuot | ~[^"])*? '"') | ('\'' (FragEscapeApos | ~['])*? '\'') ;
                                                             ^
./xsd-regex
regexParser.g4:L68: atom : Char | charClass | (LPAREN regExp RPAREN)
                                              ^
./xyz
./yara
YaraParser.g4:L221:     : LSB (DEC? (MINUS DEC?)?) RSB
                              ^
./z
ZLexer.g4:L74: STROKE : (STROKECHAR | SOUTH_EAST_ARROW DECIMAL NORTH_WEST_ARROW);
                        ^

@KvanTTT
Copy link
Member

KvanTTT commented May 12, 2023

@kaby76 could you please use <details> tag for long text? It's not very convenient to scroll the page for observing thread comments.

@kaby76
Copy link
Contributor Author

kaby76 commented May 17, 2023

The latest version of the "find-useless" Bash/Trash script for finding useless parentheses is now in a repo here.

@KvanTTT
Copy link
Member

KvanTTT commented May 20, 2023

Hi! I have the following thoughts:

  1. Useless parentheses is minor problem. It doesn't look they affect performance (at least they should not). I'd fix them only with other problems but I don't insist and I accept such pull requests.
  2. I don't think string-based algorithm is suitable for searching useless parentheses. It's better to use algorithms on AST but I understand this approach might be more laborious.

@KvanTTT
Copy link
Member

KvanTTT commented May 20, 2023

BTW, interesting, the text within <details> tag is not formatted and that why it's unreadable.

UPDATE: got it. @kaby76 please use double line break after opening <details> tag (I fixed your messages):

<details>

\```
// long code
\```

@kaby76
Copy link
Contributor Author

kaby76 commented May 20, 2023

  1. Useless parentheses is minor problem. It doesn't look they affect performance (at least they should not). I'd fix them only with other problems but I don't insist and I accept such pull requests.

@KvanTTT It is a minor issue, but it adds to the readability of the grammar. I doubt--as well--that it would affect the performance in any way. But, I haven't compared the generated parser/lexer code to see if there is a difference.

I would prefer to create a commit based on a functional basis ("one PR for fixing all useless parentheses in all grammars") rather than a per-grammar basis ("PR for abb, PR for abnf, ..., PR for z). It's a lot of busy work all around. And, the changes can easily be done in a few minutes with Trash, and verified via one build of a few hours.

The alternative is to add the check to the build and output warnings. So, whenever the grammar is next changed, the check is run automatically.

  1. I don't think string-based algorithm is suitable for searching useless parentheses. It's better to use algorithms on AST but I understand this approach might be more laborious.

First, this is not at all a string-based algorithm! If anything, you could say this is a parse tree-based approach. Grammars are parsed, a parse tree is produced, and XPath expressions are evaluated to find useless parentheses.

The fact is that operating against the PT works. But, only if the patterns are correct. The patterns are declarative and at the level of the grammar. This is exactly the right way to write these kinds of algorithms.

The main problem with the check is writing XPath expressions to find the useless parentheses. But, this is because the grammar is poorly written! Your observation that this should be as an AST is in the right direction, but unnecessary. (And, after studying compiler construction for 40+ years, I would boldly state that ASTs in compiler implementation have been one of the greatest failures and impediments toward progress. Another data representation that disassociates syntax and semantics adds more complexity, more errors, etc. At the very least, ASTs should always have an inverse mapping back to the PT.)

The problem with the current grammar is that the precedence and associativity of regular expressions in implemented manually using a chain of rules rather than in "Antlr style". If it were implemented in "Antlr style", then the pattern would be far simpler: "If the precedence of the child is higher than the precedence of the parent of the 'block' containing parentheses, then remove the 'block' node of the tree".

As an example of what I mean, consider the arithmetic expression "(1*2)+3". The tree for an "Antlr style" grammar implementation would be:
antlr4_parse_tree_1

We know that the parentheses are unnecessary because the precedence of "*" is greater than "+".

That all said, in other systems like Rascal and ASF+SDF, patterns are strings that are converted to parse trees, which makes the pattern easier to write. For now, I've only implemented XPath expressions.

kaby76 added a commit to kaby76/g4-scripts that referenced this issue Jun 1, 2023
teverett pushed a commit that referenced this issue Jun 11, 2023
…s parentheses. (#3498)

* Fix for #3403

* Add newline to show how static type check works on a grammar.

* Update to test.

* Updates to separate static checks into separate machine.
@kaby76 kaby76 closed this as completed Jun 12, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants