mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2026-01-08 09:21:42 +01:00
Initial implementation
This commit is contained in:
parent
4df8c2e113
commit
1105d874d0
65
docs/syntax/block.syn
Normal file
65
docs/syntax/block.syn
Normal file
@ -0,0 +1,65 @@
|
||||
\begin{diagram}{Blocks}{blocks}
|
||||
\begin{mysyntdiag}
|
||||
\synt{block} \synt{declaration\ part} \synt{statement\ part}
|
||||
\end{mysyntdiag}
|
||||
\begin{mysyntdiag}
|
||||
\synt{declaration\ part}
|
||||
\<[b]
|
||||
\[
|
||||
\synt{label\ declaration\ part}\\
|
||||
\synt{constant\ declaration\ part}\\
|
||||
\synt{type\ declaration\ part}\\
|
||||
\synt{variable\ declaration\ part}\\
|
||||
\synt{procedure/function\ declaration\ part}
|
||||
\]
|
||||
\>
|
||||
\end{mysyntdiag}
|
||||
\begin{mysyntdiag}
|
||||
\synt{label\ declaration\ part}
|
||||
\lit*{label}
|
||||
\<[b]
|
||||
\synt{label}\\
|
||||
\lit* ,
|
||||
\>
|
||||
\lit* ;
|
||||
\end{mysyntdiag}
|
||||
\begin{mysyntdiag}
|
||||
\synt{constant\ declaration\ part}
|
||||
\lit*{const}
|
||||
\<[b]
|
||||
\(
|
||||
\synt{constant\ declaration}\\
|
||||
\synt{typed\ constant\ declaration}
|
||||
\)
|
||||
\>
|
||||
\end{mysyntdiag}
|
||||
\begin{mysyntdiag}
|
||||
\synt{type\ declaration\ part}
|
||||
\lit*{type}
|
||||
\<[b]
|
||||
\synt{type\ declaration}\\
|
||||
\>
|
||||
\end{mysyntdiag}
|
||||
\begin{mysyntdiag}
|
||||
\synt{variable\ declaration\ part}
|
||||
\lit*{var}
|
||||
\<[b]
|
||||
\synt{variable\ declaration}\\
|
||||
\>
|
||||
\end{mysyntdiag}
|
||||
\begin{mysyntdiag}
|
||||
\synt{procedure/function\ declaration\ part}
|
||||
\<[b]
|
||||
\(
|
||||
\synt{procedure\ declaration}\\
|
||||
\synt{function\ declaration}\\
|
||||
\synt{constructor\ declaration}\\
|
||||
\synt{destructor\ declaration}\\
|
||||
\)
|
||||
\>
|
||||
\end{mysyntdiag}
|
||||
\begin{mysyntdiag}
|
||||
\synt{statement\ part}
|
||||
\synt{compound\ statement}
|
||||
\end{mysyntdiag}
|
||||
\end{diagram}
|
||||
27
docs/syntax/function.syn
Normal file
27
docs/syntax/function.syn
Normal file
@ -0,0 +1,27 @@
|
||||
\begin{diagram}{Function declaration}{proceduredeclaration}
|
||||
\begin{mysyntdiag}
|
||||
\synt{function\ declaration}
|
||||
\synt{function\ header} \lit* ;
|
||||
\synt{subroutine\ block} \lit *;
|
||||
\end{mysyntdiag}
|
||||
\begin{mysyntdiag}
|
||||
\synt{function\ header}
|
||||
\lit*{function}
|
||||
\(
|
||||
\synt{identifier}\\
|
||||
\synt{qualified\ method\ identifier}
|
||||
\)
|
||||
\synt{formal\ parameter\ list}
|
||||
\lit* : \( \synt{result\ type} \\ \lit*{string} \)
|
||||
\[ \synt{modifiers} \]
|
||||
\end{mysyntdiag}
|
||||
\begin{mysyntdiag}
|
||||
\synt{subroutine\ block}
|
||||
\(
|
||||
\synt{block}\\
|
||||
\synt{external\ directive}\\
|
||||
\synt{asm\ block}\\
|
||||
\lit*{forward}
|
||||
\)
|
||||
\end{mysyntdiag}
|
||||
\end{diagram}
|
||||
24
docs/syntax/modifiers.syn
Normal file
24
docs/syntax/modifiers.syn
Normal file
@ -0,0 +1,24 @@
|
||||
\begin{diagram}{Modifiers}{modifiers}
|
||||
\begin{mysyntdiag}
|
||||
\synt{modifiers}
|
||||
\<[b]
|
||||
;
|
||||
\(
|
||||
\lit*{public} \\
|
||||
\lit*{alias} \synt{string\ constant}\\
|
||||
\lit*{interrupt} \\
|
||||
\lit*{call\ modifiers}
|
||||
\)
|
||||
\>
|
||||
\end{mysyntdiag}
|
||||
\begin{mysyntdiag}
|
||||
\synt{call\ modifiers}
|
||||
\(
|
||||
\lit*{register}\\
|
||||
\lit*{pascal}\\
|
||||
\lit*{cdecl}\\
|
||||
\lit*{stdcall}\\
|
||||
\lit*{popstack}
|
||||
\)
|
||||
\end{mysyntdiag}
|
||||
\end{diagram}
|
||||
26
docs/syntax/procedur.syn
Normal file
26
docs/syntax/procedur.syn
Normal file
@ -0,0 +1,26 @@
|
||||
\begin{diagram}{Procedure declaration}{proceduredeclaration}
|
||||
\begin{mysyntdiag}
|
||||
\synt{procedure\ declaration}
|
||||
\synt{procedure\ header} \lit* ;
|
||||
\synt{subroutine\ block} \lit *;
|
||||
\end{mysyntdiag}
|
||||
\begin{mysyntdiag}
|
||||
\synt{procedure\ header}
|
||||
\lit*{procedure}
|
||||
\(
|
||||
\synt{identifier}\\
|
||||
\synt{qualified\ method\ identifier}
|
||||
\)
|
||||
\synt{formal\ parameter\ list}
|
||||
\[ \synt{modifiers} \]
|
||||
\end{mysyntdiag}
|
||||
\begin{mysyntdiag}
|
||||
\synt{subroutine\ block}
|
||||
\(
|
||||
\synt{block}\\
|
||||
\synt{external\ directive}\\
|
||||
\synt{asm\ block}\\
|
||||
\lit*{forward}
|
||||
\)
|
||||
\end{mysyntdiag}
|
||||
\end{diagram}
|
||||
41
docs/syntax/unit.syn
Normal file
41
docs/syntax/unit.syn
Normal file
@ -0,0 +1,41 @@
|
||||
\begin{diagram}{Units}{units}
|
||||
\begin{mysyntdiag}
|
||||
\synt{unit}
|
||||
\synt{unit\ header}
|
||||
\synt{interface\ part}
|
||||
\synt{implementation\ part}
|
||||
\[ \synt{initialization\ part} \]
|
||||
\lit*{end} \lit* .
|
||||
\end{mysyntdiag}
|
||||
\begin{mysyntdiag}
|
||||
\synt{unit\ header}
|
||||
\lit*{unit}
|
||||
\synt{unit\ identifier}
|
||||
\lit* ;
|
||||
\end{mysyntdiag}
|
||||
\begin{mysyntdiag}
|
||||
\synt{interface\ part}
|
||||
\<[b]
|
||||
\[ \synt{constant\ declaration\ part} \\
|
||||
\synt{type\ declaration\ part}\\
|
||||
\synt{procedure\ headers\ part}
|
||||
\]
|
||||
\>
|
||||
\end{mysyntdiag}
|
||||
\begin{mysyntdiag}
|
||||
\synt{procedure\ headers\ part}
|
||||
\( \synt{procedure\ header} \\ \synt{function\ header}\) \lit* ;
|
||||
\[ \synt{call\ modifiers} \lit* ; \]
|
||||
\end{mysyntdiag}
|
||||
\begin{mysyntdiag}
|
||||
\synt{implementation\ part}
|
||||
\lit*{implementation}
|
||||
\[ \synt{uses\ clause} \]
|
||||
\synt{declaration\ part}
|
||||
\end{mysyntdiag}
|
||||
\begin{mysyntdiag}
|
||||
\synt{initialization\ part}
|
||||
\lit*{begin}
|
||||
\<[b] \synt{statement} \\ \lit* ; \>
|
||||
\end{mysyntdiag}
|
||||
\end{diagram}
|
||||
Loading…
Reference in New Issue
Block a user