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.rules.*;
25  import org.eclipse.jface.text.*;
26  
27  /**
28   * A <code>RuleBasedScanner</code> for XML text.
29   *
30   * @author Haoning Zhang
31   * @version 1.0
32   */
33  public class XMLScanner extends RuleBasedScanner {
34  	
35  	/**
36  	 * Constructor, which initialize the scanning rules.
37  	 * 
38  	 * @param manager ColorManager instance.
39  	 */
40  	public XMLScanner(ColorManager manager) {
41  		IToken procInstr =
42  			new Token(
43  				new TextAttribute(
44  					manager.getColor(IXMLColorConstants.PROC_INSTR)));
45  
46  		IRule[] rules = new IRule[2];
47  		//Add rule for processing instructions
48  		rules[0] = new SingleLineRule("<?", "?>", procInstr);
49  		// Add generic whitespace rule.
50  		rules[1] = new WhitespaceRule(new XMLWhitespaceDetector());
51  
52  		setRules(rules);
53  	}
54  }