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 }