a68: Support for decimal radix in bits denotations
Algol68 compiler now accepts decimal radix for bit denotations, aiding transput and FFI.
The Algol68 compiler has been extended to support decimal radix (base 10) in bit denotations, implementing a GNU extension. This change is particularly useful for transput operations and Foreign Function Interface (FFI) calls where precise bit counts represented in decimal are needed. A compile-time diagnostic is also added to catch invalid radices.
In Details
This commit introduces support for the GNU extension GNU68-2026-003-decimal-radices into the Algol68 front-end. Modifications in ga68.vw add syntax for 10r radix in bit denotations, and a68-parser-scanner.cc's get_next_token is updated to recognize and process these. This aims to improve interoperability and ease of use when dealing with bit-level data, especially when interacting with external systems or performing I/O.
- bits denotations
- In Algol68, a way to specify a value as a sequence of bits, often used for fixed-size data structures or bit manipulation.
- radix
- The base of a numeral system, e.g., radix 10 for decimal and radix 16 for hexadecimal.
- transput
- Algol68's term for input and output operations.
- FFI
- Foreign Function Interface. A mechanism allowing a program to call functions or use data defined in a different programming language.