Module Make
Classes and predicates that create an NFA and various algorithms for working with it.
Import path
import codeql.regex.nfa.NfaUtils
Predicates
after |
Gets a state the NFA may be in after matching |
delta |
Holds if the NFA has a transition from |
deltaClosed |
Holds if there is a state |
epsilonPred |
Gets a state that has an epsilon transition to |
epsilonSucc |
Gets a state that |
getAnInputSymbolMatching |
Gets a symbol that matches |
getCanonicalCharClass |
Gets a char class that represents |
getRoot |
Gets the root containing the given term, that is, the root of the literal, or a branch of the root disjunction. |
getTermLocationString |
Gets a string for the full location of |
intersect |
Gets a character that is represented by both |
isStartState |
Holds if |
matchesEpsilon |
Holds if |
mkMatch |
Gets a state that is about to match the regular expression |
Classes
CharacterClass |
An abstract input symbol that represents a character class. |
EmptyPositiveSubPattern |
A lookahead/lookbehind that matches the empty string. |
InputSymbol |
An abstract input symbol, representing a set of concrete characters. |
RegExpRoot |
A branch in a disjunction that is the root node in a literal, or a literal whose root node is not a disjunction. |
RelevantRegExpTerm |
A regexp term that is relevant for this ReDoS analysis. |
State |
A state in the NFA corresponding to a regular expression. |
Datatypes
TState |
A state in the NFA. |
Modules
Concretizer |
Implements an algorithm for computing all possible strings from following a tree of nodes (as described in |
PrefixConstruction |
Predicates for constructing a prefix string that leads to a given state. |
ReDoSPruning |
A module for pruning candidate ReDoS states. The candidates are specified by the |
Predicate signatures
isCandidateSig |
Holds if |
isCandidateSig |
Holds if |
Module signatures
CharTree |
A module that describes a tree where each node has one or more associated characters, also known as a trie. The root node has no associated character. This module is a signature used in |
Aliases
EmptyPositiveSubPatttern |
DEPRECATED: Use |
Parameters
TreeImpl | RegexTreeViewSig |