package com.hundsun.ares.studio.cres.extend.ui.text; import org.eclipse.jface.text.rules.EndOfLineRule; import org.eclipse.jface.text.rules.IPredicateRule; import org.eclipse.jface.text.rules.IToken; import org.eclipse.jface.text.rules.MultiLineRule; import org.eclipse.jface.text.rules.RuleBasedPartitionScanner; import org.eclipse.jface.text.rules.SingleLineRule; import org.eclipse.jface.text.rules.Token; public class CRESPartitionScanner extends RuleBasedPartitionScanner { public static final String HS_STRING = "__hs_string"; public static final String HS_COMMENT = "__hs_comment"; public static final String HS_CHARACTOR = "__hs_charactor"; public static final String HS_MACRO = "__hs_macro"; public CRESPartitionScanner() { IToken comment = new Token(HS_COMMENT); IToken macro = new Token(HS_MACRO); IToken string = new Token(HS_STRING); IToken charactor = new Token(HS_CHARACTOR); IPredicateRule[] rules = new IPredicateRule[6]; rules[0] = new EndOfLineRule("//", comment); rules[1] = new MultiLineRule("/*", "*/", comment); rules[2] = new MultiLineRule("[", "]", macro); rules[3] = new SingleLineRule("\"", "\"", string); rules[4] = new SingleLineRule("\'", "\'", charactor); rules[5] = new EndOfLineRule("--", comment); setPredicateRules(rules); } }