nightshade

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

commit cc4cb4225f40b614f55c3978170c3f2ed9de7a7f
parent accb758e5c8831964990d55af44601825f2fe3a7
Author: citbl <citbl@citbl.org>
Date:   Fri, 12 Jun 2026 21:15:13 +1000

generic map

Diffstat:
Msrc/nightshade.adb | 6++++++
Msrc/sem.adb | 12+++++++++++-
Msrc/sem.ads | 20++++++++++++++++----
3 files changed, 33 insertions(+), 5 deletions(-)

diff --git a/src/nightshade.adb b/src/nightshade.adb @@ -27,6 +27,12 @@ begin begin Parser.Parse (P); Parser.Print_AST (P); + + declare + S : Sem.Sem := Sem.Init(P.Top_Program); + begin + Sem.Analysis(S); + end; end; end; end Nightshade; diff --git a/src/sem.adb b/src/sem.adb @@ -5,11 +5,21 @@ package body Sem is ---------- function Init (Top_Program : Top_Level_Vectors.Vector) return Sem is - Symbols : Map; + Symbols : Symbols_Map.Map; S : constant Sem := (Symbols => Symbols, Top_Program => Top_Program); begin return S; end Init; + -------------- + -- analysis -- + -------------- + + procedure Analysis(S: Sem) is + begin + null; + end Analysis; + + end Sem; diff --git a/src/sem.ads b/src/sem.ads @@ -12,23 +12,35 @@ package Sem is end record; ---------------------------------------- - -- Dictionary of String : Symbol_Info -- + -- dictionary of String : Symbol_Info -- ---------------------------------------- - package String_Maps is new + package Symbols_Map is new Ada.Containers.Indefinite_Hashed_Maps (Key_Type => String, Element_Type => Symbol_Info, Hash => Ada.Strings.Hash, Equivalent_Keys => "="); - use String_Maps; + --------- + -- sem -- + --------- type Sem is record - Symbols : Map; + Symbols : Symbols_Map.Map; Top_Program : Top_Level_Vectors.Vector; end record; + ---------- + -- init -- + ---------- + function Init (Top_Program : Top_Level_Vectors.Vector) return Sem; + -------------- + -- analysis -- + -------------- + + procedure Analysis(S: Sem); + end Sem;