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

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

Architecture updates

File size: 3.2 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=Point, node distance=3em] (PabloTransform) {\Pablo{} Transformations};   
20    \node [block, below of=PabloTransform] (PabloCompiler) {\PabloCompiler{}};
21    \node [block, below of=PabloCompiler] (LLVMCompiler) {LLVM Compiler};
22    \node [draw=none, below of=LLVMCompiler, node distance=3.5em] (Matcher) {Dynamically-Generated Match Function};
23   
24    % Draw edges
25    \path [line] (RE) -- (REParser);
26    %\path [line] (RE) -- (PropertyExtraction);
27    \path [line] (REParser) -- (RETransform);
28    \path [line] (RETransform) -| (CUCompiler);
29    \path [line] (RETransform) -| (RECompiler);
30    \path [line] (CUCompiler) |- (PabloTransform);
31    \path [line] (RECompiler) |- (PabloTransform);
32    \path [line] (PabloTransform) -- (PabloCompiler);
33    \path [line] (PabloCompiler) -- (LLVMCompiler);
34    \path [line] (LLVMCompiler) -- (Matcher);
35   
36    % Draw separators
37    \coordinate[right of=REParser, node distance=15em] (SR);
38    \coordinate[left of=REParser, node distance=15em] (SL);
39    \path [separator] (SL) -- (REParser);
40    \path [separator] (REParser) -- (SR);
41   
42    \coordinate[left of=Point, node distance=15em] (PL);
43    \coordinate[right of=Point, node distance=15em] (PR);
44    %\path [separator] (PL) -- (CUCompiler);
45    \path [separator] (CUCompiler) -- (RECompiler);
46    %\path [separator] (RECompiler) -- (PR);
47
48    \coordinate[right of=PabloCompiler, node distance=15em] (LR);
49    \coordinate[left of=PabloCompiler, node distance=15em] (LL);
50    \path [separator] (LL) -- (PabloCompiler);
51    \path [separator] (PabloCompiler) -- (LR);   
52   
53    \coordinate[right of=LLVMCompiler, node distance=15em] (OR);
54    \coordinate[left of=LLVMCompiler, node distance=15em] (OL);
55    \path [separator] (OL) -- (LLVMCompiler);
56    \path [separator] (LLVMCompiler) -- (OR);       
57   
58    % Seperator text
59    \node [draw=none,anchor=west] at ($(SL)!0.5!(PL)$) {1)~\RegularExpression{}};
60    \node [draw=none,anchor=west] at ($(PL)!0.5!(LL)$) {2)~\Pablo{}};
61    \node [draw=none,anchor=west] at ($(LL)!0.5!(OL)$) {3)~LLVM};
62   
63   
64\end{tikzpicture}
65
66\end{center}
67\caption{icGrep Architectural Diagram}\label{fig:compiler}
68\end{figure} 
Note: See TracBrowser for help on using the repository browser.