# Changeset 4501

Ignore:
Timestamp:
Feb 11, 2015, 5:46:19 PM (4 years ago)
Message:

Strip unicode agnostic optimizations

Location:
docs/Working/icGrep
Files:
2 edited

### Legend:

Unmodified
 r4499 The layering enables further optimization based on information available at each stage. % The initial \REParser{} validates and transforms the input \RegularExpression{} into an abstract syntax tree (AST). The \REParser{} validates and transforms the input \RegularExpression{} into an abstract syntax tree (AST). % %The AST is a minimalistic representation that, unlike traditional \RegularExpression{}, is not converted into a NFA or DFA for further processing. %Instead, \icGrep{} passes the AST into the transformation module, which includes a set of \RegularExpression{} specific optimization passes. % Successive \RegularExpression{} Transformations exploit knowledge domain Successive \RegularExpression{} Transformations exploit domain knowledge to optimize the regular expressions. % An initial \emph{Nullable} pass, determines whether the \RegularExpression{} contains prefixes or suffixes that may be removed or modified whilst matching the same lines of text as the original expression. %An initial \emph{Nullable} pass, determines whether the \RegularExpression{} %contains prefixes or suffixes that may be removed or %modified whilst matching the same lines of text as the original expression. % For example, \verb|a*bc+|'' is equivalent to \verb|bc|'' because the Kleene Star (Plus) operator matches zero (one) or more instances of a specific character. %For example, \verb|a*bc+|'' is equivalent to \verb|bc|'' because the Kleene Star (Plus) operator matches zero (one) or more instances of a %specific character. % The aforementioned \texttt{toUTF8} transformation also applies during this phase to generate code unit classes. %This is described in more detail in \S\ref{sec:Unicode:toUTF8}. % A final \emph{Simplification} pass flattens nested structures into their simplest legal form. %A final \emph{Simplification} pass flattens nested structures into their simplest legal form. % For example, \verba(b((c|d)|e))'' becomes \verbab(c|d|e)'' and \verb([0-9]{3,5}){3,5}'' becomes \verb[0-9]{9,25}''. %For example, \verba(b((c|d)|e))'' becomes \verbab(c|d|e)'' and \verb([0-9]{3,5}){3,5}'' becomes \verb[0-9]{9,25}''. %