commit fcf44fe26af9048bbb2def386a21ea3b2baa4060
parent 3250389fdcabca0de98cdc899ecc30b6d284fb2d
Author: citbl <citbl@citbl.org>
Date: Fri, 12 Jun 2026 20:44:11 +1000
semantic init
Diffstat:
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;