[JARGON][COMMITTED] New terms VOID-unit and Statement
Jose E. Marchesi
jemarch@gnu.org
Sun Mar 9 12:03:53 GMT 2025
New terms VOID-unit and Statement
diff --git a/src/Makefile.am b/src/Makefile.am
index 7b578d4..f965449 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -45,6 +45,7 @@ a68_jargon_TEXINFOS = actual-parameter.texi \
shortsety.texi \
sizety.texi \
specification-part.texi \
+ statement.texi \
strict-language.texi \
string-break.texi \
structure-display.texi \
@@ -54,6 +55,7 @@ a68_jargon_TEXINFOS = actual-parameter.texi \
trimmer.texi \
uninitiated-reader.texi \
vacuum.texi \
+ void-unit.texi \
well-formedness.texi \
widening.texi \
worthy-character.texi
@@ -94,6 +96,7 @@ man_MANS = a68-jargon.7algol \
shortsety.7algol \
sizety.7algol \
specification-part.7algol \
+ statement.7algol \
strict-language.7algol \
string-break.7algol \
structure-display.7algol \
@@ -103,6 +106,7 @@ man_MANS = a68-jargon.7algol \
trimmer.7algol \
uninitiated-reader.7algol \
vacuum.7algol \
+ void-unit.7algol \
well-formedness.7algol \
widening.7algol \
worthy-character.7algol
diff --git a/src/a68-jargon.texi b/src/a68-jargon.texi
index f3121a4..06ead01 100644
--- a/src/a68-jargon.texi
+++ b/src/a68-jargon.texi
@@ -165,7 +165,7 @@ Language
* Shortsety::
* Sizety::
@c * SKIP::
-@c * Statement::
+* Statement::
@c * Straightening::
* Specification Part::
* String Break::
@@ -178,10 +178,10 @@ Language
@c * Value::
@c * Variable::
@c * Variable Declaration::
-@c * Void Unit::
@c * Voiding::
@c * Weak Dereferencing::
* Vacuum::
+* Void Unit::
* Well-Formedness::
* Widening::
* Worthy Character::
@@ -379,6 +379,7 @@ Jose E. Marchesi <jemarch@gnu.org>
* Ravelling::
* Shortsety::
* Sizety::
+* Statement::
* Specification Part::
* String Break::
* Structure Display::
@@ -386,6 +387,7 @@ Jose E. Marchesi <jemarch@gnu.org>
* Subscript::
* Trimmer::
* Vacuum::
+* Void Unit::
* Well-Formedness::
* Widening::
* Worthy Character::
@@ -412,6 +414,7 @@ Jose E. Marchesi <jemarch@gnu.org>
@include ravelling.texi
@include shortsety.texi
@include sizety.texi
+@include statement.texi
@include specification-part.texi
@include string-break.texi
@include structure-display.texi
@@ -419,6 +422,7 @@ Jose E. Marchesi <jemarch@gnu.org>
@include subscript.texi
@include trimmer.texi
@include vacuum.texi
+@include void-unit.texi
@include well-formedness.texi
@include widening.texi
@include worthy-character.texi
diff --git a/src/statement.texi b/src/statement.texi
new file mode 100644
index 0000000..a319962
--- /dev/null
+++ b/src/statement.texi
@@ -0,0 +1,34 @@
+@c This file is part of the Algol 68 Jargon File.
+@c
+@c Copyright (C) 2025 Jose E. Marchesi
+@c
+@c You can redistribute and/or modify this document under the terms of
+@c the GNU General Public License as published by the Free Software
+@c Foundation, either version 3 of the License, or (at your option) any
+@c later version.
+@c
+@c Alternatively, permission is granted to copy, distribute and/or modify
+@c this document under the terms of the GNU Free Documentation License,
+@c Version 1.3 or any later version published by the Free Software
+@c Foundation; with no Invariant Sections, no Front-Cover Texts, and no
+@c Back-Cover Texts.
+
+@node Statement
+@section Statement
+
+@c man title statement VOID-units
+
+@subheading See Also
+
+@itemize @bullet
+@item @ref{Void Unit}
+@end itemize
+
+@ignore
+@c man begin AUTHOR
+Jose E. Marchesi <jemarch@gnu.org>
+@c man end
+@c man begin SEEALSO
+void-unit(7algol)
+@c man end
+@end ignore
diff --git a/src/void-unit.texi b/src/void-unit.texi
new file mode 100644
index 0000000..00edecb
--- /dev/null
+++ b/src/void-unit.texi
@@ -0,0 +1,76 @@
+@c This file is part of the Algol 68 Jargon File.
+@c
+@c Copyright (C) 2025 Jose E. Marchesi
+@c
+@c You can redistribute and/or modify this document under the terms of
+@c the GNU General Public License as published by the Free Software
+@c Foundation, either version 3 of the License, or (at your option) any
+@c later version.
+@c
+@c Alternatively, permission is granted to copy, distribute and/or modify
+@c this document under the terms of the GNU Free Documentation License,
+@c Version 1.3 or any later version published by the Free Software
+@c Foundation; with no Invariant Sections, no Front-Cover Texts, and no
+@c Back-Cover Texts.
+
+@node Void Unit
+@section Void Unit
+
+@c man title void-unit statements in Algol 68
+
+@subheading Meaning
+@c man begin MEANING
+A serial clause contains one or more units. Of these, the units
+preceding a @R{Completer,completer} and the unit appearing last in the
+clause yield a value which in turn will be the value yielded by the
+complete serial clause.
+
+Consider the following example:
+
+@example
+@B{begin}
+ @B{int} tmp := a;
+ a := b;
+ @B{if} tmp = 0 @B{then} divbyzero @B{fi};
+ a / temp @B{exit}
+divbyzero:
+ 0
+@B{end}
+@end example
+
+@noindent
+This particular serial clause contains one declaration, one label and
+four units.
+
+The units @code{a / tmp}, which appears right before a completer, and
+and @code{0}, which is the unit appearing last in the serial clause,
+yield an integral value which is the result of the serial clause.
+These are called @code{@B{int}-units} or, more generally,
+@code{@B{mode}-units}.
+
+On the other hand the units @code{a := b} and @code{@B{if} tmp = 0
+@B{then} divbyzero @B{fi}} also yield values. For example, the
+assignation yields @code{a} of mode @code{@B{ref} @B{int}}. However,
+the value yielded by these units gets @dfn{voided} and discarded.
+These are @dfn{@B{void}-units}, also known as @dfn{statements}.
+@c man end
+
+@subheading See Also
+
+@itemize @bullet
+@c @item @ref{Unit}
+@c @item @ref{Serial Clause}
+@c @item @ref{Voiding}
+@item @ref{Statement}
+@item @ref{Completer}
+@end itemize
+
+@ignore
+@c man begin AUTHOR
+Jose E. Marchesi <jemarch@gnu.org>
+@c man end
+@c man begin SEEALSO
+statement(7algol), serial-clause(7algol), completer(7algol), unit(7algol),
+voiding(7algol)
+@c man end
+@end ignore
More information about the Algol68
mailing list