diff options
author | Ian Johnson <ian.johnson@appliedlanguage.com> | 2013-06-25 16:52:50 +0400 |
---|---|---|
committer | Ian Johnson <ian.johnson@appliedlanguage.com> | 2013-06-25 16:52:50 +0400 |
commit | c01d60267d94c23002a0a88cc5c3b7ce4c0fd79e (patch) | |
tree | 457c909f71faef2e884f2e0bf898b1781cf5d9c2 /documentation | |
parent | b6179d400049c3b1ca8bb797af70eeda7355cec3 (diff) |
Added better railroad diagrams to documentation.
Diffstat (limited to 'documentation')
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 Binary files differnew file mode 100644 index 0000000..570f690 --- /dev/null +++ b/documentation/chapters/compiler/diagrams/component.png diff --git a/documentation/chapters/compiler/diagrams/component_expression.png b/documentation/chapters/compiler/diagrams/component_expression.png Binary files differnew file mode 100644 index 0000000..ee0452c --- /dev/null +++ b/documentation/chapters/compiler/diagrams/component_expression.png diff --git a/documentation/chapters/compiler/diagrams/condition_expression.png b/documentation/chapters/compiler/diagrams/condition_expression.png Binary files differnew file mode 100644 index 0000000..66894ce --- /dev/null +++ b/documentation/chapters/compiler/diagrams/condition_expression.png diff --git a/documentation/chapters/compiler/diagrams/configuration.png b/documentation/chapters/compiler/diagrams/configuration.png Binary files differnew file mode 100644 index 0000000..7cca753 --- /dev/null +++ b/documentation/chapters/compiler/diagrams/configuration.png diff --git a/documentation/chapters/compiler/diagrams/configuration_identifier.png b/documentation/chapters/compiler/diagrams/configuration_identifier.png Binary files differnew file mode 100644 index 0000000..4b2755d --- /dev/null +++ b/documentation/chapters/compiler/diagrams/configuration_identifier.png diff --git a/documentation/chapters/compiler/diagrams/declarations.png b/documentation/chapters/compiler/diagrams/declarations.png Binary files differnew file mode 100644 index 0000000..0818445 --- /dev/null +++ b/documentation/chapters/compiler/diagrams/declarations.png diff --git a/documentation/chapters/compiler/diagrams/identifier.png b/documentation/chapters/compiler/diagrams/identifier.png Binary files differnew file mode 100644 index 0000000..2f638b7 --- /dev/null +++ b/documentation/chapters/compiler/diagrams/identifier.png diff --git a/documentation/chapters/compiler/diagrams/imports.png b/documentation/chapters/compiler/diagrams/imports.png Binary files differnew file mode 100644 index 0000000..2d7fb5d --- /dev/null +++ b/documentation/chapters/compiler/diagrams/imports.png diff --git a/documentation/chapters/compiler/diagrams/literal.png b/documentation/chapters/compiler/diagrams/literal.png Binary files differnew file mode 100644 index 0000000..8e31209 --- /dev/null +++ b/documentation/chapters/compiler/diagrams/literal.png diff --git a/documentation/chapters/compiler/diagrams/mapping.png b/documentation/chapters/compiler/diagrams/mapping.png Binary files differnew file mode 100644 index 0000000..f3521bb --- /dev/null +++ b/documentation/chapters/compiler/diagrams/mapping.png diff --git a/documentation/chapters/compiler/diagrams/merge_mapping.png b/documentation/chapters/compiler/diagrams/merge_mapping.png Binary files differnew file mode 100644 index 0000000..1784d20 --- /dev/null +++ b/documentation/chapters/compiler/diagrams/merge_mapping.png 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 Binary files differdeleted file mode 100644 index 4449974..0000000 --- a/documentation/chapters/compiler/diagrams/pcl-imports.dia +++ /dev/null diff --git a/documentation/chapters/compiler/diagrams/pcl-imports.png b/documentation/chapters/compiler/diagrams/pcl-imports.png Binary files differdeleted file mode 100644 index 8516645..0000000 --- a/documentation/chapters/compiler/diagrams/pcl-imports.png +++ /dev/null diff --git a/documentation/chapters/compiler/diagrams/pcl-port-defs.dia b/documentation/chapters/compiler/diagrams/pcl-port-defs.dia Binary files differdeleted file mode 100644 index 76951e0..0000000 --- a/documentation/chapters/compiler/diagrams/pcl-port-defs.dia +++ /dev/null diff --git a/documentation/chapters/compiler/diagrams/pcl-port-defs.png b/documentation/chapters/compiler/diagrams/pcl-port-defs.png Binary files differdeleted file mode 100644 index 7dcc567..0000000 --- a/documentation/chapters/compiler/diagrams/pcl-port-defs.png +++ /dev/null diff --git a/documentation/chapters/compiler/diagrams/pcl-top-level.dia b/documentation/chapters/compiler/diagrams/pcl-top-level.dia Binary files differdeleted file mode 100644 index 6cea47a..0000000 --- a/documentation/chapters/compiler/diagrams/pcl-top-level.dia +++ /dev/null diff --git a/documentation/chapters/compiler/diagrams/pcl-top-level.png b/documentation/chapters/compiler/diagrams/pcl-top-level.png Binary files differdeleted file mode 100644 index 00ddf7a..0000000 --- a/documentation/chapters/compiler/diagrams/pcl-top-level.png +++ /dev/null diff --git a/documentation/chapters/compiler/diagrams/port_definition.png b/documentation/chapters/compiler/diagrams/port_definition.png Binary files differnew file mode 100644 index 0000000..d3059fd --- /dev/null +++ b/documentation/chapters/compiler/diagrams/port_definition.png diff --git a/documentation/chapters/compiler/diagrams/qualified_identifier.png b/documentation/chapters/compiler/diagrams/qualified_identifier.png Binary files differnew file mode 100644 index 0000000..610f1bf --- /dev/null +++ b/documentation/chapters/compiler/diagrams/qualified_identifier.png |