a68: Register publicized type_decls in the global range
Ensures Algol 68 publicized type declarations are correctly registered globally.
This change ensures that publicized type declarations in the Algol 68 front-end are properly registered within the global symbol table range. The function a68_lower_mode_declaration now uses a68_add_global_decl for mode declarations that are in public ranges. This improves the management and visibility of type definitions, ensuring they are accessible and correctly handled across the compilation process.
In Details
The a68_lower_mode_declaration function has been updated to use a68_add_global_decl when processing mode declarations that reside in public ranges. This ensures that such type declarations are correctly registered in the global symbol table, making them visible and accessible throughout the compilation scope. This is essential for maintaining the integrity of the type system and ensuring correct name resolution for types defined in Algol 68 programs.
- a68
- GCC's front-end for the Algol 68 programming language.
- type_decls
- Declarations that define new types or aliases for existing types within a programming language.
- global range
- The scope in a compiler's symbol table that encompasses all declarations visible throughout the entire program, as opposed to local scopes within functions or blocks.
- symbol table
- A data structure used by a compiler to store information about identifiers (such as variable and function names) encountered in the source code.
- mode declaration
- In Algol 68, a declaration that introduces a new mode (type) or an alias for an existing mode.