Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
Référence du modèle de la classe internal::GenericRegex< Encoding, Allocator >

Regular expression engine with subset of ECMAscript grammar. Plus de détails...

#include <arcane/utils/internal/json/rapidjson/internal/regex.h>

+ Graphe de collaboration de internal::GenericRegex< Encoding, Allocator >:

Classes

struct  Frag
 
struct  Range
 
struct  State
 

Types publics

typedef Encoding EncodingType
 
typedef Encoding::Ch Ch
 

Fonctions membres publiques

 GenericRegex (const Ch *source, Allocator *allocator=0)
 
bool IsValid () const
 

Types privés

enum  Operator {
  kZeroOrOne , kZeroOrMore , kOneOrMore , kConcatenation ,
  kAlternation , kLeftParenthesis
}
 

Fonctions membres privées

StateGetState (SizeType index)
 
const StateGetState (SizeType index) const
 
RangeGetRange (SizeType index)
 
const RangeGetRange (SizeType index) const
 
template<typename InputStream >
void Parse (DecodedStream< InputStream, Encoding > &ds)
 
SizeType NewState (SizeType out, SizeType out1, unsigned codepoint)
 
void PushOperand (Stack< Allocator > &operandStack, unsigned codepoint)
 
void ImplicitConcatenation (Stack< Allocator > &atomCountStack, Stack< Allocator > &operatorStack)
 
SizeType Append (SizeType l1, SizeType l2)
 
void Patch (SizeType l, SizeType s)
 
bool Eval (Stack< Allocator > &operandStack, Operator op)
 
bool EvalQuantifier (Stack< Allocator > &operandStack, unsigned n, unsigned m)
 
void CloneTopOperand (Stack< Allocator > &operandStack)
 
template<typename InputStream >
bool ParseUnsigned (DecodedStream< InputStream, Encoding > &ds, unsigned *u)
 
template<typename InputStream >
bool ParseRange (DecodedStream< InputStream, Encoding > &ds, SizeType *range)
 
SizeType NewRange (unsigned codepoint)
 
template<typename InputStream >
bool CharacterEscape (DecodedStream< InputStream, Encoding > &ds, unsigned *escapedCodepoint)
 

Fonctions membres privées statiques

static SizeType Min (SizeType a, SizeType b)
 

Attributs privés

AllocatorownAllocator_
 
Allocatorallocator_
 
Stack< Allocatorstates_
 
Stack< Allocatorranges_
 
SizeType root_
 
SizeType stateCount_
 
SizeType rangeCount_
 
bool anchorBegin_
 
bool anchorEnd_
 

Attributs privés statiques

static const unsigned kAnyCharacterClass = 0xFFFFFFFF
 For '.'.
 
static const unsigned kRangeCharacterClass = 0xFFFFFFFE
 
static const unsigned kRangeNegationFlag = 0x80000000
 
static const unsigned kInfinityQuantifier = ~0u
 

Amis

template<typename , typename >
class GenericRegexSearch
 

Description détaillée

template<typename Encoding, typename Allocator = CrtAllocator>
class internal::GenericRegex< Encoding, Allocator >

Regular expression engine with subset of ECMAscript grammar.

Supported regular expression syntax:

  • ab Concatenation
  • a|b Alternation
  • a? Zero or one
  • a* Zero or more
  • a+ One or more
  • a{3} Exactly 3 times
  • a{3,} At least 3 times
  • a{3,5} 3 to 5 times
  • (ab) Grouping
  • ^a At the beginning
  • a$ At the end
  • . Any character
  • [abc] Character classes
  • [a-c] Character class range
  • [a-z0-9_] Character class combination
  • [^abc] Negated character classes
  • [^a-c] Negated character class range
  • [] Backspace (U+0008)
  • \| \\ ... Escape characters
  • \f Form feed (U+000C)
  • \n Line feed (U+000A)
  • \r Carriage return (U+000D)
  • \t Tab (U+0009)
  • \v Vertical tab (U+000B)
Note
This is a Thompson NFA engine, implemented with reference to Cox, Russ. "Regular Expression Matching Can Be Simple And Fast (but is slow in Java, Perl, PHP, Python, Ruby,...).", https://swtch.com/~rsc/regexp/regexp1.html

Définition à la ligne 111 du fichier regex.h.

Documentation des définitions de type membres

◆ Ch

template<typename Encoding , typename Allocator = CrtAllocator>
typedef Encoding::Ch internal::GenericRegex< Encoding, Allocator >::Ch

Définition à la ligne 114 du fichier regex.h.

◆ EncodingType

template<typename Encoding , typename Allocator = CrtAllocator>
typedef Encoding internal::GenericRegex< Encoding, Allocator >::EncodingType

Définition à la ligne 113 du fichier regex.h.

Documentation des énumérations membres

◆ Operator

template<typename Encoding , typename Allocator = CrtAllocator>
enum internal::GenericRegex::Operator
private

