List<IRule> rules = new ArrayList<IRule>();
// Add generic whitespace rule.
rules.add(new WhitespaceRule(new LangWhitespaceDetector()));
IToken tkDefault = getToken(DeeColorPreferences.DEFAULT.key);
IToken tkKeyword = getToken(DeeColorPreferences.KEYWORDS.key);
IToken tkBasics = getToken(DeeColorPreferences.BASICTYPES.key);
IToken tkLiterals = getToken(DeeColorPreferences.LITERALS.key);
// IToken tkOperators = getToken(DeeColorConstants.DEE_OPERATORS);
// Add word rule for keywords, types, and constants.
WordRule wordRule = new WordRule(new JavaWordDetector(), tkDefault);
addWordsFromTokens(wordRule, DeeTokenHelper.keyWords_control, tkKeyword);
addWordsFromTokens(wordRule, DeeTokenHelper.keyWords_nativeTypes, tkBasics);
addWordsFromTokens(wordRule, DeeTokenHelper.keyWords_literalValues, tkLiterals);
rules.add(wordRule);
// These need special treament because of the '!' character
rules.add(new FullPatternRule(tkKeyword, array("!in", "!is"), new JavaWordDetector()));
IToken tkAnnotation = getToken(DeeColorPreferences.ANNOTATIONS.key);
WordRule annotationsRule = new WordRule(new AnnotationsWordDetector(), tkAnnotation);
rules.add(annotationsRule);
setDefaultReturnToken(tkDefault);
return rules;