Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/ianj-als/pcl.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Johnson <ian.johnson@appliedlanguage.com>2013-06-25 16:52:50 +0400
committerIan Johnson <ian.johnson@appliedlanguage.com>2013-06-25 16:52:50 +0400
commitc01d60267d94c23002a0a88cc5c3b7ce4c0fd79e (patch)
tree457c909f71faef2e884f2e0bf898b1781cf5d9c2 /documentation
parentb6179d400049c3b1ca8bb797af70eeda7355cec3 (diff)
Added better railroad diagrams to documentation.
Diffstat (limited to 'documentation')
-rw-r--r--documentation/chapters/compiler/compiler.tex85
-rw-r--r--documentation/chapters/compiler/diagrams/README1
-rw-r--r--documentation/chapters/compiler/diagrams/component.pngbin0 -> 9081 bytes
-rw-r--r--documentation/chapters/compiler/diagrams/component_expression.pngbin0 -> 20241 bytes
-rw-r--r--documentation/chapters/compiler/diagrams/condition_expression.pngbin0 -> 20759 bytes
-rw-r--r--documentation/chapters/compiler/diagrams/configuration.pngbin0 -> 5125 bytes
-rw-r--r--documentation/chapters/compiler/diagrams/configuration_identifier.pngbin0 -> 3170 bytes
-rw-r--r--documentation/chapters/compiler/diagrams/declarations.pngbin0 -> 4279 bytes
-rw-r--r--documentation/chapters/compiler/diagrams/identifier.pngbin0 -> 9452 bytes
-rw-r--r--documentation/chapters/compiler/diagrams/imports.pngbin0 -> 3743 bytes
-rw-r--r--documentation/chapters/compiler/diagrams/literal.pngbin0 -> 23118 bytes
-rw-r--r--documentation/chapters/compiler/diagrams/mapping.pngbin0 -> 6442 bytes
-rw-r--r--documentation/chapters/compiler/diagrams/merge_mapping.pngbin0 -> 13368 bytes
-rw-r--r--documentation/chapters/compiler/diagrams/pcl-grammar.ebnf25
-rw-r--r--documentation/chapters/compiler/diagrams/pcl-imports.diabin1598 -> 0 bytes
-rw-r--r--documentation/chapters/compiler/diagrams/pcl-imports.pngbin16326 -> 0 bytes
-rw-r--r--documentation/chapters/compiler/diagrams/pcl-port-defs.diabin2452 -> 0 bytes
-rw-r--r--documentation/chapters/compiler/diagrams/pcl-port-defs.pngbin29469 -> 0 bytes
-rw-r--r--documentation/chapters/compiler/diagrams/pcl-top-level.diabin2226 -> 0 bytes
-rw-r--r--documentation/chapters/compiler/diagrams/pcl-top-level.pngbin28924 -> 0 bytes
-rw-r--r--documentation/chapters/compiler/diagrams/port_definition.pngbin0 -> 10543 bytes
-rw-r--r--documentation/chapters/compiler/diagrams/qualified_identifier.pngbin0 -> 12799 bytes
22 files changed, 103 insertions, 8 deletions
diff --git a/documentation/chapters/compiler/compiler.tex b/documentation/chapters/compiler/compiler.tex
index ed399d8..b6cb539 100644
--- a/documentation/chapters/compiler/compiler.tex
+++ b/documentation/chapters/compiler/compiler.tex
@@ -1,9 +1,10 @@
+\newcommand{\DiagramScale}{0.6}
\chapter{PCLc}
\section{Syntax}
\begin{figure}[!h]
\centering
- \includegraphics[width=1.0\textwidth]{chapters/compiler/diagrams/pcl-top-level}
+ \includegraphics[scale=\DiagramScale,angle=90]{chapters/compiler/diagrams/component}
\caption{PCL file syntax.}
\label{fig:pcl-top-level}
\end{figure}
@@ -11,27 +12,95 @@
\subsection{Imports}
\begin{figure}[!h]
\centering
- \includegraphics[width=1.0\textwidth]{chapters/compiler/diagrams/pcl-imports}
- \caption{Importing PCL files.}
+ \includegraphics[scale=\DiagramScale]{chapters/compiler/diagrams/imports}
+ \caption{\texttt{imports} : Importing PCL files.}
\label{fig:pcl-imports}
\end{figure}
-\subsection{Port Definitions}
+\subsection{Port Definition}
\begin{figure}[!h]
\centering
- \includegraphics[width=1.0\textwidth]{chapters/compiler/diagrams/pcl-port-defs}
- \caption{Component Port Definition.}
+ \includegraphics[scale=\DiagramScale,angle=90]{chapters/compiler/diagrams/port_definition}
+ \caption{\texttt{port\_definition} : Component port definition.}
\label{fig:pcl-port-defs}
\end{figure}
\subsection{Configuration}
\begin{figure}[!h]
\centering
- \includegraphics[width=1.0\textwidth]{chapters/compiler/diagrams/pcl-config}
- \caption{Component Configuraton.}
+ \includegraphics[scale=\DiagramScale]{chapters/compiler/diagrams/configuration}
+ \caption{\texttt{configuration} : Component configuraton.}
\label{fig:pcl-config}
\end{figure}
\subsection{Declarations}
+\begin{figure}[!h]
+ \centering
+ \includegraphics[scale=\DiagramScale]{chapters/compiler/diagrams/declarations}
+ \caption{\texttt{declarations} : Imported component construction.}
+ \label{fig:pcl-decls}
+\end{figure}
\subsection{Definition}
+\begin{figure}[!h]
+ \centering
+ \includegraphics[scale=\DiagramScale,angle=90]{chapters/compiler/diagrams/component_expression}
+ \caption{\texttt{component\_expression} : Component defintion.}
+ \label{fig:pcl-def}
+\end{figure}
+
+\subsection{Merge Mapping}
+\begin{figure}[!h]
+ \centering
+ \includegraphics[scale=\DiagramScale,angle=90]{chapters/compiler/diagrams/merge_mapping}
+ \caption{\texttt{merge\_mapping} : Merge component mapping.}
+ \label{fig:pcl-merge-mapping}
+\end{figure}
+
+\subsection{Mapping}
+\begin{figure}[!h]
+ \centering
+ \includegraphics[scale=\DiagramScale]{chapters/compiler/diagrams/mapping}
+ \caption{\texttt{mapping} : Mapping.}
+ \label{fig:pcl-signal-mapping}
+\end{figure}
+
+\subsection{Condition Expression}
+\begin{figure}[!h]
+ \centering
+ \includegraphics[scale=\DiagramScale]{chapters/compiler/diagrams/condition_expression}
+ \caption{\texttt{condition\_expression} : If component's condition expression.}
+ \label{fig:pcl-cond-expr}
+\end{figure}
+
+\subsection{Configuration Identifier}
+\begin{figure}[!h]
+ \centering
+ \includegraphics[scale=\DiagramScale]{chapters/compiler/diagrams/configuration_identifier}
+ \caption{\texttt{configuration\_identifier} : If component's condition expression configuration identifier.}
+ \label{fig:pcl-config-id}
+\end{figure}
+
+\subsection{Qualified Identifier}
+\begin{figure}[!h]
+ \centering
+ \includegraphics[scale=\DiagramScale,angle=90]{chapters/compiler/diagrams/qualified_identifier}
+ \caption{\texttt{qualified\_identifier} : Qualified identifier.}
+ \label{fig:pcl-qualified-id}
+\end{figure}
+
+\subsection{Identifier}
+\begin{figure}[!h]
+ \centering
+ \includegraphics[scale=\DiagramScale]{chapters/compiler/diagrams/identifier}
+ \caption{\texttt{identifier} : Identifier.}
+ \label{fig:pcl-id}
+\end{figure}
+
+\subsection{Literal}
+\begin{figure}[!h]
+ \centering
+ \includegraphics[scale=\DiagramScale,angle=90]{chapters/compiler/diagrams/literal}
+ \caption{\texttt{literal} : Literal.}
+ \label{fig:pcl-literal}
+\end{figure} \ No newline at end of file
diff --git a/documentation/chapters/compiler/diagrams/README b/documentation/chapters/compiler/diagrams/README
new file mode 100644
index 0000000..71538f6
--- /dev/null
+++ b/documentation/chapters/compiler/diagrams/README
@@ -0,0 +1 @@
+Railroad diagrams made with this web-site: http://railroad.my28msec.com/rr/ui
diff --git a/documentation/chapters/compiler/diagrams/component.png b/documentation/chapters/compiler/diagrams/component.png
new file mode 100644
index 0000000..570f690
--- /dev/null
+++ b/documentation/chapters/compiler/diagrams/component.png
Binary files differ
diff --git a/documentation/chapters/compiler/diagrams/component_expression.png b/documentation/chapters/compiler/diagrams/component_expression.png
new file mode 100644
index 0000000..ee0452c
--- /dev/null
+++ b/documentation/chapters/compiler/diagrams/component_expression.png
Binary files differ
diff --git a/documentation/chapters/compiler/diagrams/condition_expression.png b/documentation/chapters/compiler/diagrams/condition_expression.png
new file mode 100644
index 0000000..66894ce
--- /dev/null
+++ b/documentation/chapters/compiler/diagrams/condition_expression.png
Binary files differ
diff --git a/documentation/chapters/compiler/diagrams/configuration.png b/documentation/chapters/compiler/diagrams/configuration.png
new file mode 100644
index 0000000..7cca753
--- /dev/null
+++ b/documentation/chapters/compiler/diagrams/configuration.png
Binary files differ
diff --git a/documentation/chapters/compiler/diagrams/configuration_identifier.png b/documentation/chapters/compiler/diagrams/configuration_identifier.png
new file mode 100644
index 0000000..4b2755d
--- /dev/null
+++ b/documentation/chapters/compiler/diagrams/configuration_identifier.png
Binary files differ
diff --git a/documentation/chapters/compiler/diagrams/declarations.png b/documentation/chapters/compiler/diagrams/declarations.png
new file mode 100644
index 0000000..0818445
--- /dev/null
+++ b/documentation/chapters/compiler/diagrams/declarations.png
Binary files differ
diff --git a/documentation/chapters/compiler/diagrams/identifier.png b/documentation/chapters/compiler/diagrams/identifier.png
new file mode 100644
index 0000000..2f638b7
--- /dev/null
+++ b/documentation/chapters/compiler/diagrams/identifier.png
Binary files differ
diff --git a/documentation/chapters/compiler/diagrams/imports.png b/documentation/chapters/compiler/diagrams/imports.png
new file mode 100644
index 0000000..2d7fb5d
--- /dev/null
+++ b/documentation/chapters/compiler/diagrams/imports.png
Binary files differ
diff --git a/documentation/chapters/compiler/diagrams/literal.png b/documentation/chapters/compiler/diagrams/literal.png
new file mode 100644
index 0000000..8e31209
--- /dev/null
+++ b/documentation/chapters/compiler/diagrams/literal.png
Binary files differ
diff --git a/documentation/chapters/compiler/diagrams/mapping.png b/documentation/chapters/compiler/diagrams/mapping.png
new file mode 100644
index 0000000..f3521bb
--- /dev/null
+++ b/documentation/chapters/compiler/diagrams/mapping.png
Binary files differ
diff --git a/documentation/chapters/compiler/diagrams/merge_mapping.png b/documentation/chapters/compiler/diagrams/merge_mapping.png
new file mode 100644
index 0000000..1784d20
--- /dev/null
+++ b/documentation/chapters/compiler/diagrams/merge_mapping.png
Binary files differ
diff --git a/documentation/chapters/compiler/diagrams/pcl-grammar.ebnf b/documentation/chapters/compiler/diagrams/pcl-grammar.ebnf
new file mode 100644
index 0000000..f7ebc17
--- /dev/null
+++ b/documentation/chapters/compiler/diagrams/pcl-grammar.ebnf
@@ -0,0 +1,25 @@
+component ::= imports? 'component' identifier ('input' | 'inputs') port_definition ('output' | 'outputs') port_definition configuration? declarations? 'as' component_expression
+
+imports ::= 'import' (identifier | qualified_identifier) 'as' identifier
+
+port_definition ::= ( '(' ((identifier | qualified_identifier) (',' (identifier | qualified_identifier))*) ')' ',' '(' ((identifier | qualified_identifier) (',' (identifier | qualified_identifier))*) ')' ) | ((identifier | qualified_identifier) (',' (identifier | qualified_identifier))*)
+
+configuration ::= 'configuration' ((identifier | qualified_identifier) (',' (identifier | qualified_identifier))*)
+
+declarations ::= 'declare' (identifier ':=' 'new' identifier ('with' mapping)?)+
+
+component_expression ::= (component_expression '>>>' component_expression) | (component_expression '&&&' component_expression) | (component_expression '***' component_expression) | ('first' component_expression) | ('second' component_expression) | 'split' | ('merge' merge_mapping) | 'wire' mapping | ('if' condition_expression component_expression component_expression) | identifier
+
+merge_mapping ::= (('top' '[' (identifier | qualified_identifier) ']' '->' (identifier | qualified_identifier)) | ('bottom' '[' (identifier | qualified_identifier) ']') | (literal '->' (identifier | qualified_identifier))) (',' (('top' '[' (identifier | qualified_identifier) ']' '->' (identifier | qualified_identifier)) | ('bottom' '[' (identifier | qualified_identifier) ']') | (literal '->' (identifier | qualified_identifier))))*
+
+mapping ::= (((identifier | qualified_identifier | literal) '->' (identifier | qualified_identifier)) (',' ((identifier | qualified_identifier | literal) '->' (identifier | qualified_identifier)))*)
+
+condition_expression ::= condition_expression ('or' | 'and' | 'xor' | '==' | '!=' | '>' | '<' | '>=' | '<=') condition_expression | (identifier | qualified_identifier | literal | configuration_identifier) | '(' condition_expression ')'
+
+configuration_identifier ::= '@' (identifier | qualified_identifier)
+
+qualified_identifier ::= [a-zA-Z_][a-zA-Z0-9_]*('.'[a-zA-Z_][a-zA-Z0-9_]*)+
+
+identifier ::= [a-zA-Z_][a-zA-Z0-9_]*
+
+literal ::= [-]?[0-9]+('.'[0-9]+([eE][-+][0-9]+)?)? | '"' ('\'.|[^"])* '"' | [Tt][Rr][Uu][Ee] | [Ff][Aa][Ll][Ss][Ee] \ No newline at end of file
diff --git a/documentation/chapters/compiler/diagrams/pcl-imports.dia b/documentation/chapters/compiler/diagrams/pcl-imports.dia
deleted file mode 100644
index 4449974..0000000
--- a/documentation/chapters/compiler/diagrams/pcl-imports.dia
+++ /dev/null
Binary files differ
diff --git a/documentation/chapters/compiler/diagrams/pcl-imports.png b/documentation/chapters/compiler/diagrams/pcl-imports.png
deleted file mode 100644
index 8516645..0000000
--- a/documentation/chapters/compiler/diagrams/pcl-imports.png
+++ /dev/null
Binary files differ
diff --git a/documentation/chapters/compiler/diagrams/pcl-port-defs.dia b/documentation/chapters/compiler/diagrams/pcl-port-defs.dia
deleted file mode 100644
index 76951e0..0000000
--- a/documentation/chapters/compiler/diagrams/pcl-port-defs.dia
+++ /dev/null
Binary files differ
diff --git a/documentation/chapters/compiler/diagrams/pcl-port-defs.png b/documentation/chapters/compiler/diagrams/pcl-port-defs.png
deleted file mode 100644
index 7dcc567..0000000
--- a/documentation/chapters/compiler/diagrams/pcl-port-defs.png
+++ /dev/null
Binary files differ
diff --git a/documentation/chapters/compiler/diagrams/pcl-top-level.dia b/documentation/chapters/compiler/diagrams/pcl-top-level.dia
deleted file mode 100644
index 6cea47a..0000000
--- a/documentation/chapters/compiler/diagrams/pcl-top-level.dia
+++ /dev/null
Binary files differ
diff --git a/documentation/chapters/compiler/diagrams/pcl-top-level.png b/documentation/chapters/compiler/diagrams/pcl-top-level.png
deleted file mode 100644
index 00ddf7a..0000000
--- a/documentation/chapters/compiler/diagrams/pcl-top-level.png
+++ /dev/null
Binary files differ
diff --git a/documentation/chapters/compiler/diagrams/port_definition.png b/documentation/chapters/compiler/diagrams/port_definition.png
new file mode 100644
index 0000000..d3059fd
--- /dev/null
+++ b/documentation/chapters/compiler/diagrams/port_definition.png
Binary files differ
diff --git a/documentation/chapters/compiler/diagrams/qualified_identifier.png b/documentation/chapters/compiler/diagrams/qualified_identifier.png
new file mode 100644
index 0000000..610f1bf
--- /dev/null
+++ b/documentation/chapters/compiler/diagrams/qualified_identifier.png
Binary files differ