+initial implementation

This commit is contained in:
michael 1998-09-21 07:11:59 +00:00
parent a1cdc96c84
commit 5ed5681d83
43 changed files with 718 additions and 0 deletions

10
docs/syntax/address.syn Normal file
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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}

View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View File

@ -0,0 +1,3 @@
\begin{psyntax}{Subrange types}{subranges}
\synt{subrange\ type} \synt{constant} \lit*{..} \synt{constant}
\end{psyntax}