Définition à la ligne 137 du fichier regex.h.

Documentation des constructeurs et destructeur

◆ GenericRegex()

template<typename Encoding , typename Allocator = CrtAllocator>
internal::GenericRegex< Encoding, Allocator >::GenericRegex ( const Ch *  source,
Allocator allocator = 0 
)
inline

Définition à la ligne 117 du fichier regex.h.

◆ ~GenericRegex()

template<typename Encoding , typename Allocator = CrtAllocator>
internal::GenericRegex< Encoding, Allocator >::~GenericRegex ( )
inline

Définition à la ligne 127 du fichier regex.h.

Documentation des fonctions membres

◆ Append()

template<typename Encoding , typename Allocator = CrtAllocator>
SizeType internal::GenericRegex< Encoding, Allocator >::Append ( SizeType  l1,
SizeType  l2 
)
inlineprivate

Définition à la ligne 340 du fichier regex.h.

◆ CharacterEscape()

template<typename Encoding , typename Allocator = CrtAllocator>
template<typename InputStream >
bool internal::GenericRegex< Encoding, Allocator >::CharacterEscape ( DecodedStream< InputStream, Encoding > &  ds,
unsigned *  escapedCodepoint 
)
inlineprivate

Définition à la ligne 563 du fichier regex.h.

◆ CloneTopOperand()

template<typename Encoding , typename Allocator = CrtAllocator>
void internal::GenericRegex< Encoding, Allocator >::CloneTopOperand ( Stack< Allocator > &  operandStack)
inlineprivate

Définition à la ligne 453 du fichier regex.h.

◆ Eval()

template<typename Encoding , typename Allocator = CrtAllocator>
bool internal::GenericRegex< Encoding, Allocator >::Eval ( Stack< Allocator > &  operandStack,
Operator  op 
)
inlineprivate

Définition à la ligne 355 du fichier regex.h.

◆ EvalQuantifier()

template<typename Encoding , typename Allocator = CrtAllocator>
bool internal::GenericRegex< Encoding, Allocator >::EvalQuantifier ( Stack< Allocator > &  operandStack,
unsigned  n,
unsigned  m 
)
inlineprivate

Définition à la ligne 412 du fichier regex.h.

◆ GetRange() [1/2]

template<typename Encoding , typename Allocator = CrtAllocator>
Range & internal::GenericRegex< Encoding, Allocator >::GetRange ( SizeType  index)
inlineprivate

Définition à la ligne 180 du fichier regex.h.

◆ GetRange() [2/2]

template<typename Encoding , typename Allocator = CrtAllocator>
const Range & internal::GenericRegex< Encoding, Allocator >::GetRange ( SizeType  index) const
inlineprivate

Définition à la ligne 185 du fichier regex.h.

◆ GetState() [1/2]

template<typename Encoding , typename Allocator = CrtAllocator>
State & internal::GenericRegex< Encoding, Allocator >::GetState ( SizeType  index)
inlineprivate

Définition à la ligne 170 du fichier regex.h.

◆ GetState() [2/2]

template<typename Encoding , typename Allocator = CrtAllocator>
const State & internal::GenericRegex< Encoding, Allocator >::GetState ( SizeType  index) const
inlineprivate

Définition à la ligne 175 du fichier regex.h.

◆ ImplicitConcatenation()

template<typename Encoding , typename Allocator = CrtAllocator>
void internal::GenericRegex< Encoding, Allocator >::ImplicitConcatenation ( Stack< Allocator > &  atomCountStack,
Stack< Allocator > &  operatorStack 
)
inlineprivate

Définition à la ligne 334 du fichier regex.h.

◆ IsValid()

template<typename Encoding , typename Allocator = CrtAllocator>
bool internal::GenericRegex< Encoding, Allocator >::IsValid ( ) const
inline

Définition à la ligne 132 du fichier regex.h.

◆ Min()

template<typename Encoding , typename Allocator = CrtAllocator>
static SizeType internal::GenericRegex< Encoding, Allocator >::Min ( SizeType  a,
SizeType  b 
)
inlinestaticprivate

Définition à la ligne 451 du fichier regex.h.

◆ NewRange()

template<typename Encoding , typename Allocator = CrtAllocator>
SizeType internal::GenericRegex< Encoding, Allocator >::NewRange ( unsigned  codepoint)
inlineprivate

Définition à la ligne 555 du fichier regex.h.

◆ NewState()

template<typename Encoding , typename Allocator = CrtAllocator>
SizeType internal::GenericRegex< Encoding, Allocator >::NewState ( SizeType  out,
SizeType  out1,
unsigned  codepoint 
)
inlineprivate

Définition à la ligne 320 du fichier regex.h.

◆ Parse()

template<typename Encoding , typename Allocator = CrtAllocator>
template<typename InputStream >
void internal::GenericRegex< Encoding, Allocator >::Parse ( DecodedStream< InputStream, Encoding > &  ds)
inlineprivate

