/******************************************************************************
* Copyright (C) 2009-2012 Fabio Zadrozny
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Fabio Zadrozny <fabiofz@gmail.com> - initial API and implementation
******************************************************************************/
package org.python.pydev.parser.grammarcommon;
import java.lang.reflect.Field;
/**
* With this class we're able to get constants from a class (note, to
* recreate this code, the make_replace.py must be run, as it's COG-generated)
*/
public abstract class AbstractTokenManagerWithConstants {
@SuppressWarnings("rawtypes")
protected abstract Class getConstantsClass();
@SuppressWarnings("rawtypes")
protected final int getFromConstants(String constant) {
try {
Class c = getConstantsClass();
Field declaredField = c.getDeclaredField(constant);
return declaredField.getInt(this);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
protected AbstractTokenManagerWithConstants() {
/*[[[cog
import cog
names = [
"EOF",
"SPACE" ,
"CONTINUATION" ,
"NEWLINE1" ,
"NEWLINE" ,
"NEWLINE2" ,
"CRLF1" ,
"DEDENT" ,
"INDENT" ,
"TRAILING_COMMENT" ,
"SINGLE_LINE_COMMENT" ,
"LPAREN" ,
"RPAREN" ,
"LBRACE" ,
"RBRACE" ,
"LBRACKET",
"RBRACKET" ,
"SEMICOLON" ,
"COMMA" ,
"DOT" ,
"COLON",
"PLUS" ,
"MINUS" ,
"MULTIPLY" ,
"DIVIDE" ,
"FLOORDIVIDE" ,
"POWER" ,
"LSHIFT" ,
"RSHIFT" ,
"MODULO" ,
"NOT" ,
"XOR" ,
"OR" ,
"AND" ,
"EQUAL",
"GREATER" ,
"LESS" ,
"EQEQUAL" ,
"EQLESS" ,
"EQGREATER" ,
"NOTEQUAL" ,
"PLUSEQ" ,
"MINUSEQ" ,
"MULTIPLYEQ" ,
"DIVIDEEQ" ,
"FLOORDIVIDEEQ" ,
"MODULOEQ" ,
"ANDEQ" ,
"OREQ" ,
"XOREQ" ,
"LSHIFTEQ" ,
"RSHIFTEQ" ,
"POWEREQ" ,
"OR_BOOL" ,
"AND_BOOL" ,
"NOT_BOOL" ,
"IS" ,
"IN" ,
"LAMBDA" ,
"IF" ,
"ELSE",
"ELIF" ,
"WHILE" ,
"FOR" ,
"TRY" ,
"EXCEPT" ,
"DEF" ,
"CLASS" ,
"FINALLY",
"PASS" ,
"BREAK" ,
"CONTINUE" ,
"RETURN" ,
"YIELD" ,
"IMPORT" ,
"FROM" ,
"DEL" ,
"RAISE",
"GLOBAL",
#"NONLOCAL" , --not available for all
"ASSERT" ,
#"AS" , --not available for all
#"WITH", --not available for all
#"FALSE", --not available for all
#"TRUE" , --not available for all
#"NONE" , --not available for all
"AT" ,
"NAME",
"LETTER" ,
"DECNUMBER" ,
"HEXNUMBER" ,
"OCTNUMBER" ,
"FLOAT" ,
"COMPLEX",
"EXPONENT",
"DIGIT" ,
"SINGLE_STRING" ,
"SINGLE_STRING2" ,
"TRIPLE_STRING" ,
"TRIPLE_STRING2" ,
#--not available for all
#"SINGLE_BSTRING" ,
#"SINGLE_BSTRING2" ,
#"TRIPLE_BSTRING" ,
#"TRIPLE_BSTRING2" ,
]
lexer_names=[
"DEFAULT" ,
"FORCE_NEWLINE1" ,
"FORCE_NEWLINE2" ,
"INDENTING" ,
"INDENTATION_UNCHANGED" ,
"UNREACHABLE" ,
"IN_STRING11" ,
"IN_STRING21" ,
"IN_STRING13" ,
"IN_STRING23" ,
#--not available for all
#"IN_BSTRING11" ,
#"IN_BSTRING21" ,
#"IN_BSTRING13" ,
#"IN_BSTRING23" ,
#"IN_STRING1NLC" ,
#"IN_STRING2NLC" ,
#"IN_BSTRING1NLC" ,
#"IN_BSTRING2NLC" ,
]
def GetTitles(name):
as_title = name.title().replace('_', '')
as_title_1st_lower = as_title[0].lower()+as_title[1:]
return as_title, as_title_1st_lower
def WriteAssign(name, is_lexer=False):
as_title, as_title_1st_lower = GetTitles(name)
if not is_lexer:
cog.outl("%sId = getFromConstants(\"%s\");" % (as_title_1st_lower, name))
else:
cog.outl("lexer%sId = getFromConstants(\"%s\");" % (as_title, name))
def WriteField(name, is_lexer=False):
as_title, as_title_1st_lower = GetTitles(name)
if not is_lexer:
cog.outl("private final int %sId;" % (as_title_1st_lower))
else:
cog.outl("private final int lexer%sId;" % (as_title))
def WriteGetter(name, is_lexer=False):
as_title, as_title_1st_lower = GetTitles(name)
if not is_lexer:
cog.outl("public final int get%sId(){return %sId;}" % (as_title, as_title_1st_lower))
else:
cog.outl("public final int getLexer%sId(){return lexer%sId;}" % (as_title, as_title))
#finish the constructor
for name in names:
WriteAssign(name)
for name in lexer_names:
WriteAssign(name, True)
cog.outl("}")
cog.outl("")
cog.outl("//Fields ----------")
for name in names:
WriteField(name)
for name in lexer_names:
WriteField(name, True)
cog.outl("")
cog.outl("//Getters ----------")
for name in names:
WriteGetter(name)
for name in lexer_names:
WriteGetter(name, True)
]]]*/
eofId = getFromConstants("EOF");
spaceId = getFromConstants("SPACE");
continuationId = getFromConstants("CONTINUATION");
newline1Id = getFromConstants("NEWLINE1");
newlineId = getFromConstants("NEWLINE");
newline2Id = getFromConstants("NEWLINE2");
crlf1Id = getFromConstants("CRLF1");
dedentId = getFromConstants("DEDENT");
indentId = getFromConstants("INDENT");
trailingCommentId = getFromConstants("TRAILING_COMMENT");
singleLineCommentId = getFromConstants("SINGLE_LINE_COMMENT");
lparenId = getFromConstants("LPAREN");
rparenId = getFromConstants("RPAREN");
lbraceId = getFromConstants("LBRACE");
rbraceId = getFromConstants("RBRACE");
lbracketId = getFromConstants("LBRACKET");
rbracketId = getFromConstants("RBRACKET");
semicolonId = getFromConstants("SEMICOLON");
commaId = getFromConstants("COMMA");
dotId = getFromConstants("DOT");
colonId = getFromConstants("COLON");
plusId = getFromConstants("PLUS");
minusId = getFromConstants("MINUS");
multiplyId = getFromConstants("MULTIPLY");
divideId = getFromConstants("DIVIDE");
floordivideId = getFromConstants("FLOORDIVIDE");
powerId = getFromConstants("POWER");
lshiftId = getFromConstants("LSHIFT");
rshiftId = getFromConstants("RSHIFT");
moduloId = getFromConstants("MODULO");
notId = getFromConstants("NOT");
xorId = getFromConstants("XOR");
orId = getFromConstants("OR");
andId = getFromConstants("AND");
equalId = getFromConstants("EQUAL");
greaterId = getFromConstants("GREATER");
lessId = getFromConstants("LESS");
eqequalId = getFromConstants("EQEQUAL");
eqlessId = getFromConstants("EQLESS");
eqgreaterId = getFromConstants("EQGREATER");
notequalId = getFromConstants("NOTEQUAL");
pluseqId = getFromConstants("PLUSEQ");
minuseqId = getFromConstants("MINUSEQ");
multiplyeqId = getFromConstants("MULTIPLYEQ");
divideeqId = getFromConstants("DIVIDEEQ");
floordivideeqId = getFromConstants("FLOORDIVIDEEQ");
moduloeqId = getFromConstants("MODULOEQ");
andeqId = getFromConstants("ANDEQ");
oreqId = getFromConstants("OREQ");
xoreqId = getFromConstants("XOREQ");
lshifteqId = getFromConstants("LSHIFTEQ");
rshifteqId = getFromConstants("RSHIFTEQ");
powereqId = getFromConstants("POWEREQ");
orBoolId = getFromConstants("OR_BOOL");
andBoolId = getFromConstants("AND_BOOL");
notBoolId = getFromConstants("NOT_BOOL");
isId = getFromConstants("IS");
inId = getFromConstants("IN");
lambdaId = getFromConstants("LAMBDA");
ifId = getFromConstants("IF");
elseId = getFromConstants("ELSE");
elifId = getFromConstants("ELIF");
whileId = getFromConstants("WHILE");
forId = getFromConstants("FOR");
tryId = getFromConstants("TRY");
exceptId = getFromConstants("EXCEPT");
defId = getFromConstants("DEF");
classId = getFromConstants("CLASS");
finallyId = getFromConstants("FINALLY");
passId = getFromConstants("PASS");
breakId = getFromConstants("BREAK");
continueId = getFromConstants("CONTINUE");
returnId = getFromConstants("RETURN");
yieldId = getFromConstants("YIELD");
importId = getFromConstants("IMPORT");
fromId = getFromConstants("FROM");
delId = getFromConstants("DEL");
raiseId = getFromConstants("RAISE");
globalId = getFromConstants("GLOBAL");
assertId = getFromConstants("ASSERT");
atId = getFromConstants("AT");
nameId = getFromConstants("NAME");
letterId = getFromConstants("LETTER");
decnumberId = getFromConstants("DECNUMBER");
hexnumberId = getFromConstants("HEXNUMBER");
octnumberId = getFromConstants("OCTNUMBER");
floatId = getFromConstants("FLOAT");
complexId = getFromConstants("COMPLEX");
exponentId = getFromConstants("EXPONENT");
digitId = getFromConstants("DIGIT");
singleStringId = getFromConstants("SINGLE_STRING");
singleString2Id = getFromConstants("SINGLE_STRING2");
tripleStringId = getFromConstants("TRIPLE_STRING");
tripleString2Id = getFromConstants("TRIPLE_STRING2");
lexerDefaultId = getFromConstants("DEFAULT");
lexerForceNewline1Id = getFromConstants("FORCE_NEWLINE1");
lexerForceNewline2Id = getFromConstants("FORCE_NEWLINE2");
lexerIndentingId = getFromConstants("INDENTING");
lexerIndentationUnchangedId = getFromConstants("INDENTATION_UNCHANGED");
lexerUnreachableId = getFromConstants("UNREACHABLE");
lexerInString11Id = getFromConstants("IN_STRING11");
lexerInString21Id = getFromConstants("IN_STRING21");
lexerInString13Id = getFromConstants("IN_STRING13");
lexerInString23Id = getFromConstants("IN_STRING23");
}
//Fields ----------
private final int eofId;
private final int spaceId;
private final int continuationId;
private final int newline1Id;
private final int newlineId;
private final int newline2Id;
private final int crlf1Id;
private final int dedentId;
private final int indentId;
private final int trailingCommentId;
private final int singleLineCommentId;
private final int lparenId;
private final int rparenId;
private final int lbraceId;
private final int rbraceId;
private final int lbracketId;
private final int rbracketId;
private final int semicolonId;
private final int commaId;
private final int dotId;
private final int colonId;
private final int plusId;
private final int minusId;
private final int multiplyId;
private final int divideId;
private final int floordivideId;
private final int powerId;
private final int lshiftId;
private final int rshiftId;
private final int moduloId;
private final int notId;
private final int xorId;
private final int orId;
private final int andId;
private final int equalId;
private final int greaterId;
private final int lessId;
private final int eqequalId;
private final int eqlessId;
private final int eqgreaterId;
private final int notequalId;
private final int pluseqId;
private final int minuseqId;
private final int multiplyeqId;
private final int divideeqId;
private final int floordivideeqId;
private final int moduloeqId;
private final int andeqId;
private final int oreqId;
private final int xoreqId;
private final int lshifteqId;
private final int rshifteqId;
private final int powereqId;
private final int orBoolId;
private final int andBoolId;
private final int notBoolId;
private final int isId;
private final int inId;
private final int lambdaId;
private final int ifId;
private final int elseId;
private final int elifId;
private final int whileId;
private final int forId;
private final int tryId;
private final int exceptId;
private final int defId;
private final int classId;
private final int finallyId;
private final int passId;
private final int breakId;
private final int continueId;
private final int returnId;
private final int yieldId;
private final int importId;
private final int fromId;
private final int delId;
private final int raiseId;
private final int globalId;
private final int assertId;
private final int atId;
private final int nameId;
private final int letterId;
private final int decnumberId;
private final int hexnumberId;
private final int octnumberId;
private final int floatId;
private final int complexId;
private final int exponentId;
private final int digitId;
private final int singleStringId;
private final int singleString2Id;
private final int tripleStringId;
private final int tripleString2Id;
private final int lexerDefaultId;
private final int lexerForceNewline1Id;
private final int lexerForceNewline2Id;
private final int lexerIndentingId;
private final int lexerIndentationUnchangedId;
private final int lexerUnreachableId;
private final int lexerInString11Id;
private final int lexerInString21Id;
private final int lexerInString13Id;
private final int lexerInString23Id;
//Getters ----------
public final int getEofId(){return eofId;}
public final int getSpaceId(){return spaceId;}
public final int getContinuationId(){return continuationId;}
public final int getNewline1Id(){return newline1Id;}
public final int getNewlineId(){return newlineId;}
public final int getNewline2Id(){return newline2Id;}
public final int getCrlf1Id(){return crlf1Id;}
public final int getDedentId(){return dedentId;}
public final int getIndentId(){return indentId;}
public final int getTrailingCommentId(){return trailingCommentId;}
public final int getSingleLineCommentId(){return singleLineCommentId;}
public final int getLparenId(){return lparenId;}
public final int getRparenId(){return rparenId;}
public final int getLbraceId(){return lbraceId;}
public final int getRbraceId(){return rbraceId;}
public final int getLbracketId(){return lbracketId;}
public final int getRbracketId(){return rbracketId;}
public final int getSemicolonId(){return semicolonId;}
public final int getCommaId(){return commaId;}
public final int getDotId(){return dotId;}
public final int getColonId(){return colonId;}
public final int getPlusId(){return plusId;}
public final int getMinusId(){return minusId;}
public final int getMultiplyId(){return multiplyId;}
public final int getDivideId(){return divideId;}
public final int getFloordivideId(){return floordivideId;}
public final int getPowerId(){return powerId;}
public final int getLshiftId(){return lshiftId;}
public final int getRshiftId(){return rshiftId;}
public final int getModuloId(){return moduloId;}
public final int getNotId(){return notId;}
public final int getXorId(){return xorId;}
public final int getOrId(){return orId;}
public final int getAndId(){return andId;}
public final int getEqualId(){return equalId;}
public final int getGreaterId(){return greaterId;}
public final int getLessId(){return lessId;}
public final int getEqequalId(){return eqequalId;}
public final int getEqlessId(){return eqlessId;}
public final int getEqgreaterId(){return eqgreaterId;}
public final int getNotequalId(){return notequalId;}
public final int getPluseqId(){return pluseqId;}
public final int getMinuseqId(){return minuseqId;}
public final int getMultiplyeqId(){return multiplyeqId;}
public final int getDivideeqId(){return divideeqId;}
public final int getFloordivideeqId(){return floordivideeqId;}
public final int getModuloeqId(){return moduloeqId;}
public final int getAndeqId(){return andeqId;}
public final int getOreqId(){return oreqId;}
public final int getXoreqId(){return xoreqId;}
public final int getLshifteqId(){return lshifteqId;}
public final int getRshifteqId(){return rshifteqId;}
public final int getPowereqId(){return powereqId;}
public final int getOrBoolId(){return orBoolId;}
public final int getAndBoolId(){return andBoolId;}
public final int getNotBoolId(){return notBoolId;}
public final int getIsId(){return isId;}
public final int getInId(){return inId;}
public final int getLambdaId(){return lambdaId;}
public final int getIfId(){return ifId;}
public final int getElseId(){return elseId;}
public final int getElifId(){return elifId;}
public final int getWhileId(){return whileId;}
public final int getForId(){return forId;}
public final int getTryId(){return tryId;}
public final int getExceptId(){return exceptId;}
public final int getDefId(){return defId;}
public final int getClassId(){return classId;}
public final int getFinallyId(){return finallyId;}
public final int getPassId(){return passId;}
public final int getBreakId(){return breakId;}
public final int getContinueId(){return continueId;}
public final int getReturnId(){return returnId;}
public final int getYieldId(){return yieldId;}
public final int getImportId(){return importId;}
public final int getFromId(){return fromId;}
public final int getDelId(){return delId;}
public final int getRaiseId(){return raiseId;}
public final int getGlobalId(){return globalId;}
public final int getAssertId(){return assertId;}
public final int getAtId(){return atId;}
public final int getNameId(){return nameId;}
public final int getLetterId(){return letterId;}
public final int getDecnumberId(){return decnumberId;}
public final int getHexnumberId(){return hexnumberId;}
public final int getOctnumberId(){return octnumberId;}
public final int getFloatId(){return floatId;}
public final int getComplexId(){return complexId;}
public final int getExponentId(){return exponentId;}
public final int getDigitId(){return digitId;}
public final int getSingleStringId(){return singleStringId;}
public final int getSingleString2Id(){return singleString2Id;}
public final int getTripleStringId(){return tripleStringId;}
public final int getTripleString2Id(){return tripleString2Id;}
public final int getLexerDefaultId(){return lexerDefaultId;}
public final int getLexerForceNewline1Id(){return lexerForceNewline1Id;}
public final int getLexerForceNewline2Id(){return lexerForceNewline2Id;}
public final int getLexerIndentingId(){return lexerIndentingId;}
public final int getLexerIndentationUnchangedId(){return lexerIndentationUnchangedId;}
public final int getLexerUnreachableId(){return lexerUnreachableId;}
public final int getLexerInString11Id(){return lexerInString11Id;}
public final int getLexerInString21Id(){return lexerInString21Id;}
public final int getLexerInString13Id(){return lexerInString13Id;}
public final int getLexerInString23Id(){return lexerInString23Id;}
//[[[end]]]
}