nightshade

The nightshade programming language, compiler and tools (WIP)
Log | Files | Refs | README

commit fcf44fe26af9048bbb2def386a21ea3b2baa4060
parent 3250389fdcabca0de98cdc899ecc30b6d284fb2d
Author: citbl <citbl@citbl.org>
Date:   Fri, 12 Jun 2026 20:44:11 +1000

semantic init

Diffstat:
Asrc/sem.adb | 15+++++++++++++++
Asrc/sem.ads | 34++++++++++++++++++++++++++++++++++
2 files changed, 49 insertions(+), 0 deletions(-)

diff --git a/src/sem.adb b/src/sem.adb @@ -0,0 +1,15 @@ +package body Sem is + + ---------- + -- init -- + ---------- + + function Init (Top_Program : Top_Level_Vectors.Vector) return Sem is + Symbols : Map; + S : constant Sem := (Symbols => Symbols, Top_Program => Top_Program); + begin + return S; + end Init; + + +end Sem; diff --git a/src/sem.ads b/src/sem.ads @@ -0,0 +1,34 @@ +with Parser; use Parser; + +with Ada.Containers.Indefinite_Hashed_Maps; +with Ada.Strings.Unbounded; use Ada.Strings.Unbounded; +with Ada.Strings.Hash; + +package Sem is + + type Symbol_Info is record + Name : Unbounded_String; + Kind : Unbounded_String; + end record; + + ---------------------------------------- + -- Dictionary of String : Symbol_Info -- + ---------------------------------------- + + package String_Maps is new + Ada.Containers.Indefinite_Hashed_Maps + (Key_Type => String, + Element_Type => Symbol_Info, + Hash => Ada.Strings.Hash, + Equivalent_Keys => "="); + + use String_Maps; + + type Sem is record + Symbols : Map; + Top_Program : Top_Level_Vectors.Vector; + end record; + + function Init (Top_Program : Top_Level_Vectors.Vector) return Sem; + +end Sem;