Définition à la ligne 191 du fichier regex.h.

◆ ParseRange()

template<typename Encoding , typename Allocator = CrtAllocator>
template<typename InputStream >
bool internal::GenericRegex< Encoding, Allocator >::ParseRange ( DecodedStream< InputStream, Encoding > &  ds,
SizeType range 
)
inlineprivate

Définition à la ligne 483 du fichier regex.h.

◆ ParseUnsigned()

template<typename Encoding , typename Allocator = CrtAllocator>
template<typename InputStream >
bool internal::GenericRegex< Encoding, Allocator >::ParseUnsigned ( DecodedStream< InputStream, Encoding > &  ds,
unsigned *  u 
)
inlineprivate

Définition à la ligne 469 du fichier regex.h.

◆ Patch()

template<typename Encoding , typename Allocator = CrtAllocator>
void internal::GenericRegex< Encoding, Allocator >::Patch ( SizeType  l,
SizeType  s 
)
inlineprivate

Définition à la ligne 348 du fichier regex.h.

◆ PushOperand()

template<typename Encoding , typename Allocator = CrtAllocator>
void internal::GenericRegex< Encoding, Allocator >::PushOperand ( Stack< Allocator > &  operandStack,
unsigned  codepoint 
)
inlineprivate

Définition à la ligne 329 du fichier regex.h.

Documentation des fonctions amies et associées

◆ GenericRegexSearch

template<typename Encoding , typename Allocator = CrtAllocator>
template<typename , typename >
friend class GenericRegexSearch
friend

Définition à la ligne 115 du fichier regex.h.

Documentation des données membres

◆ allocator_

template<typename Encoding , typename Allocator = CrtAllocator>
Allocator* internal::GenericRegex< Encoding, Allocator >::allocator_
private

Définition à la ligne 592 du fichier regex.h.

◆ anchorBegin_

template<typename Encoding , typename Allocator = CrtAllocator>
bool internal::GenericRegex< Encoding, Allocator >::anchorBegin_
private

Définition à la ligne 602 du fichier regex.h.

◆ anchorEnd_

template<typename Encoding , typename Allocator = CrtAllocator>
bool internal::GenericRegex< Encoding, Allocator >::anchorEnd_
private

Définition à la ligne 603 du fichier regex.h.

◆ kAnyCharacterClass

template<typename Encoding , typename Allocator = CrtAllocator>
const unsigned internal::GenericRegex< Encoding, Allocator >::kAnyCharacterClass = 0xFFFFFFFF
staticprivate

For '.'.

Définition à la ligne 146 du fichier regex.h.

◆ kInfinityQuantifier

template<typename Encoding , typename Allocator = CrtAllocator>
const unsigned internal::GenericRegex< Encoding, Allocator >::kInfinityQuantifier = ~0u
staticprivate

Définition à la ligne 599 du fichier regex.h.

◆ kRangeCharacterClass

template<typename Encoding , typename Allocator = CrtAllocator>
const unsigned internal::GenericRegex< Encoding, Allocator >::kRangeCharacterClass = 0xFFFFFFFE
staticprivate

Définition à la ligne 147 du fichier regex.h.

◆ kRangeNegationFlag

template<typename Encoding , typename Allocator = CrtAllocator>
const unsigned internal::GenericRegex< Encoding, Allocator >::kRangeNegationFlag = 0x80000000
staticprivate

Définition à la ligne 148 du fichier regex.h.

◆ ownAllocator_

template<typename Encoding , typename Allocator = CrtAllocator>
Allocator* internal::GenericRegex< Encoding, Allocator >::ownAllocator_
private

Définition à la ligne 591 du fichier regex.h.

◆ rangeCount_

template<typename Encoding , typename Allocator = CrtAllocator>
SizeType internal::GenericRegex< Encoding, Allocator >::rangeCount_
private

Définition à la ligne 597 du fichier regex.h.

◆ ranges_

template<typename Encoding , typename Allocator = CrtAllocator>
Stack<Allocator> internal::GenericRegex< Encoding, Allocator >::ranges_
private

Définition à la ligne 594 du fichier regex.h.

◆ root_

template<typename Encoding , typename Allocator = CrtAllocator>
SizeType internal::GenericRegex< Encoding, Allocator >::root_
private

Définition à la ligne 595 du fichier regex.h.

◆ stateCount_

template<typename Encoding , typename Allocator = CrtAllocator>
SizeType internal::GenericRegex< Encoding, Allocator >::stateCount_
private

Définition à la ligne 596 du fichier regex.h.

◆ states_

template<typename Encoding , typename Allocator = CrtAllocator>
Stack<Allocator> internal::GenericRegex< Encoding, Allocator >::states_
private

Définition à la ligne 593 du fichier regex.h.


La documentation de cette classe a été générée à partir du fichier suivant :