View Javadoc

1   /*
2    *  
3    *  Fosstrak LLRP Commander (www.fosstrak.org)
4    * 
5    *  Copyright (C) 2008 ETH Zurich
6    *
7    *  This program is free software: you can redistribute it and/or modify
8    *  it under the terms of the GNU General Public License as published by
9    *  the Free Software Foundation, either version 3 of the License, or
10   *  (at your option) any later version.
11   *
12   *  This program is distributed in the hope that it will be useful,
13   *  but WITHOUT ANY WARRANTY; without even the implied warranty of
14   *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15   *  GNU General Public License for more details.
16   *
17   *  You should have received a copy of the GNU General Public License
18   *  along with this program.  If not, see <http://www.gnu.org/licenses/> 
19   *
20   */
21  
22  package org.fosstrak.llrp.commander.editors;
23  
24  import org.eclipse.jface.text.*;
25  import org.eclipse.jface.text.rules.*;
26  
27  /**
28  * Rule-based XML scanner. The scanner adds rules to detect double-quotes, 
29  * single-quotes and white-spaces.
30  * @author zhanghao
31  *
32  */
33  public class XMLTagScanner extends RuleBasedScanner {
34  
35  	public XMLTagScanner(ColorManager manager) {
36  		IToken string =
37  			new Token(
38  				new TextAttribute(manager.getColor(IXMLColorConstants.STRING)));
39  
40  		IRule[] rules = new IRule[3];
41  
42  		// Add rule for double quotes
43  		rules[0] = new SingleLineRule("\"", "\"", string, '\\');
44  		// Add a rule for single quotes
45  		rules[1] = new SingleLineRule("'", "'", string, '\\');
46  		// Add generic whitespace rule.
47  		rules[2] = new WhitespaceRule(new XMLWhitespaceDetector());
48  
49  		setRules(rules);
50  	}
51  }