package com.innovatian.idea.powershell.lang.lexer;
import com.intellij.psi.tree.IElementType;
import com.intellij.psi.tree.TokenSet;
public interface PsTokenTypes {
IElementType WRONG = new PsElementType("wrong token");
IElementType LITERAL = new PsElementType("Literal");
/* **************************************************************************************************
* Whitespaces & NewLines
* ****************************************************************************************************/
IElementType WS = new PsElementType("white space");
IElementType NEWLINE = new PsElementType("new line");
IElementType NLS = new PsElementType("new line spaces");
/* **************************************************************************************************
* Comments
* ****************************************************************************************************/
IElementType SL_COMMENT = new PsElementType("line comment");
IElementType ML_COMMENT = new PsElementType("block comment");
/* **************************************************************************************************
* Identifiers
* ****************************************************************************************************/
IElementType IDENT = new PsElementType("identifier");
IElementType IDENT_NOBUCKS = new PsElementType("identifier");
IElementType CMDLET = new PsElementType("cmdlet");
IElementType ALIAS = new PsElementType("alias");
/* **************************************************************************************************
* Integers & floats
* ****************************************************************************************************/
IElementType NUMBER = new PsElementType("number");
/* **************************************************************************************************
* Strings & regular expressions
* ****************************************************************************************************/
IElementType STRING_LITERAL = new PsElementType("string");
IElementType EXPSTRING_LITERAL = new PsElementType("string");
TokenSet STRING_LITERAL_SET = TokenSet.create(STRING_LITERAL, EXPSTRING_LITERAL);
IElementType PSSTRING_INJECTION = new PsElementType("PsString injection");
IElementType UNTERMINATED_STRING = new PsElementType("unterminated string");
IElementType EXPSTRING_BEGIN = new PsElementType("PsString begin");
IElementType EXPSTRING_CONTENT = new PsElementType("PsString content");
IElementType EXPSTRING_END = new PsElementType("PsString end");
/* **************************************************************************************************
* Common tokens: operators, braces etc.
* ****************************************************************************************************/
IElementType DIV = new PsElementType("/");
IElementType MULT = new PsElementType("*");
IElementType LPAREN = new PsElementType("(");
IElementType RPAREN = new PsElementType(")");
IElementType LBRACK = new PsElementType("[");
IElementType RBRACK = new PsElementType("]");
IElementType LCURLY = new PsElementType("{");
IElementType RCURLY = new PsElementType("}");
IElementType COLON = new PsElementType(":");
IElementType COMMA = new PsElementType(",");
IElementType DOT = new PsElementType(".");
IElementType SEMI = new PsElementType(";");
IElementType EQ = new PsElementType("==");
IElementType PLUS = new PsElementType("+");
IElementType MINUS = new PsElementType("-");
IElementType GE = new PsElementType(">=");
IElementType GT = new PsElementType(">");
IElementType EXP = new PsElementType("^");
IElementType LE = new PsElementType("<=");
IElementType LT = new PsElementType("<");
IElementType ELLIPSIS = new PsElementType("...");
IElementType RANGE = new PsElementType("..");
IElementType GETN = new PsElementType("#");
IElementType MOD = new PsElementType("%");
IElementType DOLLAR = new PsElementType("$");
IElementType IMPLICITVAR = new PsElementType("$__");
IElementType LASTTOKEN = new PsElementType("$$");
/* **************************************************************************************************
* assignment operators
* ****************************************************************************************************/
IElementType ASSIGN = new PsElementType("=");
IElementType ASSIGNPLUS = new PsElementType("+=");
IElementType ASSIGNMINUS = new PsElementType("-=");
IElementType ASSIGNMULT = new PsElementType("*=");
IElementType ASSIGNDIV = new PsElementType("/=");
IElementType ASSIGNMOD = new PsElementType("%=");
/* **************************************************************************************************
* logical operators
* ****************************************************************************************************/
IElementType OPAND = new PsElementType("-and");
IElementType OPOR = new PsElementType("-or");
/* **************************************************************************************************
* bitwise operators
* ****************************************************************************************************/
IElementType BWOPAND = new PsElementType("-band");
IElementType BWOPOR = new PsElementType("-bor");
/* **************************************************************************************************
* redirection operators "2>&1" | ">>" | ">" | "<<" | "<" | ">|" | "2>" | "2>>" | "1>>"
* ****************************************************************************************************/
IElementType ROPOUTFILEOVER = new PsElementType(">");
IElementType ROPOUTFILAPPEND = new PsElementType(">>");
IElementType ROPERRFILEOVER = new PsElementType("2>");
IElementType ROPERRFILEAPPEND = new PsElementType("2>>");
IElementType ROPERRTOSTDOUT = new PsElementType("2>&1");
/* missing "<<" | "<" | ">|" | "1>>" */
/* **************************************************************************************************
* Comparison Operator Token
* ****************************************************************************************************/
IElementType COEQ = new PsElementType("-eq");
IElementType CONE = new PsElementType("-ne");
IElementType COGE = new PsElementType("-ge");
IElementType COGT = new PsElementType("-gt");
IElementType COLT = new PsElementType("-lt");
IElementType COLE = new PsElementType("-le");
IElementType COIEQ = new PsElementType("-ieq");
IElementType COINE = new PsElementType("-ine");
IElementType COIGE = new PsElementType("-ige");
IElementType COIGT = new PsElementType("-igt");
IElementType COILT = new PsElementType("-ilt");
IElementType COILE = new PsElementType("-ile");
IElementType COCEQ = new PsElementType("-ceq");
IElementType COCNE = new PsElementType("-cne");
IElementType COCGE = new PsElementType("-cge");
IElementType COCGT = new PsElementType("-cgt");
IElementType COCLT = new PsElementType("-clt");
IElementType COCLE = new PsElementType("-cle");
IElementType COLIKE = new PsElementType("-like");
IElementType CONOTLIKE = new PsElementType("-notlike");
IElementType COMATCH = new PsElementType("-match");
IElementType CONOTMATCH = new PsElementType("-notmatch");
IElementType COILIKE = new PsElementType("-ilike");
IElementType COINOTLIKE = new PsElementType("-inotlike");
IElementType COIMATCH = new PsElementType("-imatch");
IElementType COINOTMATCH = new PsElementType("-inotmatch");
IElementType COCLIKE = new PsElementType("-clike");
IElementType COCNOTLIKE = new PsElementType("-cnotlike");
IElementType COCMATCH = new PsElementType("-cmatch");
IElementType COCNOTMATCH = new PsElementType("-cnotmatch");
IElementType COCONTAINS = new PsElementType("-contains");
IElementType CONOTCONTAINS = new PsElementType("-notcontains");
IElementType COICONTAINS = new PsElementType("-icontains");
IElementType COINOTCONTAINS = new PsElementType("-inotcontains");
IElementType COCCONTAINS = new PsElementType("-ccontains");
IElementType COCNOTCONTAINS = new PsElementType("-cnotcontains");
IElementType COISNOT = new PsElementType("-isnot");
IElementType COIS = new PsElementType("-is");
IElementType COAS = new PsElementType("-as");
IElementType COREPLACE = new PsElementType("-replace");
IElementType COIREPLACE = new PsElementType("-ireplace");
IElementType COCREPLACE = new PsElementType("-creplace");
/* **************************************************************************************************
* Keywords
* ****************************************************************************************************/
IElementType BEGIN = new PsElementType("begin");
IElementType BREAK = new PsElementType("break");
IElementType CATCH = new PsElementType("catch");
IElementType CONTINUE = new PsElementType("continue");
IElementType DATA = new PsElementType("data");
IElementType DO = new PsElementType("do");
IElementType DYNAMICPARAM = new PsElementType("dynamicparam");
IElementType ELSE = new PsElementType("else");
IElementType ELSEIF = new PsElementType("elseif");
IElementType END = new PsElementType("end");
IElementType EXIT = new PsElementType("exit");
IElementType FILTER = new PsElementType("filter");
IElementType FINALLY = new PsElementType("finally");
IElementType FOR = new PsElementType("for");
IElementType FOREACH = new PsElementType("foreach");
IElementType FROM = new PsElementType("from");
IElementType FUNCTION = new PsElementType("function");
IElementType IF = new PsElementType("if");
IElementType IN = new PsElementType("in");
IElementType PARAM = new PsElementType("param");
IElementType PROCESS = new PsElementType("process");
IElementType RETURN = new PsElementType("return");
IElementType SWITCH = new PsElementType("switch");
IElementType THROW = new PsElementType("throw");
IElementType TRAP = new PsElementType("trap");
IElementType TRY = new PsElementType("try");
IElementType UNTIL = new PsElementType("until");
IElementType WHILE = new PsElementType("while");
}