blob: fb1ea4183f2336b0dc9cf8de16c02135bd247152 [file] [log] [blame]
/*
* 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;
public class RutaKeywords implements IRutaKeywords {
private static String[] condition = { "CONTAINS", "IF", "INLIST", "PARTOF", "TOTALCOUNT",
"CURRENTCOUNT", "CONTEXTCOUNT", "LAST", "VOTE", "COUNT", "NEAR", "REGEXP", "POSITION",
"SCORE", "ISLISTEMPTY", "MOFN", "AND", "OR", "FEATURE", "PARSE", "IS", "BEFORE", "AFTER",
"STARTSWITH", "ENDSWITH", "PARTOFNEQ", "SIZE", "NOT" };
private static String[] declaration = { "WORDLIST", "DECLARE", "BOOLEAN", "PACKAGE", "TYPE",
"TYPESYSTEM", "INT", "DOUBLE", "FLOAT", "STRING", "SCRIPT", "WORDTABLE", "ENGINE", "BLOCK",
"RULES", "BOOLEANLIST", "INTLIST", "DOUBLELIST", "FLOATLIST", "STRINGLIST", "TYPELIST",
"UIMAFIT" };
private static String[] action = { "DEL", "CALL", "MARK", "MARKSCORE", "COLOR", "LOG", "REPLACE",
"FILLOBJECT", "RETAINTYPE", "SETFEATURE", "ASSIGN", "PUTINLIST", "ATTRIBUTE", "MARKFAST",
"FILTERTYPE", "CREATE", "FILL", "MARKTABLE", "UNMARK", "TRANSFER", "MARKONCE", "TRIE",
"GATHER", "EXEC", "MARKLAST", "ADD", "REMOVE", "MERGE", "GET", "GETLIST", "REMOVEDUPLICATE",
"GETFEATURE", "MATCHEDTEXT", "CLEAR", "UNMARKALL", "SHIFT", "CONFIGURE", "DYNAMICANCHORING",
"TRIM", "ADDRETAINTYPE", "REMOVERETAINTYPE", "ADDFILTERTYPE", "REMOVEFILTERTYPE", "MARKFIRST" };
private static String[] basic = { "ALL", "ANY", "AMP", "BREAK", "W", "NUM", "PM", "Document",
"MARKUP", "SW", "CW", "CAP", "PERIOD", "NBSP", "SENTENCEEND", "COLON", "COMMA", "SEMICOLON",
"WS", "_", "SPACE", "SPECIAL", "EXCLAMATION", "QUESTION", "#" };
private static String[] booleanFunction = { "true", "false" };
private static String[] numberFunction = { "EXP", "SIN", "COS", "TAN", "LOGN" };
private static String[] stringFunction = { "REMOVESTRING" };
private static String[] typeFunction = {};
private static String[] then = { "->" };
public String[] getKeywords(int type) {
if (type == CONDITION) {
return condition;
} else if (type == ACTION) {
return action;
} else if (type == DECLARATION) {
return declaration;
} else if (type == BASIC) {
return basic;
} else if (type == BOOLEANFUNCTION) {
return booleanFunction;
} else if (type == NUMBERFUNCTION) {
return numberFunction;
} else if (type == STRINGFUNCTION) {
return stringFunction;
} else if (type == TYPEFUNCTION) {
return typeFunction;
} else if (type == THEN) {
return then;
}
return getKeywords();
}
public static String[] append(String prefix, String[] a, String[] b) {
int len = 0;
if (a != null) {
len = a.length;
}
String[] ns = new String[len + b.length];
if (a != null) {
System.arraycopy(a, 0, ns, 0, len);
}
for (int i = 0; i < b.length; i++) {
ns[len + i] = prefix + b[i];
}
return ns;
}
public static String[] append(String[] a, String[] b) {
if (b == null) {
return a;
}
String[] ns = new String[a.length + b.length];
System.arraycopy(a, 0, ns, 0, a.length);
System.arraycopy(b, 0, ns, a.length, b.length);
return ns;
}
public String[] getKeywords() {
return null;
}
}