Repository URL to install this package:
|
Version:
2023.12.1 ▾
|
lexer grammar XPathLexer;
tokens { TokenRef, RuleRef }
/*
path : separator? word (separator word)* EOF ;
separator
: '/' '!'
| '//' '!'
| '/'
| '//'
;
word: TokenRef
| RuleRef
| String
| '*'
;
*/
Anywhere : '//' ;
Root : '/' ;
Wildcard : '*' ;
Bang : '!' ;
ID : NameStartChar NameChar*
{
String text = Text;
if ( Char.IsUpper(text[0]) )
Type = TokenRef;
else
Type = RuleRef;
}
;
fragment
NameChar : NameStartChar
| '0'..'9'
| '_'
| '\u00B7'
| '\u0300'..'\u036F'
| '\u203F'..'\u2040'
;
fragment
NameStartChar
: 'A'..'Z' | 'a'..'z'
| '\u00C0'..'\u00D6'
| '\u00D8'..'\u00F6'
| '\u00F8'..'\u02FF'
| '\u0370'..'\u037D'
| '\u037F'..'\u1FFF'
| '\u200C'..'\u200D'
| '\u2070'..'\u218F'
| '\u2C00'..'\u2FEF'
| '\u3001'..'\uD7FF'
| '\uF900'..'\uFDCF'
| '\uFDF0'..'\uFFFD'
; // ignores | ['\u10000-'\uEFFFF] ;
String : '\'' .*? '\'' ;
//Ws : [ \t\r\n]+ -> skip ;