Source-highlight Library
Public Member Functions | Static Public Member Functions | Private Attributes | Static Private Attributes | List of all members
srchilite::HighlightState Class Reference

Represents a state during the highlighting (e.g., comment state, string state, etc.) More...

#include <highlightstate.h>

Collaboration diagram for srchilite::HighlightState:
Collaboration graph
[legend]

Public Member Functions

  HighlightState (const std::string &e="normal")
 
  HighlightState (const HighlightState &copy)
  Copies all the elements of the highlight state, except for the id: a new id will be used. More...
 
void  addRule (HighlightRulePtr rule)
  Adss a rule to this state. More...
 
HighlightRulePtr  replaceRule (RuleList::size_type index, HighlightRulePtr rule)
  Substitutes the rule at the specified position. More...
 
unsigned int  getId () const
 
const RuleListgetRuleList () const
 
const std::string &  getDefaultElement () const
 
void  setDefaultElement (const std::string &e)
 
bool  findBestMatch (const std::string &s, HighlightToken &token, const MatchingParameters &params) const
  Tries to find the rule that matches best (and first): the first rule with the smallest prefix and longest matching sequence. More...
 
bool  findBestMatch (std::string::const_iterator start, std::string::const_iterator end, HighlightToken &token, const MatchingParameters &params) const
  Tries to find the rule that matches best (and first): the first rule with the smallest prefix and longest matching sequence. More...
 
void  replaceReferences (const ReplacementList &rep)
  Performs replacement of references in the rules of this state. More...
 
bool  getNeedsReferenceReplacement () const
 
void  setNeedsReferenceReplacement (bool b=true)
 
HighlightStatePtr  getOriginalState () const
 
void  setOriginalState (HighlightStatePtr orig)
 

Static Public Member Functions

static bool  betterThan (const HighlightToken &t1, const HighlightToken &t2)
  Whether t1 is better than t2: t1 has a non-longer prefix and a longer matching string (this makes sense only if a string was matched, and in fact this should be used only after having matched something) More...
 

Private Attributes

const unsigned int  id
  the identifier of the state
 
std::string  defaultElement
  the name of the element for strings when no rule matches (default: "normal") for states this should always be "normal" while for environments it should be the same element that represents the new state (e.g., "comment", "string", etc.)
 
  the list of rules of this state
 
  whether one of the contained rules has dynamic references to be replaced
 
  In case this state is a copy of another state, in this field we store the original state.
 

Static Private Attributes

static unsigned int  global_id
  the global counter to assign unique state ids
 

Detailed Description

Represents a state during the highlighting (e.g., comment state, string state, etc.)

Constructor & Destructor Documentation

srchilite::HighlightState::HighlightState ( const std::string &  e = "normal" )
Parameters
e the element for strings when no rule matches (default: "normal")
srchilite::HighlightState::HighlightState ( const HighlightStatecopy )

Copies all the elements of the highlight state, except for the id: a new id will be used.

Parameters
copy

Member Function Documentation

void srchilite::HighlightState::addRule ( HighlightRulePtr  rule )

Adss a rule to this state.

Parameters
rule the rule to add at the end of the list
static bool srchilite::HighlightState::betterThan ( const HighlightTokent1,
const HighlightTokent2 
)
static

Whether t1 is better than t2: t1 has a non-longer prefix and a longer matching string (this makes sense only if a string was matched, and in fact this should be used only after having matched something)

Parameters
t1
t2
Returns
bool srchilite::HighlightState::findBestMatch ( const std::string &  s,
HighlightTokentoken,
const MatchingParametersparams 
) const

Tries to find the rule that matches best (and first): the first rule with the smallest prefix and longest matching sequence.

Parameters
s the string for trying to match the rule
token where results will be inserted, if the rule matched
params additional arguments for the matching
Returns
whether a matching rule was found
bool srchilite::HighlightState::findBestMatch ( std::string::const_iterator  start,
std::string::const_iterator  end,
HighlightTokentoken,
const MatchingParametersparams 
) const

Tries to find the rule that matches best (and first): the first rule with the smallest prefix and longest matching sequence.

Parameters
start the beginning of the string for trying to match the rule
end the beginning of the string for trying to match the rule
token where results will be inserted, if the rule matched
params additional arguments for the matching
Returns
whether a matching rule was found
void srchilite::HighlightState::replaceReferences ( const ReplacementListrep )

Performs replacement of references in the rules of this state.

For each rule that needs replacement, it creates a copy of the rule.

Parameters
the list of values for the replacement; the first element is the value for replacing the first dynamic back reference, and so on. (it should contain 9 possibly empty elements)
HighlightRulePtr srchilite::HighlightState::replaceRule ( RuleList::size_type  index,
HighlightRulePtr  rule 
)

Substitutes the rule at the specified position.

The rule must exit at the specified position.

Parameters
index
rule the new rule
Returns
the old rule

The documentation for this class was generated from the following file:
  • /home/bettini/work/source-highlight/src-highlite/lib/srchilite/highlightstate.h

AltStyle によって変換されたページ (->オリジナル) /