* Contributors:
* Igor Malinin - initial contribution
*
- * $Id: SmartyTagRule.java,v 1.1 2004-09-02 18:25:04 jsurfer Exp $
+ * $Id: SmartyTagRule.java,v 1.3 2006-10-21 23:19:32 pombredanne Exp $
*/
package net.sourceforge.phpdt.smarty.ui.internal.text;
import org.eclipse.jface.text.rules.Token;
/**
- * Rule detecting XML tag brackets and name.
- *
- * @author Igor Malinin
+ * Rule detecting smarty tags
*/
public class SmartyTagRule implements IRule {
- private IToken token;
+ private IToken token;
- public SmartyTagRule(IToken token) {
- this.token = token;
- }
+ public SmartyTagRule(IToken token) {
+ this.token = token;
+ }
- public IToken evaluate(ICharacterScanner scanner) {
- int ch = scanner.read();
- if (ch == '}') {
- return token;
- }
- if (ch == '/') {
- ch = scanner.read();
- if (ch == '}') {
- return token;
- }
+ public IToken evaluate(ICharacterScanner scanner) {
+ int ch = scanner.read();
+ if (ch == '}') {
+ return token;
+ }
+ if (ch == '/') {
+ ch = scanner.read();
+ if (ch == '}') {
+ return token;
+ }
- scanner.unread();
- scanner.unread();
- return Token.UNDEFINED;
- }
- if (ch == '{') {
- ch = scanner.read();
- if (ch == '/') {
- ch = scanner.read();
- }
- loop: while (true) {
- switch (ch) {
- case ICharacterScanner.EOF:
- case 0x09:
- case 0x0A:
- case 0x0D:
- case 0x20:
- scanner.unread();
- break loop;
- case '}':
- break loop;
- }
+ scanner.unread();
+ scanner.unread();
+ return Token.UNDEFINED;
+ }
+ if (ch == '{') {
+ ch = scanner.read();
+ if (ch == '/') {
+ ch = scanner.read();
+ }
+ loop: while (true) {
+ switch (ch) {
+ case ICharacterScanner.EOF:
+ case 0x09:
+ case 0x0A:
+ case 0x0D:
+ case 0x20:
+ scanner.unread();
+ break loop;
+ case '}':
+ break loop;
+ }
- ch = scanner.read();
- }
- return token;
- }
- scanner.unread();
- return Token.UNDEFINED;
- }
+ ch = scanner.read();
+ }
+ return token;
+ }
+ scanner.unread();
+ return Token.UNDEFINED;
+ }
}
\ No newline at end of file