token = VARIABLE;
token = Token.KEYWORD2;
	public Token markTokens(Segment line, int lineIndex)	{		lastToken = null;		String token = null;		int offset = line.offset;		int lastOffset = offset;		int length = line.count + offset;loop:		for(int i = line.offset; i < length; i++)		{			switch(line.array[i])			{			case '%':				if(token == null)				{					addToken(i - lastOffset,null);					lastOffset = i;					if(length - i <= 3 || line.array[i+2]					   == ' ')					{						addToken(2,VARIABLE);						i++;						lastOffset = i + 1;					}					else						token = VARIABLE;				}				else if(token == VARIABLE)				{					token = null;					addToken((i+1) - lastOffset,VARIABLE);					lastOffset = i + 1;				}				break;			case '"':				if(token == null)				{					token = QUOTE;					addToken(i - lastOffset,null);					lastOffset = i;				}				else if(token == QUOTE)				{					token = null;					addToken((i+1) - lastOffset,QUOTE);					lastOffset = i + 1;				}				break;			case '=':				if(token == null && lastOffset == offset)				{					addToken(i - lastOffset,null);					lastOffset = i;				}				break;			case ':':				if(lastOffset == offset && token == null)				{					addToken(length - offset,LABEL);					lastOffset = length;					break loop;				}				break;			case ' ':				if(lastOffset == offset)				{					if(jEdit.regionMatches(true,line,							       i - 3,"rem"))					{						addToken(length - lastOffset,							 COMMENT);						lastOffset = length;						break loop;					}					else if(token == null)					{						addToken(i - lastOffset,							 COMMAND);						lastOffset = i;					}				}				break;			}		}		if(lastOffset != length)			addToken(length - lastOffset,lastOffset == offset ?				COMMAND : token);		if(lastToken != null)		{			lastToken.nextValid = false;			return firstToken;		}		else			return null;	}