Files
Doug Kearns 4e6e1fc5ea runtime(algol68): Update syntax, support size prefixes in denotations
Explicitly match the LONG/SHORT size prefixes in integral, real and bits
denotations.

LONG/SHORT are matched as part of the denotation rather than as a mode.

closes: #20512

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-06-20 16:35:14 +00:00

173 lines
3.0 KiB
Plaintext

#
Algol 68 Denotations
#
# BOOL #
BOOL x = TRUE
BOOL x = FALSE
# INT #
INT x = 0
INT x = 42
# size #
SHORT INT x = SHORT 42
LONG INT x = LONG 42
SHORT SHORT INT x = SHORT SHORT 42
LONG LONG INT x = LONG LONG 42
# whitespace #
INT x = 1 000 000
# monadic operators #
INT x = -42
INT x = +42
SHORT INT x = +SHORT 42
LONG INT x = -LONG 42
SHORT INT x = -SHORT 42
LONG INT x = +LONG 42
SHORT SHORT INT x = +SHORT SHORT 42
LONG LONG INT x = -LONG LONG 42
SHORT SHORT INT x = -SHORT SHORT 42
LONG LONG INT x = +LONG LONG 42
# REAL #
REAL x = .42
REAL x = 42.42
REAL x = 42e42
REAL x = 42E42
REAL x = 42\42
REAL x = 42⏨42
REAL x = 42e-42
REAL x = 42E-42
REAL x = 42\-42
REAL x = 42⏨-42
REAL x = 42e+42
REAL x = 42E+42
REAL x = 42\+42
REAL x = 42⏨+42
REAL x = .42e42
REAL x = .42E42
REAL x = .42\42
REAL x = .42⏨42
REAL x = .42e-42
REAL x = .42E-42
REAL x = .42\-42
REAL x = .42⏨-42
REAL x = .42e+42
REAL x = .42E+42
REAL x = .42\+42
REAL x = .42⏨+42
REAL x = 42.42e42
REAL x = 42.42E42
REAL x = 42.42\42
REAL x = 42.42⏨42
REAL x = 42.42e-42
REAL x = 42.42E-42
REAL x = 42.42\-42
REAL x = 42.42⏨-42
REAL x = 42.42e+42
REAL x = 42.42E+42
REAL x = 42.42\+42
REAL x = 42.42⏨+42
# size #
SHORT REAL x = SHORT .42
SHORT REAL x = SHORT 42.42
SHORT REAL x = SHORT 42e42
LONG REAL x = LONG .42
LONG REAL x = LONG 42.42
LONG REAL x = LONG 42e42
SHORT SHORT REAL x = SHORT SHORT .42
SHORT SHORT REAL x = SHORT SHORT 42.42
SHORT SHORT REAL x = SHORT SHORT 42e42
LONG LONG REAL x = LONG LONG .42
LONG LONG REAL x = LONG LONG 42.42
LONG LONG REAL x = LONG LONG 42e42
# whitespace #
REAL x = 4 2 . 4 2 e + 4 2
REAL x = 4 2 . 4 2 \ + 4 2
REAL x = 4 2 . 4 2 ⏨ + 4 2
# monadic operators #
REAL x = -42.42
REAL x = +42.42
SHORT REAL x = +SHORT 42.42
LONG REAL x = -LONG 42.42
SHORT REAL x = -SHORT 42.42
LONG REAL x = +LONG 42.42
SHORT SHORT REAL x = +SHORT SHORT 42.42
LONG LONG REAL x = -LONG LONG 42.42
SHORT SHORT REAL x = -SHORT SHORT 42.42
LONG LONG REAL x = +LONG LONG 42.42
# BITS #
BITS x = 2r101010
BITS x = 4r222
BITS x = 8r52
BITS x = 16r2a
# size #
SHORT BITS x = SHORT 2r101010
SHORT BITS x = SHORT 4r222
SHORT BITS x = SHORT 8r52
SHORT BITS x = SHORT 16r2a
LONG BITS x = LONG 2r101010
LONG BITS x = LONG 4r222
LONG BITS x = LONG 8r52
LONG BITS x = LONG 16r2a
SHORT SHORT BITS x = SHORT SHORT 2r101010
SHORT SHORT BITS x = SHORT SHORT 4r222
SHORT SHORT BITS x = SHORT SHORT 8r52
SHORT SHORT BITS x = SHORT SHORT 16r2a
LONG LONG BITS x = LONG LONG 2r101010
LONG LONG BITS x = LONG LONG 4r222
LONG LONG BITS x = LONG LONG 8r52
LONG LONG BITS x = LONG LONG 16r2a
# whitespace #
BITS x = 2r 1010 1010
# unmatched by bad pattern in legacy versions of syntax file #
BITS x = 16r99
# STRING #
STRING s = "Foo Bar"
# quote escape #
STRING s = """"
STRING s = " "" "
STRING s = "Foo"""
STRING s = """Bar"
STRING s = "Foo""Bar"
# line continuation #
STRING s = "Foo\
Bar"
STRING s = "Foo""\
Bar"
STRING s = "Foo\
""Bar"