blob: 96a6219c2fcfee69bc298aac281ad10c5ffbf3d6 [file] [log] [blame]
/*=============================================================================#
# Copyright (c) 2005, 2019 Stephan Wahlbrink and others.
#
# This program and the accompanying materials are made available under the
# terms of the Eclipse Public License 2.0 which is available at
# https://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0
# which is available at https://www.apache.org/licenses/LICENSE-2.0.
#
# SPDX-License-Identifier: EPL-2.0 OR Apache-2.0
#
# Contributors:
# Stephan Wahlbrink <sw@wahlbrink.eu> - initial API and implementation
#=============================================================================*/
package org.eclipse.statet.r.ui.text.r;
import org.eclipse.statet.r.core.rlang.RTerminal;
/**
* Groups of terminals and keys (suffix KEY) for text tokens recognized by text-parser
* (syntax-highlighting)
*/
public interface IRTextTokens {
public static final RTerminal[] SYMBOL = new RTerminal[] {
RTerminal.SYMBOL,
// RTerminal.SYMBOL_G, // colored like a string because of partitioning
};
public static final RTerminal[] STRING = new RTerminal[] {
RTerminal.STRING_D,
RTerminal.STRING_S,
};
public static final RTerminal[] NUM = new RTerminal[] {
RTerminal.NUM_NUM,
};
public static final RTerminal[] NUM_SUB_INT = new RTerminal[] {
RTerminal.NUM_INT,
};
public static final RTerminal[] NUM_SUB_CPLX = new RTerminal[] {
RTerminal.NUM_CPLX,
};
public static final RTerminal[] SPECIALCONST = new RTerminal[] {
RTerminal.NULL,
RTerminal.NA,
RTerminal.NA_REAL,
RTerminal.NA_INT,
RTerminal.NA_CPLX,
RTerminal.NA_CHAR,
RTerminal.INF,
RTerminal.NAN,
};
public static final RTerminal[] LOGICALCONST = new RTerminal[] {
RTerminal.TRUE,
RTerminal.FALSE,
};
public static final RTerminal[] FLOWCONTROL = new RTerminal[] {
RTerminal.IF,
RTerminal.ELSE,
RTerminal.FOR,
RTerminal.IN,
RTerminal.WHILE,
RTerminal.REPEAT,
RTerminal.NEXT,
RTerminal.BREAK,
RTerminal.FUNCTION,
};
public static final RTerminal[] GROUPING = new RTerminal[] {
RTerminal.BLOCK_OPEN,
RTerminal.BLOCK_CLOSE,
RTerminal.GROUP_OPEN,
RTerminal.GROUP_CLOSE,
};
public static final RTerminal[] SEPARATOR = new RTerminal[] {
RTerminal.COMMA,
RTerminal.SEMI,
};
public static final RTerminal[] NSGET = new RTerminal[] {
RTerminal.NS_GET,
RTerminal.NS_GET_INT,
};
public static final RTerminal[] SUBACCESS = new RTerminal[] {
RTerminal.SUB_INDEXED_S_OPEN,
RTerminal.SUB_INDEXED_D_OPEN,
RTerminal.SUB_INDEXED_CLOSE,
RTerminal.SUB_NAMED_PART,
RTerminal.SUB_NAMED_SLOT,
};
public static final RTerminal[] ASSIGN = new RTerminal[] {
RTerminal.ARROW_LEFT_S,
RTerminal.ARROW_LEFT_D,
RTerminal.ARROW_RIGHT_S,
RTerminal.ARROW_RIGHT_D,
RTerminal.COLON_EQUAL,
};
public static final RTerminal[] ASSIGN_SUB_EQUAL = new RTerminal[] {
RTerminal.EQUAL,
};
public static final RTerminal[] OP = new RTerminal[] {
RTerminal.PLUS,
RTerminal.MINUS,
RTerminal.MULT,
RTerminal.DIV,
RTerminal.POWER,
RTerminal.SEQ,
RTerminal.TILDE,
RTerminal.QUESTIONMARK,
};
public static final RTerminal[] OP_SUB_LOGICAL = new RTerminal[] {
RTerminal.NOT,
RTerminal.AND,
RTerminal.AND_D,
RTerminal.OR,
RTerminal.OR_D,
};
public static final RTerminal[] OP_SUB_RELATIONAL = new RTerminal[] {
RTerminal.REL_EQ,
RTerminal.REL_GT,
RTerminal.REL_GE,
RTerminal.REL_LE,
RTerminal.REL_LT,
RTerminal.REL_NE,
};
public static final RTerminal[] UNDEFINED = new RTerminal[] {
RTerminal.UNKNOWN,
};
public static final RTerminal[] COMMENT = new RTerminal[] {
RTerminal.COMMENT, RTerminal.ROXYGEN_COMMENT,
};
public static final String ROOT = "text_R_"; //$NON-NLS-1$
public static final String SYMBOL_KEY = ROOT+"rDefault"; //$NON-NLS-1$
public static final String SYMBOL_SUB_ASSIGN_KEY = SYMBOL_KEY + ".Assignment"; //$NON-NLS-1$
public static final String SYMBOL_SUB_LOGICAL_KEY = SYMBOL_KEY + ".Logical"; //$NON-NLS-1$
public static final String SYMBOL_SUB_FLOWCONTROL_KEY = SYMBOL_KEY + ".Flowcontrol"; //$NON-NLS-1$
public static final String SYMBOL_SUB_CUSTOM1_KEY = SYMBOL_KEY + ".Custom2"; //$NON-NLS-1$
public static final String SYMBOL_SUB_CUSTOM2_KEY = SYMBOL_KEY + ".Custom1"; //$NON-NLS-1$
public static final String STRING_KEY = ROOT+"rString"; //$NON-NLS-1$
public static final String NUM_KEY = ROOT+"rNumbers"; //$NON-NLS-1$
public static final String NUM_SUB_INT_KEY = NUM_KEY+".Integer"; //$NON-NLS-1$
public static final String NUM_SUB_CPLX_KEY = NUM_KEY+".Complex"; //$NON-NLS-1$
public static final String SPECIALCONST_KEY = ROOT+"rSpecialConstants"; //$NON-NLS-1$
public static final String LOGICALCONST_KEY = ROOT+"rLogicalConstants"; //$NON-NLS-1$
public static final String GROUPING_KEY = ROOT+"rGrouping"; //$NON-NLS-1$
public static final String SEPARATOR_KEY = ROOT+"rSeparators"; //$NON-NLS-1$
public static final String SUBACCESS_KEY = ROOT+"rIndexing"; //$NON-NLS-1$
public static final String ASSIGN_KEY = ROOT+"rAssignment"; //$NON-NLS-1$
public static final String ASSIGN_SUB_EQUAL_KEY = ASSIGN_KEY + ".Equalsign"; //$NON-NLS-1$
public static final String FLOWCONTROL_KEY = ROOT+"rFlowcontrol"; //$NON-NLS-1$
public static final String OP_KEY = ROOT+"rOtherOperators"; //$NON-NLS-1$
public static final String OP_SUB_LOGICAL_KEY = OP_KEY + ".Logical"; //$NON-NLS-1$
public static final String OP_SUB_RELATIONAL_KEY = OP_KEY + ".Relational"; //$NON-NLS-1$
public static final String OP_SUB_USERDEFINED_KEY = OP_KEY + ".Userdefined"; //$NON-NLS-1$
public static final String COMMENT_KEY = ROOT+"rComment"; //$NON-NLS-1$
public static final String TASK_TAG_KEY = ROOT+"taskTag"; //$NON-NLS-1$
public static final String ROXYGEN_KEY = ROOT + "rRoxygen"; //$NON-NLS-1$
public static final String ROXYGEN_TAG_KEY = ROOT + "rRoxygenTag"; //$NON-NLS-1$
public static final String UNDEFINED_KEY = ROOT+"rUndefined"; //$NON-NLS-1$
}