[A68-JARGON][COMMITTED] New term: skip
Jose E. Marchesi
jemarch@gnu.org
Thu Jun 11 21:52:40 GMT 2026
---
src/Makefile.am | 2 +
src/a68-jargon.texi | 4 +-
src/skip.texi | 93 +++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 98 insertions(+), 1 deletion(-)
create mode 100644 src/skip.texi
diff --git a/src/Makefile.am b/src/Makefile.am
index 1ff0594..3cfd3e5 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -56,6 +56,7 @@ a68_jargon_TEXINFOS = actual-declarer.texi \
sample-generator.texi \
shortsety.texi \
sizety.texi \
+ skip.texi \
specification-part.texi \
statement.texi \
strict-language.texi \
@@ -123,6 +124,7 @@ man_MANS = a68-jargon.7algol \
sample-generator.7algol \
shortsety.7algol \
sizety.7algol \
+ skip.7algol \
specification-part.7algol \
statement.7algol \
strict-language.7algol \
diff --git a/src/a68-jargon.texi b/src/a68-jargon.texi
index 9e418f9..e6e18df 100644
--- a/src/a68-jargon.texi
+++ b/src/a68-jargon.texi
@@ -174,7 +174,7 @@ Language
* Sample Generator::
* Shortsety::
* Sizety::
-@c * SKIP::
+* Skip::
* Statement::
@c * Straightening::
* Specification Part::
@@ -406,6 +406,7 @@ Jose E. Marchesi <jemarch@gnu.org>
* Sample Generator::
* Shortsety::
* Sizety::
+* Skip::
* Statement::
* Specification Part::
* String Break::
@@ -456,6 +457,7 @@ Jose E. Marchesi <jemarch@gnu.org>
@include sample-generator.texi
@include shortsety.texi
@include sizety.texi
+@include skip.texi
@include statement.texi
@include specification-part.texi
@include string-break.texi
diff --git a/src/skip.texi b/src/skip.texi
new file mode 100644
index 0000000..75c7fce
--- /dev/null
+++ b/src/skip.texi
@@ -0,0 +1,93 @@
+@c This file is part of the Algol 68 Jargon File.
+@c
+@c Copyright (C) 2026 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 Skip
+@section Skip
+
+@c man title development of a mode
+
+@subheading Meaning
+@c man begin MEANING
+@code{@B{skip}} is a unit, and as such yields a value of a particular
+mode. It can only be used in a strong syntactic position, where the
+compiler can determine the desired mode.
+
+The particular value yielded by @code{@B{skip}} is non-important, and
+is in fact undefined in the Revised language. However, some
+implementations always use the same values according to the desired
+mode. For example, in GCC the @code{@B{skip}} of an @code{@B{int}} is
+always 0, and the @code{@B{skip}} of a string is always the empty
+string @code{""}. Programs intended to be portable among different
+Algol 68 implementations should not make advantage of this.
+
+The reference language includes a shorter representation for
+@code{@B{skip}}: the tilde character @code{~}.
+
+A typical use of @code{@B{skip}} is in the do-part of loop clauses,
+like in:
+
+@example
+@B{for} i @B{to} @B{UPB} elems'set
+@B{while} (name'elems[i] = name | e := elems[i]);
+ e :/=: @B{nil}
+@B{do} ~ @B{od}
+@end example
+
+@code{@B{skip}} is also useful when doing top-down programming, for
+example when deferring the implementation of a procedure like in:
+
+@example
+@B{proc} whatever = (@B{int} arg) @B{int}:
+ @B{skip}; @{ WRITEME @}
+@end example
+
+Another typical use is in contexts in which an unit is required after
+a set of declarations. This is the case with serial clauses and
+module definitions:
+
+@example
+@B{module} @B{Constants} =
+@B{def}
+ @B{pub} @B{real} pi = 3.14159;
+ @B{pub} @B{real} e = 2.71828;
+ @B{skip}
+@B{fed}
+@end example
+@c man end
+
+@subheading Syntax
+@c man begin SYNTAX
+
+[RR 5.5.2.1]
+@example
+a) strong MOID NEST skip@{5A@} : skip@{94f@} token.
+@end example
+
+@c man end
+
+@subheading See Also
+
+@itemize @bullet
+@item [RR 5.5.2.1.a]
+@end itemize
+
+@ignore
+@c man begin AUTHOR
+Jose E. Marchesi <jemarch@gnu.org>
+@c man end
+@c man begin SEEALSO
+[RR 5.5.2.1.a]
+@c man end
+@end ignore
--
2.39.5
More information about the Algol68
mailing list