Module Make
Classes and predicates that create an NFA and various algorithms for working with it.
Import path
import codeql.regex.nfa.NfaUtilsPredicates
| 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 |