source: docs/Working/icGrep/fig-compiler.tex @ 4499

Last change on this file since 4499 was 4499, checked in by nmedfort, 4 years ago

Cleaned up architecture discussion a bit more

File size: 3.4 KB
Line 
1
2\begin{figure}[tbh]
3\begin{center}
4% Define block styles
5%\tikzstyle{decision} = [diamond, shape aspect=2, rotate=30, draw, text width=4.5em, text badly centered, inner sep=0pt, thick]
6\tikzstyle{block} = [rectangle, draw, text width=12em, text centered, minimum height=1.75em, thick, font=\ttfamily\bfseries, node distance=3.5em]
7\tikzstyle{line} = [draw, ->, line width=1.4pt]
8\tikzstyle{separator} = [draw, line width=0.125em, dashed]
9\tikzset{block/.append style={execute at begin node=\footnotesize}}   
10\begin{tikzpicture}[node distance=3cm, auto, >=stealth]
11
12    % Place nodes
13    \node [draw=none] (RE) {\RegularExpression{}};
14    \node [block, below of=RE] (REParser) {\REParser{}};
15    \node [block, below of=REParser] (RETransform) {\RegularExpression{} Transformations};   
16%    \coordinate[below of=RETransform, node distance=3em] (Point);   
17%    \node [block, left of=Point, node distance=10em] (CUCompiler) {\CodeUnitCompiler{}};
18%    \node [block, right of=Point, node distance=10em] (RECompiler) {\RegularExpressionCompiler{}};
19    \node [block, below of=RETransform] (RECompiler) {\RegularExpressionCompiler{}};
20    \node [block, below of=RECompiler] (PabloTransform) {\Pablo{} Transformations};   
21    \node [block, below of=PabloTransform] (PabloCompiler) {\PabloCompiler{}};
22    \node [block, below of=PabloCompiler] (LLVMCompiler) {LLVM Compiler};
23    \node [draw=none, below of=LLVMCompiler, node distance=3.5em] (Matcher) {Dynamically-Generated Match Function};
24   
25    % Draw edges
26    \path [line] (RE) -- (REParser);
27    %\path [line] (RE) -- (PropertyExtraction);
28    \path [line] (REParser) -- (RETransform);
29%    \path [line] (RETransform) -| (CUCompiler);
30%    \path [line] (RETransform) -| (RECompiler);
31%    \path [line] (CUCompiler) |- (PabloTransform);
32 %   \path [line] (RECompiler) |- (PabloTransform);
33    \path [line] (RETransform) -- (RECompiler);
34    \path [line] (RECompiler) -- (PabloTransform);
35    \path [line] (PabloTransform) -- (PabloCompiler);
36    \path [line] (PabloCompiler) -- (LLVMCompiler);
37    \path [line] (LLVMCompiler) -- (Matcher);
38   
39    % Draw separators
40    \coordinate[right of=REParser, node distance=15em] (SR);
41    \coordinate[left of=REParser, node distance=15em] (SL);
42    \path [separator] (SL) -- (REParser);
43    \path [separator] (REParser) -- (SR);
44   
45    \coordinate[left of=RECompiler, node distance=15em] (PL);
46    \coordinate[right of=RECompiler, node distance=15em] (PR);
47    \path [separator] (PL) -- (RECompiler);
48    \path [separator] (RECompiler) -- (PR);
49    %\path [separator] (PL) -- (CUCompiler);
50%    \path [separator] (CUCompiler) -- (RECompiler);
51    %\path [separator] (RECompiler) -- (PR);
52
53    \coordinate[right of=PabloCompiler, node distance=15em] (LR);
54    \coordinate[left of=PabloCompiler, node distance=15em] (LL);
55    \path [separator] (LL) -- (PabloCompiler);
56    \path [separator] (PabloCompiler) -- (LR);   
57   
58    \coordinate[right of=LLVMCompiler, node distance=15em] (OR);
59    \coordinate[left of=LLVMCompiler, node distance=15em] (OL);
60    \path [separator] (OL) -- (LLVMCompiler);
61    \path [separator] (LLVMCompiler) -- (OR);       
62   
63    % Seperator text
64    \node [draw=none,anchor=west] at ($(SL)!0.5!(PL)$) {1)~\RegularExpression{} AST};
65    \node [draw=none,anchor=west] at ($(PL)!0.5!(LL)$) {2)~\Pablo{}};
66    \node [draw=none,anchor=west] at ($(LL)!0.5!(OL)$) {3)~LLVM};
67   
68   
69\end{tikzpicture}
70
71\end{center}
72\caption{icGrep compilation architecture}\label{fig:compiler}
73\end{figure} 
Note: See TracBrowser for help on using the repository browser.