/**
* Copyright (c) 2005-2011 by Appcelerator, Inc. All Rights Reserved.
* Licensed under the terms of the Eclipse Public License (EPL).
* Please see the license.txt included with this distribution for details.
* Any modifications to this file must keep this entire header intact.
*/
package org.python.pydev.django_templates.comon.parsing;
import org.python.pydev.django_templates.common.parsing.lexer.DjangoTemplatesTokens;
import com.aptana.editor.common.parsing.CompositeTokenScanner;
import com.aptana.editor.common.parsing.IScannerSwitchStrategy;
import com.aptana.editor.common.parsing.ScannerSwitchStrategy;
public class DjScanner {
private static final String[] DJ_ENTER_TOKENS = new String[] { DjangoTemplatesTokens
.getTokenName(DjangoTemplatesTokens.DJ_START) };
private static final String[] DJ_EXIT_TOKENS = new String[] { DjangoTemplatesTokens
.getTokenName(DjangoTemplatesTokens.DJ_END) };
private static final IScannerSwitchStrategy DJ_STRATEGY = new ScannerSwitchStrategy(DJ_ENTER_TOKENS, DJ_EXIT_TOKENS);
private boolean isInDj;
public static final IScannerSwitchStrategy[] SWITCH_STRATEGY = new IScannerSwitchStrategy[] { DJ_STRATEGY };
public Short getTokenType(CompositeTokenScanner scanner, Object data) {
IScannerSwitchStrategy strategy = scanner.getCurrentSwitchStrategy();
if (strategy == DJ_STRATEGY) {
if (!isInDj) {
isInDj = true;
}
return DjangoTemplatesTokens.DJ_START;
}
if (strategy == null && isInDj) {
isInDj = false;
return DjangoTemplatesTokens.DJ_END;
}
return null;
}
}