mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-20 21:09:24 +02:00
+initial implementation
This commit is contained in:
parent
a1cdc96c84
commit
5ed5681d83
10
docs/syntax/address.syn
Normal file
10
docs/syntax/address.syn
Normal file
@ -0,0 +1,10 @@
|
||||
\begin{psyntax}{Address factor}{addressfactor}
|
||||
\synt{address factor}
|
||||
\lit* @
|
||||
\(
|
||||
\synt{variable\ reference} \\
|
||||
\synt{procedure\ identifier} \\
|
||||
\synt{function\ identifier}\\
|
||||
\synt{qualified\ method\ identifier}
|
||||
\)
|
||||
\end{psyntax}
|
14
docs/syntax/assign.syn
Normal file
14
docs/syntax/assign.syn
Normal file
@ -0,0 +1,14 @@
|
||||
\begin{psyntax}{Assignments}{assignments}
|
||||
\synt{assignment\ statement}
|
||||
\(
|
||||
\synt{variable\ reference} \\
|
||||
\synt{function\ identifier}
|
||||
\)
|
||||
\(
|
||||
\lit*{:=} \\
|
||||
\lit*{+=} \\
|
||||
\lit*{*=} \\
|
||||
\lit*{/=}
|
||||
\)
|
||||
\synt{expression}
|
||||
\end{psyntax}
|
21
docs/syntax/case.syn
Normal file
21
docs/syntax/case.syn
Normal file
@ -0,0 +1,21 @@
|
||||
\begin{diagram}{Case statement}{casestatement}
|
||||
\begin{mysyntdiag}
|
||||
\synt{case\ statement}
|
||||
\lit*{case} \synt{expression} \lit*{of}
|
||||
\<[b] case \\ \lit* ; \>
|
||||
\[ \synt{else\ part} \] \[ \lit* ; \]
|
||||
\lit*{end}
|
||||
\end{mysyntdiag}
|
||||
\begin{mysyntdiag}
|
||||
\synt{case}
|
||||
\<[b]
|
||||
\synt{constant} \[ \lit*{..} \synt{constant} \] \\
|
||||
\lit* ,
|
||||
\>
|
||||
\lit* :
|
||||
\synt{statement}
|
||||
\end{mysyntdiag}
|
||||
\begin{mysyntdiag}
|
||||
\synt{else\ part} \lit* {else} \synt{statement}
|
||||
\end{mysyntdiag}
|
||||
\end{diagram}
|
6
docs/syntax/compound.syn
Normal file
6
docs/syntax/compound.syn
Normal file
@ -0,0 +1,6 @@
|
||||
\begin{psyntax}{Compound statements}{compoundstatements}
|
||||
\synt{compound\ statement}
|
||||
\lit*{begin}
|
||||
\<[b] \synt{statement} \\ \lit* ; \>
|
||||
\lit*{end}
|
||||
\end{psyntax}
|
7
docs/syntax/conditio.syn
Normal file
7
docs/syntax/conditio.syn
Normal file
@ -0,0 +1,7 @@
|
||||
\begin{psyntax}{Conditional statements}{conditionalstatements}
|
||||
\synt{conditional\ statement}
|
||||
\(
|
||||
\synt{if\ statement}\\
|
||||
\synt{case\ statement}
|
||||
\)
|
||||
\end{psyntax}
|
6
docs/syntax/const.syn
Normal file
6
docs/syntax/const.syn
Normal file
@ -0,0 +1,6 @@
|
||||
\begin{psyntax}{Constant declaration}{constdec}
|
||||
\synt{constant\ declaration}
|
||||
\begin{rep}[b]
|
||||
\synt{identifier} \lit*= \synt{expression} \lit*; \\
|
||||
\end{rep}
|
||||
\end{psyntax}
|
14
docs/syntax/construct.syn
Normal file
14
docs/syntax/construct.syn
Normal file
@ -0,0 +1,14 @@
|
||||
\begin{diagram}{Constructors and destructors}{constuctdestruct}
|
||||
\begin{mysyntdiag}
|
||||
\synt{constructor\ header}
|
||||
\lit*{constructor}
|
||||
\( \synt{identifier} \\ \synt{qualified\ method\ identifier} \)
|
||||
\synt{formal\ parameter\ list}
|
||||
\end{mysyntdiag}
|
||||
\begin{mysyntdiag}
|
||||
\synt{desctructor\ header}
|
||||
\lit*{destructor}
|
||||
\( \synt{identifier} \\ \synt{qualified\ method\ identifier} \)
|
||||
\synt{formal\ parameter\ list}
|
||||
\end{mysyntdiag}
|
||||
\end{diagram}
|
29
docs/syntax/diagram.tex
Normal file
29
docs/syntax/diagram.tex
Normal file
@ -0,0 +1,29 @@
|
||||
%
|
||||
% Here we determine the style of the syntax diagrams.
|
||||
%
|
||||
% Define a 'boxing' environment
|
||||
\newenvironment{diagram}[2]%
|
||||
{\begin{quote}\rule{0.5pt}{1ex}%
|
||||
\rule[1ex]{\linewidth}{0.5pt}%
|
||||
\rule{0.5pt}{1ex}\\[-0.5ex]%
|
||||
\textbf{#1}\\[-0.5ex]}%
|
||||
{\rule{0.5pt}{1ex}%
|
||||
\rule{\linewidth}{0.5pt}%
|
||||
\rule{0.5pt}{1ex}\end{quote}}
|
||||
% Define mysyntdiag for my style of diagrams
|
||||
\newenvironment{mysyntdiag}%
|
||||
{\begin{syntdiag}\setlength{\sdmidskip}{.5em}\sffamily}%
|
||||
{\end{syntdiag}}%
|
||||
% Finally, define a combination of the above two.
|
||||
\newenvironment{psyntax}[2]{\begin{diagram}{#1}{#2}\begin{mysyntdiag}}%
|
||||
{\end{mysyntdiag}\end{diagram}}
|
||||
% Redefine the styles used in the diagram.
|
||||
\latex{\renewcommand{\litleft}{\bfseries\ }
|
||||
\renewcommand{\ulitleft}{\bfseries\ }
|
||||
\renewcommand{\syntleft}{\ }
|
||||
\renewcommand{\litright}{\ \rule[.5ex]{.5em}{2\sdrulewidth}}
|
||||
\renewcommand{\ulitright}{\ \rule[.5ex]{.5em}{2\sdrulewidth}}
|
||||
\renewcommand{\syntright}{\ \rule[.5ex]{.5em}{2\sdrulewidth}}
|
||||
}
|
||||
% Finally, a referencing command.
|
||||
\newcommand{\seesy}[1]{see diagram}
|
23
docs/syntax/expfact.syn
Normal file
23
docs/syntax/expfact.syn
Normal file
@ -0,0 +1,23 @@
|
||||
\begin{diagram}{Factors}{factors}
|
||||
\begin{mysyntdiag}
|
||||
\synt{factor}
|
||||
\( \lit* ( \synt{expression} \lit*) \\
|
||||
\synt{variable\ reference} \\
|
||||
\synt{function\ call} \\
|
||||
\synt{unsigned\ constant}\\
|
||||
\lit*{not} \synt{factor} \\
|
||||
\lit{sign} \synt{factor}\\
|
||||
\synt{set\ constructor}\\
|
||||
\synt{value\ typecast}\\
|
||||
\synt{address\ factor}\\
|
||||
\)
|
||||
\end{mysyntdiag}
|
||||
\begin{mysyntdiag}
|
||||
\synt{unsigned\ constant}
|
||||
\( \synt{unsigned\ number} \\
|
||||
\synt{character\ string} \\
|
||||
\synt{constant\ identifier} \\
|
||||
\lit*{Nil}
|
||||
\)
|
||||
\end{mysyntdiag}
|
||||
\end{diagram}
|
30
docs/syntax/expsimpl.syn
Normal file
30
docs/syntax/expsimpl.syn
Normal file
@ -0,0 +1,30 @@
|
||||
\begin{diagram}{Expressions}{expressions}
|
||||
\begin{mysyntdiag}
|
||||
\synt{expression}
|
||||
\synt{simple\ expression}
|
||||
\[
|
||||
\(
|
||||
\verb+ * + \\
|
||||
\verb+ <= + \\
|
||||
\verb+ > + \\
|
||||
\verb+ >= + \\
|
||||
\verb+ = + \\
|
||||
\verb+ <> + \\
|
||||
\verb+ in + \\
|
||||
\verb+ is +
|
||||
\)
|
||||
\synt{simple\ expression}
|
||||
\]
|
||||
\end{mysyntdiag}
|
||||
\begin{mysyntdiag}
|
||||
\synt{simple\ expression}
|
||||
\<[b] \synt{term} \\
|
||||
\(
|
||||
\lit* + \\
|
||||
\lit* - \\
|
||||
\lit*{or} \\
|
||||
\lit*{xor}
|
||||
\)
|
||||
\>
|
||||
\end{mysyntdiag}
|
||||
\end{diagram}
|
15
docs/syntax/expterm.syn
Normal file
15
docs/syntax/expterm.syn
Normal file
@ -0,0 +1,15 @@
|
||||
\begin{psyntax}{Terms}{terms}
|
||||
\synt{term}
|
||||
\<[b] \synt{factor} \\
|
||||
\(
|
||||
\verb+ * + \\
|
||||
\verb+ / + \\
|
||||
\lit*{div} \\
|
||||
\lit*{mod} \\
|
||||
\lit*{and} \\
|
||||
\lit*{shl} \\
|
||||
\lit*{shr} \\
|
||||
\lit*{as}
|
||||
\)
|
||||
\>
|
||||
\end{psyntax}
|
32
docs/syntax/fcall.syn
Normal file
32
docs/syntax/fcall.syn
Normal file
@ -0,0 +1,32 @@
|
||||
\begin{diagram}{Function calls}{functioncalls}
|
||||
\begin{mysyntdiag}
|
||||
\synt{function\ call}
|
||||
\(
|
||||
\synt{function\ identifier} \\
|
||||
\synt{method\ designator} \\
|
||||
\synt{qualified\ method\ designator}\\
|
||||
\synt{variable\ reference}
|
||||
\)
|
||||
\[
|
||||
\synt{actual\ parameter\ list}
|
||||
\]
|
||||
\end{mysyntdiag}
|
||||
\begin{mysyntdiag}
|
||||
\synt{actual\ parameter\ list}
|
||||
\lit* (
|
||||
\[
|
||||
\<[b]
|
||||
\synt{actual\ parameter} \\
|
||||
\lit* ,
|
||||
\>
|
||||
\]
|
||||
\lit* )
|
||||
\end{mysyntdiag}
|
||||
\begin{mysyntdiag}
|
||||
\synt{actual\ parameter}
|
||||
\(
|
||||
\synt{expression} \\
|
||||
\synt{variable\ reference}
|
||||
\)
|
||||
\end{mysyntdiag}
|
||||
\end{diagram}
|
10
docs/syntax/identifier.syn
Normal file
10
docs/syntax/identifier.syn
Normal file
@ -0,0 +1,10 @@
|
||||
\begin{psyntax}{Identifiers}{identifiers}
|
||||
\synt{identifier} \[ \synt{letter} \\ \lit*{\_} \]
|
||||
\begin{rep}[b] \\
|
||||
\(
|
||||
\synt{letter} \\
|
||||
\synt{digit} \\
|
||||
\lit*{\_}
|
||||
\)
|
||||
\end{rep}
|
||||
\end{psyntax}
|
9
docs/syntax/ifthen.syn
Normal file
9
docs/syntax/ifthen.syn
Normal file
@ -0,0 +1,9 @@
|
||||
\begin{psyntax}{If then statements}{ifthenstatement}
|
||||
\synt{if\ statement}
|
||||
\lit*{if}
|
||||
\synt{expression}
|
||||
\lit*{then} \synt{statement}
|
||||
\[
|
||||
\lit*{else} \synt{statement}
|
||||
\]
|
||||
\end{psyntax}
|
3
docs/syntax/label.syn
Normal file
3
docs/syntax/label.syn
Normal file
@ -0,0 +1,3 @@
|
||||
\begin{psyntax}{Label}{label}
|
||||
\synt{label} \( \synt{digit\ sequence} \\ \synt{identifier} \)
|
||||
\end{psyntax}
|
58
docs/syntax/numbers.syn
Normal file
58
docs/syntax/numbers.syn
Normal file
@ -0,0 +1,58 @@
|
||||
\begin{diagram}{Numbers}{numbers}
|
||||
\begin{mysyntdiag}
|
||||
\synt{hex\ digit\ sequence}
|
||||
\begin{rep}[b]
|
||||
\synt{hex\ digit} \\
|
||||
\end{rep}
|
||||
\end{mysyntdiag}
|
||||
\begin{mysyntdiag}
|
||||
\synt{bin\ digit\ sequence}
|
||||
\begin{rep}[b]
|
||||
\begin{stack}
|
||||
\lit*{1} \\ \lit*{0}
|
||||
\end{stack}
|
||||
\\
|
||||
\end{rep}
|
||||
\end{mysyntdiag}
|
||||
\begin{mysyntdiag}
|
||||
\synt{digit\ sequence}
|
||||
\begin{rep}[b]
|
||||
\synt{digit} \\
|
||||
\end{rep}
|
||||
\end{mysyntdiag}
|
||||
\begin{mysyntdiag}
|
||||
\synt{unsigned\ integer}
|
||||
\begin{stack}
|
||||
\synt{digit\ sequence} \\
|
||||
\lit*{\$} \synt{hex\ digit\ sequence} \\
|
||||
\lit*{\%} \synt{bin\ digit\ sequence}
|
||||
\end{stack}
|
||||
\end{mysyntdiag}
|
||||
\begin{mysyntdiag}
|
||||
sign \begin{stack} \lit* + \\ \lit* - \end{stack}
|
||||
\end{mysyntdiag}
|
||||
\begin{mysyntdiag}
|
||||
\synt{unsigned\ real} \synt{digit\ sequence}
|
||||
\begin{stack}
|
||||
\begin{stack} \\
|
||||
\lit . \synt{digit\ sequence}
|
||||
\end{stack}
|
||||
\begin{stack} \\
|
||||
\synt{scale\ factor}
|
||||
\end{stack} \\
|
||||
\synt{scale\ factor}
|
||||
\end{stack}
|
||||
\end{mysyntdiag}
|
||||
\begin{mysyntdiag}
|
||||
\synt{scale\ factor} \begin{stack} \lit*{E} \\ \lit*{e} \end{stack}
|
||||
\begin{stack}\\ \synt{sign} \end{stack} \synt{digit\ sequence}
|
||||
\end{mysyntdiag}
|
||||
\begin{mysyntdiag}
|
||||
\synt{unsigned\ number} \begin{stack} \synt{unsigned\ real} \\
|
||||
\synt{unsigned\ integer} \end{stack}
|
||||
\end{mysyntdiag}
|
||||
\begin{mysyntdiag}
|
||||
\synt{signed\ number} \begin{stack} \\ \synt{sign} \end{stack}
|
||||
\synt{unsigned\ number}
|
||||
\end{mysyntdiag}
|
||||
\end{diagram}
|
12
docs/syntax/procedure.syn
Normal file
12
docs/syntax/procedure.syn
Normal file
@ -0,0 +1,12 @@
|
||||
\begin{psyntax}{Procedure statements}{proecedurestatements}
|
||||
\synt{procedure\ statement}
|
||||
\(
|
||||
\synt{procedure\ identifier} \\
|
||||
\synt{method\ identifier} \\
|
||||
\synt{qualified\ method\ identifier} \\
|
||||
\synt{variable\ reference}
|
||||
\)
|
||||
\[
|
||||
\synt{actual\ parameter\ list}
|
||||
\]
|
||||
\end{psyntax}
|
42
docs/syntax/property.syn
Normal file
42
docs/syntax/property.syn
Normal file
@ -0,0 +1,42 @@
|
||||
\begin{diagram}{Properties}{properties}
|
||||
\begin{mysyntdiag}
|
||||
\synt{property\ definition}
|
||||
\lit*{property} \synt{identifier} \[ \synt{property\ interface} \]
|
||||
\synt{property\ specifiers}
|
||||
\end{mysyntdiag}
|
||||
\begin{mysyntdiag}
|
||||
\synt{property\ interface}
|
||||
\[ \synt{property\ parameter\ list}\] \lit*: \synt{type\ identifier}
|
||||
\end{mysyntdiag}
|
||||
\begin{mysyntdiag}
|
||||
\synt{property\ parameter\ list} \lit*[
|
||||
\<[b] \synt{parameter\ declaration} \\ \lit; \>
|
||||
\lit*]
|
||||
\end{mysyntdiag}
|
||||
\begin{mysyntdiag}
|
||||
\synt{property\ specifiers}
|
||||
\[ \synt{read\ specifier} \]
|
||||
\[ \synt{write\ specifier} \]
|
||||
\[ \synt{default\ specifier} \]
|
||||
\end{mysyntdiag}
|
||||
\begin{mysyntdiag}
|
||||
\synt{read\ specifier} \lit*{read} \synt{field\ or\ method}
|
||||
\end{mysyntdiag}
|
||||
\begin{mysyntdiag}
|
||||
\synt{write\ specifier} \lit*{write} \synt{field\ or\ method}
|
||||
\end{mysyntdiag}
|
||||
\begin{mysyntdiag}
|
||||
\synt{default\ specifier}
|
||||
\(
|
||||
\lit*{default} \[ \synt{constant} \] \\
|
||||
\lit*{nodefault}
|
||||
\)
|
||||
\end{mysyntdiag}
|
||||
\begin{mysyntdiag}
|
||||
\synt{field\ or\ method}
|
||||
\(
|
||||
\synt{field\ identifier} \\
|
||||
\synt{method\ identifier}
|
||||
\)
|
||||
\end{mysyntdiag}
|
||||
\end{diagram}
|
8
docs/syntax/repetiti.syn
Normal file
8
docs/syntax/repetiti.syn
Normal file
@ -0,0 +1,8 @@
|
||||
\begin{psyntax}{Repetitive statements}{repetitivestatament}
|
||||
\synt{repetitive\ statement}
|
||||
\(
|
||||
\synt{for\ statament}\\
|
||||
\synt{repeat\ statement}\\
|
||||
\synt{while\ statement}
|
||||
\)
|
||||
\end{psyntax}
|
15
docs/syntax/setconst.syn
Normal file
15
docs/syntax/setconst.syn
Normal file
@ -0,0 +1,15 @@
|
||||
\begin{diagram}{Set constructors}{setconstuctors}
|
||||
\begin{mysyntdiag}
|
||||
\synt{set\ constructor} \lit* [
|
||||
\[
|
||||
\<[b] \synt{set\ group} \\ \lit* , \>
|
||||
\]
|
||||
\lit* ]
|
||||
\end{mysyntdiag}
|
||||
\begin{mysyntdiag}
|
||||
\synt{set\ group} \synt{expression}
|
||||
\[
|
||||
\lit* {..} \synt{expression}
|
||||
\]
|
||||
\end{mysyntdiag}
|
||||
\end{diagram}
|
8
docs/syntax/simstate.syn
Normal file
8
docs/syntax/simstate.syn
Normal file
@ -0,0 +1,8 @@
|
||||
\begin{psyntax}{Simple statements}{simplestatement}
|
||||
\synt{siple\ statement}
|
||||
\(
|
||||
\synt{assignment\ statement} \\
|
||||
\synt{procedure\ statement} \\
|
||||
\synt{goto\ statement}
|
||||
\)
|
||||
\end{psyntax}
|
7
docs/syntax/sstring.syn
Normal file
7
docs/syntax/sstring.syn
Normal file
@ -0,0 +1,7 @@
|
||||
\begin{psyntax}{ShortString}{sstring}
|
||||
\synt{string\ type}
|
||||
\lit*{string}
|
||||
\[
|
||||
\lit*[ \synt{unsigned\ integer} \lit*]
|
||||
\]
|
||||
\end{psyntax}
|
10
docs/syntax/statement.syn
Normal file
10
docs/syntax/statement.syn
Normal file
@ -0,0 +1,10 @@
|
||||
\begin{psyntax}{Statements}{statements}
|
||||
\synt{statement}
|
||||
\[
|
||||
\synt{label} \lit*:
|
||||
\]
|
||||
\[
|
||||
\synt{simple\ statement}\\
|
||||
\synt{structured\ statement}
|
||||
\]
|
||||
\end{psyntax}
|
25
docs/syntax/string.syn
Normal file
25
docs/syntax/string.syn
Normal file
@ -0,0 +1,25 @@
|
||||
\begin{diagram}{Character strings}{characterstrings}
|
||||
\begin{mysyntdiag}
|
||||
\synt{character\ string}
|
||||
\begin{rep}[b] \( \synt{quoted\ string} \\ \synt{control\ string} \) \end{rep}
|
||||
\end{mysyntdiag}
|
||||
\begin{mysyntdiag}
|
||||
\synt{quoted\ string}
|
||||
\lit*{'}
|
||||
\begin{rep}[b] \synt{string\ character} \\ \end{rep}
|
||||
\lit*{'}
|
||||
\end{mysyntdiag}
|
||||
\begin{mysyntdiag}
|
||||
\synt{string\ character}
|
||||
\(
|
||||
\tok{ Any character except ' or CR} \\
|
||||
\lit*{''}
|
||||
\)
|
||||
\end{mysyntdiag}
|
||||
\begin{mysyntdiag}
|
||||
\synt{control\ string}
|
||||
\begin{rep}[b]
|
||||
\lit*{\#} \synt{unsigned\ integer} \\
|
||||
\end{rep}
|
||||
\end{mysyntdiag}
|
||||
\end{diagram}
|
10
docs/syntax/struct.syn
Normal file
10
docs/syntax/struct.syn
Normal file
@ -0,0 +1,10 @@
|
||||
\begin{psyntax}{Structured statements}{stucturedstatements}
|
||||
\synt{structured\ statement}
|
||||
\(
|
||||
\synt{compound\ statement}\\
|
||||
\synt{repetitive\ statement}\\
|
||||
\synt{conditional\ statement}\\
|
||||
\synt{exception\ statement}\\
|
||||
\synt{with\ statement}
|
||||
\\
|
||||
\end{psyntax}
|
12
docs/syntax/symbol.syn
Normal file
12
docs/syntax/symbol.syn
Normal file
@ -0,0 +1,12 @@
|
||||
\begin{diagram}{Recognised symbols}{symbols}
|
||||
\begin{mysyntdiag}
|
||||
\synt{letter} \( \lit*{A ... Z} \\ \lit*{a ... z} \)
|
||||
\end{mysyntdiag}
|
||||
\begin{mysyntdiag}
|
||||
\synt{digit} \lit*{0 ... 9}
|
||||
\end{mysyntdiag}
|
||||
\begin{mysyntdiag}
|
||||
\synt{hex\ digit}
|
||||
\( \lit*{0 ... 9} \\ \lit*{A ... F} \\ \lit*{a ...f} \)
|
||||
\end{mysyntdiag}
|
||||
\end{diagram}
|
7
docs/syntax/tcast.syn
Normal file
7
docs/syntax/tcast.syn
Normal file
@ -0,0 +1,7 @@
|
||||
\begin{psyntax}{Typecasts}{typecasts}
|
||||
\synt{value\ typecast}
|
||||
\synt{type\ identifier}
|
||||
\lit* (
|
||||
\synt{expression}
|
||||
\lit* )
|
||||
\end{psyntax}
|
18
docs/syntax/tconst.syn
Normal file
18
docs/syntax/tconst.syn
Normal file
@ -0,0 +1,18 @@
|
||||
\begin{diagram}{Typed constant declaration}{typedconstantdeclaration}
|
||||
\begin{mysyntdiag}
|
||||
\synt{typed\ constant\ declaration}
|
||||
\begin{rep}[b]
|
||||
\synt{identifier} \lit*: \synt{type} \lit*= \synt{typed\ constant} \lit*; \\
|
||||
\end{rep}
|
||||
\end{mysyntdiag}
|
||||
\begin{mysyntdiag}
|
||||
\synt{typed\ constant}
|
||||
\(
|
||||
\synt{constant} \\
|
||||
\synt{address\ constant} \\
|
||||
\synt{array\ constant} \\
|
||||
\synt{record\ constant} \\
|
||||
\synt{procedural\ constant}
|
||||
\)
|
||||
\end{mysyntdiag}
|
||||
\end{diagram}
|
11
docs/syntax/type.syn
Normal file
11
docs/syntax/type.syn
Normal file
@ -0,0 +1,11 @@
|
||||
\begin{psyntax}{Types}{type}
|
||||
\synt{type}
|
||||
\(
|
||||
\synt{simple\ type} \\
|
||||
\synt{string\ type} \\
|
||||
\synt{structured\ type} \\
|
||||
\synt{pointer\ type} \\
|
||||
\synt{procedural\ type}\\
|
||||
\synt{type\ identifier}
|
||||
\)
|
||||
\end{psyntax}
|
6
docs/syntax/typearr.syn
Normal file
6
docs/syntax/typearr.syn
Normal file
@ -0,0 +1,6 @@
|
||||
\begin{psyntax}{Array types}{arraytypes}
|
||||
\synt{array\ type}
|
||||
\[ \lit*{packed} \] \lit*{array}\lit*[
|
||||
\<[b] \synt{ordinal\ type} \\ \lit*, \>
|
||||
\lit*] \lit*{of} \synt{type}
|
||||
\end{psyntax}
|
62
docs/syntax/typeclas.syn
Normal file
62
docs/syntax/typeclas.syn
Normal file
@ -0,0 +1,62 @@
|
||||
\begin{diagram}{Class type}{classtype}
|
||||
\begin{mysyntdiag}
|
||||
\[ \lit*{packed} \]
|
||||
\lit*{class}
|
||||
\[ heritage \]
|
||||
\[
|
||||
\begin{rep}[b]
|
||||
\synt{component\ list} \\
|
||||
\synt{class\ visibility\ specifier}
|
||||
\end{rep} \lit*{end}
|
||||
\]
|
||||
\end{mysyntdiag}
|
||||
\begin{mysyntdiag}
|
||||
\synt{heritage} \lit*( \synt{class\ type\ identifier} \lit* )
|
||||
\end{mysyntdiag}
|
||||
\begin{mysyntdiag}
|
||||
\synt{component\ list}
|
||||
\[ \<[b] \synt{field\ definition} \\ \> \]
|
||||
\[
|
||||
\<[b]
|
||||
\(
|
||||
\synt{method\ definition} \\
|
||||
\synt{property\ definition}
|
||||
\) \\
|
||||
\>
|
||||
\]
|
||||
\end{mysyntdiag}
|
||||
\begin{mysyntdiag}
|
||||
\synt{field\ definition} \synt{identifier\ list} \lit*: \synt{type} \lit*;
|
||||
\end{mysyntdiag}
|
||||
\begin{mysyntdiag}
|
||||
\synt{method\ definition}
|
||||
\(
|
||||
\[
|
||||
\lit*{class}
|
||||
\]
|
||||
\(
|
||||
\synt{function\ header} \\
|
||||
\synt{procedure\ header}
|
||||
\) \\
|
||||
\synt{constructor\ header} \\
|
||||
\synt{desctuctor\ header}
|
||||
\)
|
||||
\lit*;
|
||||
\[
|
||||
\lit*{virtual} \lit*;
|
||||
\]
|
||||
\[ \synt{call\ modifiers} \lit*; \]
|
||||
\[
|
||||
\lit*{abstract} \lit*;
|
||||
\]
|
||||
\end{mysyntdiag}
|
||||
\begin{mysyntdiag}
|
||||
\synt{class\ visibility\ specifier}
|
||||
\(
|
||||
\lit*{private}\\
|
||||
\lit*{protected}\\
|
||||
\lit*{public}\\
|
||||
\lit*{published}
|
||||
\)
|
||||
\end{mysyntdiag}
|
||||
\end{diagram}
|
3
docs/syntax/typedecl.syn
Normal file
3
docs/syntax/typedecl.syn
Normal file
@ -0,0 +1,3 @@
|
||||
\begin{psyntax}{Type declaration}{typedecl}
|
||||
\synt{type\ declaration} \synt{identifier} \lit*= \synt{type} \lit* ;
|
||||
\end{psyntax}
|
26
docs/syntax/typeenum.syn
Normal file
26
docs/syntax/typeenum.syn
Normal file
@ -0,0 +1,26 @@
|
||||
\begin{diagram}{Enumerated type}{enumeratedtype}
|
||||
\begin{mysyntdiag}
|
||||
\synt{enumerated\ type} \lit* (
|
||||
\begin{rep}[b]
|
||||
\(
|
||||
\synt{identifier\ list} \\
|
||||
\synt{assigned\ enum\ list}
|
||||
\) \\
|
||||
\lit*,
|
||||
\end{rep} \lit )
|
||||
\end{mysyntdiag}
|
||||
\begin{mysyntdiag}
|
||||
\synt{identifier\ list}
|
||||
\begin{rep}[b]
|
||||
\synt{identifier} \\
|
||||
\lit*,
|
||||
\end{rep}
|
||||
\end{mysyntdiag}
|
||||
\begin{mysyntdiag}
|
||||
\synt{assigned\ enum\ list}
|
||||
\begin{rep}[b]
|
||||
\synt{identifier} \lit*{:=} \synt{expression} \\
|
||||
\lit*,
|
||||
\end{rep}
|
||||
\end{mysyntdiag}
|
||||
\end{diagram}
|
3
docs/syntax/typefil.syn
Normal file
3
docs/syntax/typefil.syn
Normal file
@ -0,0 +1,3 @@
|
||||
\begin{psyntax}{File types}{filetypes}
|
||||
\synt{file\ type} \lit*{file} \[ \lit*{of} \synt{type} \]
|
||||
\end{psyntax}
|
51
docs/syntax/typeobj.syn
Normal file
51
docs/syntax/typeobj.syn
Normal file
@ -0,0 +1,51 @@
|
||||
\begin{diagram}{object type}{objecttype}
|
||||
\begin{mysyntdiag}
|
||||
\[ \lit*{packed} \]
|
||||
\lit*{object}
|
||||
\[ heritage \]
|
||||
\[
|
||||
\begin{rep}[b]
|
||||
\synt{component\ list} \\
|
||||
\synt{object\ visibility\ specifier}
|
||||
\end{rep} \lit*{end}
|
||||
\]
|
||||
\end{mysyntdiag}
|
||||
\begin{mysyntdiag}
|
||||
\synt{heritage} \lit*( \synt{object\ type\ identifier} \lit* )
|
||||
\end{mysyntdiag}
|
||||
\begin{mysyntdiag}
|
||||
\synt{component\ list}
|
||||
\[ \<[b] \synt{field\ definition} \\ \> \]
|
||||
\[ \<[b] \synt{method\ definition} \\ \> \]
|
||||
\end{mysyntdiag}
|
||||
\begin{mysyntdiag}
|
||||
\synt{field\ definition} \synt{identifier\ list} \lit*: \synt{type} \lit*;
|
||||
\end{mysyntdiag}
|
||||
\begin{mysyntdiag}
|
||||
\synt{method\ definition}
|
||||
\(
|
||||
\synt{function\ header} \\
|
||||
\synt{procedure\ header} \\
|
||||
\synt{constructor\ header} \\
|
||||
\synt{desctuctor\ header}
|
||||
\)
|
||||
\lit*; \synt{method\ directives}
|
||||
\end{mysyntdiag}
|
||||
\begin{mysyntdiag}
|
||||
\synt{method\ directives}
|
||||
\[
|
||||
\lit*{virtual} \lit*;
|
||||
\]
|
||||
\[ \synt{call\ modifiers} \lit*; \]
|
||||
\[
|
||||
\lit*{abstract} \lit*;
|
||||
\]
|
||||
\end{mysyntdiag}
|
||||
\begin{mysyntdiag}
|
||||
\synt{object\ visibility\ specifier}
|
||||
\(
|
||||
\lit*{private} \\
|
||||
\lit*{public}
|
||||
\)
|
||||
\end{mysyntdiag}
|
||||
\end{diagram}
|
8
docs/syntax/typeord.syn
Normal file
8
docs/syntax/typeord.syn
Normal file
@ -0,0 +1,8 @@
|
||||
\begin{psyntax}{Ordinal types}{ordinaltypes}
|
||||
\synt{ordinal\ type}
|
||||
\(
|
||||
\synt{subrange\ type} \\
|
||||
\synt{enumerated\ type} \\
|
||||
\synt{ordinal\ type\ identifier}\\
|
||||
\)
|
||||
\end{psyntax}
|
3
docs/syntax/typepoin.syn
Normal file
3
docs/syntax/typepoin.syn
Normal file
@ -0,0 +1,3 @@
|
||||
\begin{psyntax}{Pointer types}{pointertypes}
|
||||
\synt{pointer\ type} \lit*\^{} \synt{type\ identifier}
|
||||
\end{psyntax}
|
27
docs/syntax/typeproc.syn
Normal file
27
docs/syntax/typeproc.syn
Normal file
@ -0,0 +1,27 @@
|
||||
\begin{diagram}{Procedural Types}{Procedural types}
|
||||
\begin{mysyntdiag}
|
||||
\synt{procedural\ type}
|
||||
\( \synt{function\ header} \\
|
||||
\synt{procedure\ header}
|
||||
\)
|
||||
\[ \lit*{of} \lit*{object} \]
|
||||
\[ \synt{call\ modifiers} \]
|
||||
\end{mysyntdiag}
|
||||
\begin{mysyntdiag}
|
||||
\synt{function\ header} \lit*{function} \synt{formal\ parameter\ list}
|
||||
\lit*: \synt{result\ type}
|
||||
\end{mysyntdiag}
|
||||
\begin{mysyntdiag}
|
||||
\synt{procedure\ header} \lit*{procedure} \synt{formal\ parameter\ list}
|
||||
\end{mysyntdiag}
|
||||
\begin{mysyntdiag}
|
||||
\synt{call\ modifiers}
|
||||
\(
|
||||
\lit*{register} \\
|
||||
\lit*{cdecl} \\
|
||||
\lit*{pascal} \\
|
||||
\lit*{stdcall} \\
|
||||
\lit*{popstack}
|
||||
\)
|
||||
\end{mysyntdiag}
|
||||
\end{diagram}
|
28
docs/syntax/typerec.syn
Normal file
28
docs/syntax/typerec.syn
Normal file
@ -0,0 +1,28 @@
|
||||
\begin{diagram}{Record types}{recordtypes}
|
||||
\begin{mysyntdiag}
|
||||
\synt{record\ type} \[ \lit*{packed} \] \lit*{record}
|
||||
\[ \synt{field\ list} \] \lit*{end}
|
||||
\end{mysyntdiag}
|
||||
\begin{mysyntdiag}
|
||||
\synt{field\ list}
|
||||
\(
|
||||
\synt{fixed\ fields} \\
|
||||
\[ \synt{fixed\ fields} \lit*; \] \synt{variant\ part}
|
||||
\)
|
||||
\[ \lit*; \]
|
||||
\end{mysyntdiag}
|
||||
\begin{mysyntdiag}
|
||||
\synt{fixed\ fields}
|
||||
\<[b] \synt{identifier\ list} \lit*: \synt{type} \\ \lit*; \>
|
||||
\end{mysyntdiag}
|
||||
\begin{mysyntdiag}
|
||||
\synt{variant\ part}
|
||||
\[ \synt{identifier} \lit*: \]
|
||||
\synt{ordinal\ type\ identifier}
|
||||
\lit*{of} \<[b] \synt{variant} \\ \lit*; \>
|
||||
\end{mysyntdiag}
|
||||
\begin{mysyntdiag}
|
||||
\synt{variant} \<[b] \synt{constant} \lit*, \>
|
||||
\lit*: \lit*( \[ \synt{field\ list} \] \lit*)
|
||||
\end{mysyntdiag}
|
||||
\end{diagram}
|
3
docs/syntax/typeset.syn
Normal file
3
docs/syntax/typeset.syn
Normal file
@ -0,0 +1,3 @@
|
||||
\begin{psyntax}{Set Types}{typeset}
|
||||
\synt{set\ type} \lit*{set} \lit*{of} \synt{ordinal\ type}
|
||||
\end{psyntax}
|
12
docs/syntax/typesim.syn
Normal file
12
docs/syntax/typesim.syn
Normal file
@ -0,0 +1,12 @@
|
||||
\begin{diagram}{Simple types}{simpletypes}
|
||||
\begin{mysyntdiag}
|
||||
\synt{simple\ type}
|
||||
\(
|
||||
\synt{ordinal\ type} \\
|
||||
\synt{real\ type}
|
||||
\)
|
||||
\end{mysyntdiag}
|
||||
\begin{mysyntdiag}
|
||||
\synt{real\ type} \synt{real\ type\ identifier}
|
||||
\end{mysyntdiag}
|
||||
\end{diagram}
|
11
docs/syntax/typestru.syn
Normal file
11
docs/syntax/typestru.syn
Normal file
@ -0,0 +1,11 @@
|
||||
\begin{psyntax}{Structured Types}{typestructured}
|
||||
\synt{structured\ type}
|
||||
\(
|
||||
\synt{array\ type} \\
|
||||
\synt{record\ type} \\
|
||||
\synt{class\ type} \\
|
||||
\synt{class\ reference\ type}\\
|
||||
\synt{set\ type}\\
|
||||
\synt{file\ type}
|
||||
\)
|
||||
\end{psyntax}
|
3
docs/syntax/typesubr.syn
Normal file
3
docs/syntax/typesubr.syn
Normal file
@ -0,0 +1,3 @@
|
||||
\begin{psyntax}{Subrange types}{subranges}
|
||||
\synt{subrange\ type} \synt{constant} \lit*{..} \synt{constant}
|
||||
\end{psyntax}
|
Loading…
Reference in New Issue
Block a user