addToken(info,len,Token.DIGIT);
info.addToken(len,Token.DIGIT);
	private void markKeyword(LineInfo info, Segment line, int start, int end)	{		KeywordMap keywords = context.rules.getKeywords();		int len = end - start;		// do digits		if(context.rules.getHighlightDigits())		{			boolean digit = true;			char[] array = line.array;			boolean octal = false;			boolean hex = false;			boolean seenSomeDigits = false;loop:			for(int i = 0; i < len; i++)			{				char ch = array[start+i];				switch(ch)				{				case '0':					if(i == 0)						octal = true;					seenSomeDigits = true;					continue loop;				case '1': case '2': case '3':				case '4': case '5': case '6':				case '7': case '8': case '9':					seenSomeDigits = true;					continue loop;				case 'x': case 'X':					if(octal && i == 1)					{						hex = true;						continue loop;					}					else						break;				case 'd': case 'D':					if(hex)						continue loop;					else						break;				case 'f': case 'F':					if(hex || seenSomeDigits)						continue loop;					else						break;				case 'l': case 'L':					if(seenSomeDigits)						continue loop;					else						break;				case 'e': case 'E':					if(seenSomeDigits)						continue loop;					else						break;				case 'a': case 'A': case 'b': case 'B':				case 'c': case 'C':					if(hex)						continue loop;					else						break;				case '.': case '-':					// normally, this shouldn't be					// necessary, because most modes					// define '.' and '-' SEQs. However,					// in props mode, we can't define					// such a SEQ because it would					// break the AT_LINE_START					// MARK_PREVIOUS rule.					continue loop;				default:					break;				}				// if we ended up here, then we have found a				// non-digit character.				digit = false;				break loop;			}			// if we got this far with digit = true, then the keyword			// consists of all digits. Add it as such.			if(digit)			{				if(start != lastOffset)				{					addToken(info,start - lastOffset,						context.rules.getDefault());				}				addToken(info,len,Token.DIGIT);				lastKeyword = lastOffset = end;				return;			}		}		if(keywords != null)		{			byte id = keywords.lookup(line, start, len);			if(id != Token.NULL)			{				if(start != lastOffset)				{					addToken(info,start - lastOffset,						context.rules.getDefault());				}				addToken(info,len, id);				lastKeyword = lastOffset = end;			}		}	}