mirror of
https://github.com/chylex/IntelliJ-IdeaVim.git
synced 2025-06-02 04:34:06 +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_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_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,
|
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 {
|
@members {
|
||||||
@ -39,11 +40,14 @@ LEFT_PAREN_NOCAPTURE_MAGIC: '\\%(' -> type(LEFT_PAREN_NOCAPTURE);
|
|||||||
RIGHT_PAREN_MAGIC: '\\)' -> type(RIGHT_PAREN);
|
RIGHT_PAREN_MAGIC: '\\)' -> type(RIGHT_PAREN);
|
||||||
DOT_MAGIC: '.' -> type(DOT);
|
DOT_MAGIC: '.' -> type(DOT);
|
||||||
DOTNL_MAGIC: '\\_.' -> type(DOTNL);
|
DOTNL_MAGIC: '\\_.' -> type(DOTNL);
|
||||||
|
BACKREFERENCE_MAGIC: '\\' [0-9] -> type(BACKREFERENCE);
|
||||||
|
|
||||||
|
// multi
|
||||||
STAR_MAGIC: '*' -> type(STAR);
|
STAR_MAGIC: '*' -> type(STAR);
|
||||||
PLUS_MAGIC: '\\+' -> type(PLUS);
|
PLUS_MAGIC: '\\+' -> type(PLUS);
|
||||||
OPTIONAL_MAGIC: ('\\=' | '\\?') -> type(OPTIONAL);
|
OPTIONAL_MAGIC: ('\\=' | '\\?') -> type(OPTIONAL);
|
||||||
ATOMIC_MAGIC: '\\@>' -> type(ATOMIC);
|
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_MAGIC: '\\{' -> pushMode(INSIDE_RANGE), type(RANGE_START);
|
||||||
RANGE_START_LAZY_MAGIC: '\\{-' -> pushMode(INSIDE_RANGE), type(RANGE_START_LAZY);
|
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);
|
RIGHT_PAREN_NOMAGIC: '\\)' -> type(RIGHT_PAREN);
|
||||||
DOT_NOMAGIC: '\\.' -> type(DOT);
|
DOT_NOMAGIC: '\\.' -> type(DOT);
|
||||||
DOTNL_NOMAGIC: '\\_.' -> type(DOTNL);
|
DOTNL_NOMAGIC: '\\_.' -> type(DOTNL);
|
||||||
|
BACKREFERENCE_NOMAGIC: '\\' [0-9] -> type(BACKREFERENCE);
|
||||||
|
|
||||||
|
// multi
|
||||||
STAR_NOMAGIC: '\\*' -> type(STAR);
|
STAR_NOMAGIC: '\\*' -> type(STAR);
|
||||||
PLUS_NOMAGIC: '\\+' -> type(PLUS);
|
PLUS_NOMAGIC: '\\+' -> type(PLUS);
|
||||||
OPTIONAL_NOMAGIC: ('\\=' | '\\?') -> type(OPTIONAL);
|
OPTIONAL_NOMAGIC: ('\\=' | '\\?') -> type(OPTIONAL);
|
||||||
ATOMIC_NOMAGIC: '\\@>' -> type(ATOMIC);
|
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_NOMAGIC: '\\{' -> pushMode(INSIDE_RANGE), type(RANGE_START);
|
||||||
RANGE_START_LAZY_NOMAGIC: '\\{-' -> pushMode(INSIDE_RANGE), type(RANGE_START_LAZY);
|
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);
|
RIGHT_PAREN_VMAGIC: ')' -> type(RIGHT_PAREN);
|
||||||
DOT_VMAGIC: '.' -> type(DOT);
|
DOT_VMAGIC: '.' -> type(DOT);
|
||||||
DOTNL_VMAGIC: '\\_.' -> type(DOTNL);
|
DOTNL_VMAGIC: '\\_.' -> type(DOTNL);
|
||||||
|
BACKREFERENCE_VMAGIC: '\\' [0-9] -> type(BACKREFERENCE);
|
||||||
|
|
||||||
|
// multi
|
||||||
STAR_VMAGIC: '*' -> type(STAR);
|
STAR_VMAGIC: '*' -> type(STAR);
|
||||||
PLUS_VMAGIC: '+' -> type(PLUS);
|
PLUS_VMAGIC: '+' -> type(PLUS);
|
||||||
OPTIONAL_VMAGIC: ('=' | '?') -> type(OPTIONAL);
|
OPTIONAL_VMAGIC: ('=' | '?') -> type(OPTIONAL);
|
||||||
ATOMIC_VMAGIC: '@>' -> type(ATOMIC);
|
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_VMAGIC: '{' -> pushMode(INSIDE_RANGE), type(RANGE_START);
|
||||||
RANGE_START_LAZY_VMAGIC: '{-' -> pushMode(INSIDE_RANGE), type(RANGE_START_LAZY);
|
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);
|
RIGHT_PAREN_VNOMAGIC: '\\)' -> type(RIGHT_PAREN);
|
||||||
DOT_VNOMAGIC: '\\.' -> type(DOT);
|
DOT_VNOMAGIC: '\\.' -> type(DOT);
|
||||||
DOTNL_VNOMAGIC: '\\_.' -> type(DOTNL);
|
DOTNL_VNOMAGIC: '\\_.' -> type(DOTNL);
|
||||||
|
BACKREFERENCE_VNOMAGIC: '\\' [0-9] -> type(BACKREFERENCE);
|
||||||
|
|
||||||
|
// multi
|
||||||
STAR_VNOMAGIC: '\\*' -> type(STAR);
|
STAR_VNOMAGIC: '\\*' -> type(STAR);
|
||||||
PLUS_VNOMAGIC: '\\+' -> type(PLUS);
|
PLUS_VNOMAGIC: '\\+' -> type(PLUS);
|
||||||
OPTIONAL_VNOMAGIC: ('\\=' | '\\?') -> type(OPTIONAL);
|
OPTIONAL_VNOMAGIC: ('\\=' | '\\?') -> type(OPTIONAL);
|
||||||
ATOMIC_VNOMAGIC: '\\@>' -> type(ATOMIC);
|
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_VNOMAGIC: '\\{' -> pushMode(INSIDE_RANGE), type(RANGE_START);
|
||||||
RANGE_START_LAZY_VNOMAGIC: '\\{-' -> pushMode(INSIDE_RANGE), type(RANGE_START_LAZY);
|
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
|
* "\?" or "\=" for zero or one times, or a range for a more customizable
|
||||||
* number of times.
|
* number of times.
|
||||||
*/
|
*/
|
||||||
multi : STAR #ZeroOrMore
|
multi : STAR #ZeroOrMore
|
||||||
| PLUS #OneOrMore
|
| PLUS #OneOrMore
|
||||||
| OPTIONAL #ZeroOrOne
|
| OPTIONAL #ZeroOrOne
|
||||||
| range #RangeQuantifier
|
| range #RangeQuantifier
|
||||||
| ATOMIC #Atomic
|
| ATOMIC #Atomic
|
||||||
|
| POSITIVE_LOOKAHEAD #PositiveLookahead
|
||||||
;
|
;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
Reference in New Issue
Block a user