/usr/include/srchilite/highlightrulefactory.h is in libsource-highlight-dev 3.1.6-2ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 | //
// Author: Lorenzo Bettini <http://www.lorenzobettini.it>, (C) 2004-2008
//
// Copyright: See COPYING file that comes with this distribution
//
#ifndef HIGHLIGHTRULEFACTORY_H_
#define HIGHLIGHTRULEFACTORY_H_
#include <list>
#include <string>
namespace srchilite {
typedef std::list<std::string> WordList;
typedef std::list<std::string> ElemNameList;
class HighlightRule;
/**
* Abstract factory for highlighting rules
*/
class HighlightRuleFactory {
public:
HighlightRuleFactory();
virtual ~HighlightRuleFactory();
/**
* Creates a generic highlighting rule
* @param name the element name represented by the rule
* @param the string representation
* @return the generated rule
*/
virtual HighlightRule *createSimpleRule(const std::string &name,
const std::string &s) = 0;
/**
* Creates a rule for detecting a list of specific words, i.e., isolated
* from other parts by a space or a delimiter (e.g., if "class" is considered as
* a word, then it will not match the substring "class" in "myclass")
* @param name the element name represented by the rule
* @param list the list of words to detect
* @param caseSensitive if the characters in the expression must be interpreted
* case sensitive
* @return the generated rule
*/
virtual HighlightRule *createWordListRule(const std::string &name,
const WordList &list, bool caseSensitve = true) = 0;
/**
* Creates a rule for detecting a list of specific expressions
* @param name the element name represented by the rule
* @param list the list of words to detect
* @param caseSensitive if the characters in the expression must be interpreted
* case sensitive
* @return the generated rule
*/
virtual HighlightRule *createListRule(const std::string &name,
const WordList &list, bool caseSensitve = true) = 0;
/**
* Creates a rule for matching a delimited string (spanning a single line)
* @param name the element name represented by the rule
* @param start the string determining the start of the sequence
* @param end the string determining the end of the sequence
* @param escape the string the escape sequence (typically a char, e.g., \)
* @param nested whether the delimiters can be nested
* @return the generated rule
*/
virtual HighlightRule *createLineRule(const std::string &name,
const std::string &start, const std::string &end,
const std::string &escape, bool nested) = 0;
/**
* Creates a rule for matching a delimited string (possibly spanning more than one line)
* @param name the element name represented by the rule
* @param start the string determining the start of the sequence
* @param end the string determining the end of the sequence
* @param escape the string the escape sequence (typically a char, e.g., \)
* @param nested whether the delimiters can be nested
* @return the generated rule
*/
virtual HighlightRule *createMultiLineRule(const std::string &name,
const std::string &start, const std::string &end,
const std::string &escape, bool nested) = 0;
/**
* Creates a rule for matching many element names, each represented by a
* subexpression (the number of subexpression must be equal to the size of the
* nameList)
* @param nameList the list of element names represented by the rule
* @param rep the string representation of the rule
* @return the generated rule
*/
virtual HighlightRule *createCompoundRule(const ElemNameList &nameList,
const std::string &rep) = 0;
};
}
#endif /*HIGHLIGHTRULEFACTORY_H_*/
|