Listing 1 Ada Symbol Table Package
package SYM_UTIL is -- Global debug switch. SYM_UTIL_DEBUG: BOOLEAN := FALSE ; -- Add symbol to table. procedure SYM_ADD (NAME: STRING, VALUE: INTEGER) -- Delete symbol from table. procedure SYM_DELETE (NAME: STRING) ; -- Lookup a symbol. function SYM_LOOKUP (NAME: STRING) return INTEGER ; end SYM_UTIL ; package body SYM_UTIL is -- Internal variables. type SYMBOL NODE is record ... end record ; SYMBOL_LIST: access SYMBOL_NODE := null ; -- Public functions. procedure SYM_ADD (NAME: STRING, VALUE: INTEGER) is begin ... adds NAME/VALUE pair to the symbol table ... end SYM_ADD ; procedure SYM_DELETE (NAME: STRING) is begin ... deletes NAME from the symbol table ... end SYM_DELETE ; function SYM_LOOKUP (NAME: STRING) return INTEGER is begin ... returns NAME's value from the symbol table ... end SYM_LOOKUP ; -- Internal function called -- by the other functions. function SYM_LOCATE (NAME: STRING) return access SYMBOL_NODE is begin ... locates NAME's node in the symbol list ... end SYM_LOCATE ; end SYM_UTIL ; /* End of File */