runtime(algol68): Add new syntax file, ftplugin and filetype detection

- Add a syntax file update to Neville Dempsey's long-serving version
- Add a new rudimentary ftplugin
- Add filetype detection

Changes to the syntax file include:
- improved prelude, number and symbol highlighting
- prelude highlighting tests
- updated boiler plate

Note that these runtime files currently target Algol 68 Genie employing
the default UPPER stropping regime.  Support for GNU Algol 68 should
also be usable with the UPPER stropping regime, although somewhat less
complete.  Full support for the SUPPER stropping regime in GNU Algol 68
is also planned.

closes: #19818

Co-authored-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Janis Papanagnou <janis_papanagnou@hotmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
Doug Kearns
2026-04-26 14:31:55 +00:00
committed by Christian Brabandt
parent 1ce03d674a
commit 3cc7d50716
135 changed files with 5311 additions and 1 deletions
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,115 @@
# Algol 68 Denotations #
# BOOL #
BOOL x = TRUE
BOOL x = FALSE
# INT #
INT x = 0
INT x = 42
# whitespace #
INT x = 1 000 000
# monadic operators #
INT x = -42
INT x = +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
# 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
# BITS #
BITS x = 2r101010
BITS x = 4r222
BITS x = 8r52
BITS x = 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"