package com.hundsun.ares.studio.cres.extend.ui.text.c; 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 CRuleBasedPartitionScanner 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 CRuleBasedPartitionScanner() { IToken comment = new Token(HS_COMMENT); IToken string = new Token(HS_STRING); IToken charactor = new Token(HS_CHARACTOR); IPredicateRule[] rules = new IPredicateRule[4]; rules[0] = new EndOfLineRule("//", comment); rules[1] = new MultiLineRule("/*", "*/", comment); rules[2] = new SingleLineRule("\"", "\"", string); rules[3] = new SingleLineRule("\'", "\'", charactor); setPredicateRules(rules); } }