SPO_JakaFurlan/ass3/zbirnik/lib/simtab.ml
2025-12-14 23:31:52 +01:00

18 lines
No EOL
484 B
OCaml

(*simbolna tabela*)
type symtab = (string, int) Hashtbl.t
let create_symtab () : symtab =
Hashtbl.create 64
let add_symbol (tab : symtab) (label : string) (addr : int) =
if Hashtbl.mem tab label then
failwith "Duplicate symbol in simtab"
else
Hashtbl.add tab label addr
let find_symbol (tab : symtab) (label : string) : int =
try
Hashtbl.find tab label
with
| Not_found -> failwith (Printf.sprintf "[SimTab] Symbol not found: '%s'." label)