blob: 936f17f3b3514536d06dcda1e3b77bff03f86b7a [file] [log] [blame]
% ------------------------------------------------------------------------------
% Copyright (c) 2010, 2020 Contributors to the Eclipse Foundation
%
% See the NOTICE file(s) distributed with this work for additional
% information regarding copyright ownership.
%
% This program and the accompanying materials are made available under the terms
% of the MIT License which is available at https://opensource.org/licenses/MIT
%
% SPDX-License-Identifier: MIT
% ------------------------------------------------------------------------------
\documentclass{article}
\usepackage{tikz}
\usepackage{verbatim}
\usepackage[paperwidth=40in, paperheight=20in]{geometry}
\usetikzlibrary{arrows, automata}
\begin{document}
\pagestyle{empty}
\definecolor{se-blue}{HTML}{D0D5FF}
\newcommand{\state}[2]{\begin{tabular}{@{}c@{}}#1\\#2\end{tabular}}
\begin{tikzpicture}[
->,>=stealth',auto,node distance=2.5cm,thick,
every node/.style={font=\sffamily\small},
every state/.style={draw=se-blue,thick,top color=white,
bottom color=se-blue!75,initial text=},
accepting/.style={accepting by arrow,accepting text=\ldots},
every edge/.style={draw=black!50}]
\node[state, initial] (s00) {p/i};
\node[state] (s01) [ right of=s00] {i/i};
\node[state] (s02) [ right of=s01] {p/c};
\node[state] (s03) [above right of=s02] {i/c};
\node[state] (s04) [below right of=s02] {p/i};
\node[state] (s05) [below right of=s03] {i/i};
\node[state] (s06) [ right of=s05] {p/c};
\node[state] (s07) [above right of=s06] {i/c};
\node[state] (s08) [below right of=s06] {p/i};
\node[state] (s09) [below right of=s07] {i/i};
\node[state, accepting] (s10) [ right of=s09] {p/c};
\path[every node/.style={font=\sffamily\normalsize,outer sep=0pt}]
(s00) edge[] node[] {produce} (s01)
(s01) edge[] node[] {provide} (s02)
(s02) edge[] node[sloped,anchor=south] {produce} (s03)
(s02) edge[] node[sloped,anchor=north] {consume} (s04)
(s03) edge[] node[sloped,anchor=south] {consume} (s05)
(s04) edge[] node[sloped,anchor=north] {produce} (s05)
(s05) edge[] node[] {provide} (s06)
(s06) edge[] node[sloped,anchor=south] {produce} (s07)
(s06) edge[] node[sloped,anchor=north] {consume} (s08)
(s07) edge[] node[sloped,anchor=south] {consume} (s09)
(s08) edge[] node[sloped,anchor=north] {produce} (s09)
(s09) edge[] node[] {provide} (s10)
;
\end{tikzpicture}
\end{document}