lexer grammar RutaLexer; | |
options { | |
language = Java; | |
} | |
tokens { | |
DocComment; | |
Annotation; | |
ListIdentifier; | |
} | |
@lexer::header { | |
/* | |
* Licensed to the Apache Software Foundation (ASF) under one | |
* or more contributor license agreements. See the NOTICE file | |
* distributed with this work for additional information | |
* regarding copyright ownership. The ASF licenses this file | |
* to you under the Apache License, Version 2.0 (the | |
* "License"); you may not use this file except in compliance | |
* with the License. You may obtain a copy of the License at | |
* | |
* http://www.apache.org/licenses/LICENSE-2.0 | |
* | |
* Unless required by applicable law or agreed to in writing, | |
* software distributed under the License is distributed on an | |
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | |
* KIND, either express or implied. See the License for the | |
* specific language governing permissions and limitations | |
* under the License. | |
*/ | |
package org.apache.uima.ruta.ide.core.parser; | |
} | |
@lexer::members { | |
public int implicitLineJoiningLevel = 0; | |
public int startPos=-1; | |
public void emitErrorMessage(String msg) { | |
} | |
} | |
TRIE | |
: 'TRIE' | |
; | |
CONTAINS | |
: 'CONTAINS' | |
; | |
DECLARE | |
: 'DECLARE' | |
; | |
WORDLIST | |
: 'WORDLIST' | |
; | |
WORDTABLE | |
: 'WORDTABLE' | |
; | |
RESOURCE | |
: 'RESOURCE' | |
; | |
AND | |
: 'AND' | |
; | |
CONTEXTCOUNT | |
: 'CONTEXTCOUNT' | |
; | |
COUNT | |
: 'COUNT' | |
; | |
TOTALCOUNT | |
: 'TOTALCOUNT' | |
; | |
CURRENTCOUNT | |
: 'CURRENTCOUNT' | |
; | |
INLIST | |
: 'INLIST' | |
; | |
LAST | |
: 'LAST' | |
; | |
MOFN | |
: 'MOFN' | |
; | |
NEAR | |
: 'NEAR' | |
; | |
OR | |
: 'OR' | |
; | |
PARTOF | |
: 'PARTOF' | |
; | |
PARTOFNEQ | |
: 'PARTOFNEQ' | |
; | |
POSITION | |
: 'POSITION' | |
; | |
REGEXP | |
: 'REGEXP' | |
; | |
SCORE | |
: 'SCORE' | |
; | |
VOTE | |
: 'VOTE' | |
; | |
IF | |
: 'IF' | |
; | |
FEATURE | |
: 'FEATURE' | |
; | |
PARSE | |
: 'PARSE' | |
; | |
CREATE | |
: 'CREATE' | |
; | |
GATHER | |
: 'GATHER' | |
; | |
FILL | |
: 'FILL' | |
; | |
ATTRIBUTE | |
: 'ATTRIBUTE' | |
; | |
COLOR | |
: 'COLOR' | |
; | |
DEL | |
: 'DEL' | |
; | |
LOG | |
: 'LOG' | |
; | |
MARK | |
: 'MARK' | |
; | |
MARKSCORE | |
: 'MARKSCORE' | |
; | |
MARKONCE | |
: 'MARKONCE' | |
; | |
MARKFAST | |
: 'MARKFAST' | |
; | |
MARKTABLE | |
: 'MARKTABLE' | |
; | |
MARKLAST | |
: 'MARKLAST' | |
; | |
MARKFIRST | |
: 'MARKFIRST' | |
; | |
REPLACE | |
: 'REPLACE' | |
; | |
RETAINTYPE | |
: 'RETAINTYPE' | |
; | |
FILTERTYPE | |
: 'FILTERTYPE' | |
; | |
CALL | |
: 'CALL' | |
; | |
EXEC | |
: 'EXEC' | |
; | |
CONFIGURE | |
: 'CONFIGURE' | |
; | |
ASSIGN | |
: 'ASSIGN' | |
; | |
SETFEATURE | |
: 'SETFEATURE' | |
; | |
GETFEATURE | |
: 'GETFEATURE' | |
; | |
UNMARK | |
: 'UNMARK' | |
; | |
UNMARKALL | |
: 'UNMARKALL' | |
; | |
TRANSFER | |
: 'TRANSFER' | |
; | |
SHIFT | |
: 'SHIFT' | |
; | |
SPLIT | |
: 'SPLIT' | |
; | |
DYNAMICANCHORING | |
: 'DYNAMICANCHORING' | |
; | |
GREEDYANCHORING | |
: 'GREEDYANCHORING' | |
; | |
TRIM | |
: 'TRIM' | |
; | |
BEFORE | |
: 'BEFORE' | |
; | |
AFTER | |
: 'AFTER' | |
; | |
IS | |
: 'IS' | |
; | |
STARTSWITH | |
: 'STARTSWITH' | |
; | |
ENDSWITH | |
: 'ENDSWITH' | |
; | |
ADDRETAINTYPE | |
: 'ADDRETAINTYPE' | |
; | |
REMOVERETAINTYPE | |
: 'REMOVERETAINTYPE' | |
; | |
ADDFILTERTYPE | |
: 'ADDFILTERTYPE' | |
; | |
REMOVEFILTERTYPE | |
: 'REMOVEFILTERTYPE' | |
; | |
NOT | |
: 'NOT' | |
; | |
ADD : 'ADD'; | |
REMOVE : 'REMOVE'; | |
REMOVEDUPLICATE : 'REMOVEDUPLICATE'; | |
MERGE : 'MERGE'; | |
GET : 'GET'; | |
GETLIST : 'GETLIST'; | |
SIZE : 'SIZE'; | |
MATCHEDTEXT : 'MATCHEDTEXT'; | |
REMOVESTRING : 'REMOVESTRING'; | |
CLEAR : 'CLEAR'; | |
THEN | |
: '->' | |
; | |
THEN2 | |
: '<-' | |
; | |
LogLevel: | |
'finest' | 'finer' | 'fine' | 'config' | 'info' | 'warning' | 'severe' | |
; | |
OldColor | |
: 'black' | 'maroon' | 'green' | 'olive' | 'navy' | 'purple' | 'teal' | 'gray' | 'silver' | 'red' | 'lime' | 'yellow' | 'blue' | 'fuchsia' | 'aqua' | |
; | |
PackageString : 'PACKAGE'; | |
ScriptString : 'SCRIPT'; | |
EngineString : 'ENGINE'; | |
UimafitString : 'UIMAFIT'; | |
BlockString : 'BLOCK'; | |
ForEachString : 'FOREACH'; | |
TypeString : 'TYPE'; | |
IntString : 'INT'; | |
DoubleString : 'DOUBLE'; | |
FloatString : 'FLOAT'; | |
StringString : 'STRING'; | |
BooleanString : 'BOOLEAN'; | |
TypeSystemString: 'TYPESYSTEM'; | |
ImportString : 'IMPORT'; | |
FromString : 'FROM'; | |
AsString : 'AS'; | |
SymbolString : 'SYMBOL'; | |
CONDITION : 'CONDITION'; | |
ACTION : 'ACTION'; | |
VAR : 'VAR'; | |
BOOLEANLIST | |
: 'BOOLEANLIST'; | |
INTLIST : 'INTLIST'; | |
DOUBLELIST | |
: 'DOUBLELIST'; | |
FLOATLIST | |
: 'FLOATLIST'; | |
STRINGLIST | |
: 'STRINGLIST'; | |
TYPELIST: 'TYPELIST'; | |
ANNOTATION | |
: 'ANNOTATION'; | |
ANNOTATIONLIST | |
: 'ANNOTATIONLIST'; | |
EXP : 'EXP'; | |
LOGN : 'LOGN'; | |
SIN : 'SIN'; | |
COS : 'COS'; | |
TAN : 'TAN'; | |
POW : 'POW'; | |
XOR : 'XOR'; | |
TRUE : 'true'; | |
FALSE : 'false'; | |
NULL : 'null'; | |
ADDRESS_PREFIX | |
: '$'; | |
STARTANCHOR | |
: '@'; | |
HexLiteral : '0' ('x'|'X') HexDigit+ IntegerTypeSuffix? ; | |
DecimalLiteral : ('0' | '1'..'9' '0'..'9'*) IntegerTypeSuffix? ; | |
OctalLiteral : '0' ('0'..'7')+ IntegerTypeSuffix? ; | |
fragment | |
HexDigit : ('0'..'9'|'a'..'f'|'A'..'F') ; | |
fragment | |
IntegerTypeSuffix : ('l'|'L') ; | |
FloatingPointLiteral | |
: ('0'..'9')+ '.' ('0'..'9')* Exponent? FloatTypeSuffix? | |
| '.' ('0'..'9')+ Exponent? FloatTypeSuffix? | |
//| ('0'..'9')+ Exponent FloatTypeSuffix? | |
//| ('0'..'9')+ Exponent? FloatTypeSuffix | |
; | |
fragment | |
Exponent : ('e'|'E') ('+'|'-')? ('0'..'9')+ ; | |
fragment | |
FloatTypeSuffix : ('f'|'F'|'d'|'D') ; | |
CharacterLiteral | |
: '\'' ( EscapeSequence | ~('\''|'\\') ) '\'' | |
; | |
StringLiteral | |
: '"' ( EscapeSequence | ~('\\'|'"') )* '"' | |
; | |
RessourceLiteral | |
: '\'' ( EscapeSequence | ~('\\'|'\'') )* '\'' | |
; | |
fragment | |
EscapeSequence | |
: '\\' ('b'|'t'|'n'|'f'|'r'|'\"'|'\''|'\\') | |
| UnicodeEscape | |
| OctalEscape | |
; | |
fragment | |
OctalEscape | |
: '\\' ('0'..'3') ('0'..'7') ('0'..'7') | |
| '\\' ('0'..'7') ('0'..'7') | |
| '\\' ('0'..'7') | |
; | |
fragment | |
UnicodeEscape | |
: '\\' 'u' HexDigit HexDigit HexDigit HexDigit | |
; | |
Identifier | |
: Letter (Letter|JavaIDDigit)* | |
; | |
fragment | |
Letter | |
: | |
'\u0041'..'\u005a' | | |
'\u005f' | | |
'\u0061'..'\u007a' | | |
'\u00c0'..'\u00d6' | | |
'\u00d8'..'\u00f6' | | |
'\u00f8'..'\u00ff' | | |
'\u0100'..'\u1fff' | | |
'\u3040'..'\u318f' | | |
'\u3300'..'\u337f' | | |
'\u3400'..'\u3d2d' | | |
'\u4e00'..'\u9fff' | | |
'\uf900'..'\ufaff' | |
; | |
fragment | |
JavaIDDigit | |
: '\u0030'..'\u0039' | | |
'\u0660'..'\u0669' | | |
'\u06f0'..'\u06f9' | | |
'\u0966'..'\u096f' | | |
'\u09e6'..'\u09ef' | | |
'\u0a66'..'\u0a6f' | | |
'\u0ae6'..'\u0aef' | | |
'\u0b66'..'\u0b6f' | | |
'\u0be7'..'\u0bef' | | |
'\u0c66'..'\u0c6f' | | |
'\u0ce6'..'\u0cef' | | |
'\u0d66'..'\u0d6f' | | |
'\u0e50'..'\u0e59' | | |
'\u0ed0'..'\u0ed9' | | |
'\u1040'..'\u1049' | |
; | |
LPAREN : '(' {implicitLineJoiningLevel++;} ; | |
RPAREN : ')' {implicitLineJoiningLevel--;} ; | |
LBRACK : '[' {implicitLineJoiningLevel++;} ; | |
RBRACK : ']' {implicitLineJoiningLevel--;} ; | |
LCURLY : '{' {implicitLineJoiningLevel++;} ; | |
RCURLY : '}' {implicitLineJoiningLevel--;} ; | |
CIRCUMFLEX : '^' ; | |
DOT : '.' ; | |
COLON : ':' ; | |
COMMA : ',' ; | |
SEMI : ';' ; | |
PLUS : '+' ; | |
MINUS : '-' ; | |
STAR : '*' ; | |
SLASH : '/' ; | |
VBAR : '|' ; | |
AMPER : '&' ; | |
LESS : '<' ; | |
GREATER : '>' ; | |
ASSIGN_EQUAL : '=' ; | |
PERCENT : '%' ; | |
QUESTION : '?' ; | |
EQUAL : '==' ; | |
NOTEQUAL : '!=' ; | |
ALT_NOTEQUAL: '<>' ; | |
LESSEQUAL : '<=' ; | |
GREATEREQUAL : '>=' ; | |
WILDCARD : '#' ; | |
WS : (' '|'\r'|'\t'|'\u000C'|'\n') {$channel=HIDDEN;} | |
; | |
COMMENT | |
: '/*'{if (input.LA(1)=='*') $type=DocComment; else $channel=HIDDEN;} ( options {greedy=false;} : . )* '*/' | |
; | |
LINE_COMMENT | |
: '//' ~('\n'|'\r')* '\r'? '\n' {$channel=HIDDEN;} | |
; | |