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 |
Parameters
TreeImpl | RegexTreeViewSig |