mirror of
https://github.com/chylex/IntelliJ-IdeaVim.git
synced 2025-05-28 08:34:02 +02:00
parsing positive lookahead
This commit is contained in:
parent
189acb73f5
commit
052fd7162f
vim-engine/src/main/antlr
@ -15,7 +15,8 @@ tokens {
|
||||
CLASS_NOT_HEX_NL, CLASS_OCTAL_NL, CLASS_NOT_OCTAL_NL, CLASS_WORD_NL, CLASS_NOT_WORD_NL,
|
||||
CLASS_HEADWORD_NL, CLASS_NOT_HEADWORD_NL, CLASS_ALPHA_NL, CLASS_NOT_ALPHA_NL, CLASS_LCASE_NL,
|
||||
CLASS_NOT_LCASE_NL, CLASS_UCASE_NL, CLASS_NOT_UCASE_NL, START_OF_FILE, END_OF_FILE,
|
||||
CARET, DOLLAR, START_OF_LINE, END_OF_LINE, ATOMIC, START_OF_WORD, END_OF_WORD
|
||||
CARET, DOLLAR, START_OF_LINE, END_OF_LINE, ATOMIC, START_OF_WORD, END_OF_WORD,
|
||||
POSITIVE_LOOKAHEAD
|
||||
}
|
||||
|
||||
@members {
|
||||
@ -39,11 +40,14 @@ LEFT_PAREN_NOCAPTURE_MAGIC: '\\%(' -> type(LEFT_PAREN_NOCAPTURE);
|
||||
RIGHT_PAREN_MAGIC: '\\)' -> type(RIGHT_PAREN);
|
||||
DOT_MAGIC: '.' -> type(DOT);
|
||||
DOTNL_MAGIC: '\\_.' -> type(DOTNL);
|
||||
BACKREFERENCE_MAGIC: '\\' [0-9] -> type(BACKREFERENCE);
|
||||
|
||||
// multi
|
||||
STAR_MAGIC: '*' -> type(STAR);
|
||||
PLUS_MAGIC: '\\+' -> type(PLUS);
|
||||
OPTIONAL_MAGIC: ('\\=' | '\\?') -> type(OPTIONAL);
|
||||
ATOMIC_MAGIC: '\\@>' -> type(ATOMIC);
|
||||
BACKREFERENCE_MAGIC: '\\' [0-9] -> type(BACKREFERENCE);
|
||||
POSITIVE_LOOKAHEAD_MAGIC: '\\@=' -> type(POSITIVE_LOOKAHEAD);
|
||||
|
||||
RANGE_START_MAGIC: '\\{' -> pushMode(INSIDE_RANGE), type(RANGE_START);
|
||||
RANGE_START_LAZY_MAGIC: '\\{-' -> pushMode(INSIDE_RANGE), type(RANGE_START_LAZY);
|
||||
@ -152,11 +156,14 @@ LEFT_PAREN_NOCAPTURE_NOMAGIC: '\\%(' -> type(LEFT_PAREN_NOCAPTURE);
|
||||
RIGHT_PAREN_NOMAGIC: '\\)' -> type(RIGHT_PAREN);
|
||||
DOT_NOMAGIC: '\\.' -> type(DOT);
|
||||
DOTNL_NOMAGIC: '\\_.' -> type(DOTNL);
|
||||
BACKREFERENCE_NOMAGIC: '\\' [0-9] -> type(BACKREFERENCE);
|
||||
|
||||
// multi
|
||||
STAR_NOMAGIC: '\\*' -> type(STAR);
|
||||
PLUS_NOMAGIC: '\\+' -> type(PLUS);
|
||||
OPTIONAL_NOMAGIC: ('\\=' | '\\?') -> type(OPTIONAL);
|
||||
ATOMIC_NOMAGIC: '\\@>' -> type(ATOMIC);
|
||||
BACKREFERENCE_NOMAGIC: '\\' [0-9] -> type(BACKREFERENCE);
|
||||
POSITIVE_LOOKAHEAD_NOMAGIC: '\\@=' -> type(POSITIVE_LOOKAHEAD);
|
||||
|
||||
RANGE_START_NOMAGIC: '\\{' -> pushMode(INSIDE_RANGE), type(RANGE_START);
|
||||
RANGE_START_LAZY_NOMAGIC: '\\{-' -> pushMode(INSIDE_RANGE), type(RANGE_START_LAZY);
|
||||
@ -266,11 +273,14 @@ LEFT_PAREN_NOCAPTURE_VMAGIC: '%(' -> type(LEFT_PAREN_NOCAPTURE);
|
||||
RIGHT_PAREN_VMAGIC: ')' -> type(RIGHT_PAREN);
|
||||
DOT_VMAGIC: '.' -> type(DOT);
|
||||
DOTNL_VMAGIC: '\\_.' -> type(DOTNL);
|
||||
BACKREFERENCE_VMAGIC: '\\' [0-9] -> type(BACKREFERENCE);
|
||||
|
||||
// multi
|
||||
STAR_VMAGIC: '*' -> type(STAR);
|
||||
PLUS_VMAGIC: '+' -> type(PLUS);
|
||||
OPTIONAL_VMAGIC: ('=' | '?') -> type(OPTIONAL);
|
||||
ATOMIC_VMAGIC: '@>' -> type(ATOMIC);
|
||||
BACKREFERENCE_VMAGIC: '\\' [0-9] -> type(BACKREFERENCE);
|
||||
POSITIVE_LOOKAHEAD_VMAGIC: '@=' -> type(POSITIVE_LOOKAHEAD);
|
||||
|
||||
RANGE_START_VMAGIC: '{' -> pushMode(INSIDE_RANGE), type(RANGE_START);
|
||||
RANGE_START_LAZY_VMAGIC: '{-' -> pushMode(INSIDE_RANGE), type(RANGE_START_LAZY);
|
||||
@ -379,11 +389,14 @@ LEFT_PAREN_NOCAPTURE_VNOMAGIC: '\\%(' -> type(LEFT_PAREN_NOCAPTURE);
|
||||
RIGHT_PAREN_VNOMAGIC: '\\)' -> type(RIGHT_PAREN);
|
||||
DOT_VNOMAGIC: '\\.' -> type(DOT);
|
||||
DOTNL_VNOMAGIC: '\\_.' -> type(DOTNL);
|
||||
BACKREFERENCE_VNOMAGIC: '\\' [0-9] -> type(BACKREFERENCE);
|
||||
|
||||
// multi
|
||||
STAR_VNOMAGIC: '\\*' -> type(STAR);
|
||||
PLUS_VNOMAGIC: '\\+' -> type(PLUS);
|
||||
OPTIONAL_VNOMAGIC: ('\\=' | '\\?') -> type(OPTIONAL);
|
||||
ATOMIC_VNOMAGIC: '\\@>' -> type(ATOMIC);
|
||||
BACKREFERENCE_VNOMAGIC: '\\' [0-9] -> type(BACKREFERENCE);
|
||||
POSITIVE_LOOKAHEAD_VNOMAGIC: '\\@=' -> type(POSITIVE_LOOKAHEAD);
|
||||
|
||||
RANGE_START_VNOMAGIC: '\\{' -> pushMode(INSIDE_RANGE), type(RANGE_START);
|
||||
RANGE_START_LAZY_VNOMAGIC: '\\{-' -> pushMode(INSIDE_RANGE), type(RANGE_START_LAZY);
|
||||
|
@ -56,11 +56,12 @@ atom : ordinary_atom #OrdinaryAtom
|
||||
* "\?" or "\=" for zero or one times, or a range for a more customizable
|
||||
* number of times.
|
||||
*/
|
||||
multi : STAR #ZeroOrMore
|
||||
| PLUS #OneOrMore
|
||||
| OPTIONAL #ZeroOrOne
|
||||
| range #RangeQuantifier
|
||||
| ATOMIC #Atomic
|
||||
multi : STAR #ZeroOrMore
|
||||
| PLUS #OneOrMore
|
||||
| OPTIONAL #ZeroOrOne
|
||||
| range #RangeQuantifier
|
||||
| ATOMIC #Atomic
|
||||
| POSITIVE_LOOKAHEAD #PositiveLookahead
|
||||
;
|
||||
|
||||
/**
|
||||
|
Loading…
Reference in New Issue
Block a user