From 3a3220a049b9fef67ca0f85542654ab0a9de0914 Mon Sep 17 00:00:00 2001 From: Vladimir Azarov Date: Wed, 6 Aug 2025 05:14:27 +0200 Subject: Most of conversion to il --- parser.sig | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) (limited to 'parser.sig') diff --git a/parser.sig b/parser.sig index 3b93825..2dea29f 100644 --- a/parser.sig +++ b/parser.sig @@ -90,7 +90,7 @@ signature PARSER = sig | Nfloat of Real32.real | Ndouble of Real64.real - and id = Lid of int | Gid of int + and id = Lid of int | Gid of int * bool and expr = Eid of int * id option | @@ -113,8 +113,7 @@ signature PARSER = sig val iniLayouts: (bool * word * { offset: word, t: ctype, value: word } list) D.t - datatype cini = CiniExpr of exprAug | CiniConst of word | - CiniLayout of int + datatype cini = CiniExpr of exprAug | CiniLayout of int type objDef = int * P.tkPos * ctype * cini * linkage @@ -152,6 +151,20 @@ signature PARSER = sig val alignOfType: ctype -> word val sizeOfType: ctype -> word + val isSigned: ctype -> bool + val isPointer: ctype -> bool + val pointsTo: ctype -> ctype + + val typeRank: ctype -> int + val resolveType: ctype -> ctype + val commonType: ctype -> ctype -> ctype + + val getLayoutSize: int -> word + + val getT: exprAug -> ctype + + val getFieldInfo: ctype -> nid -> (word * ctype) option + val finalize: ctx -> ctx type progInfo = { -- cgit v1.2.3