summaryrefslogtreecommitdiff
path: root/parser.sig
diff options
context:
space:
mode:
authorVladimir Azarov <avm@intermediate-node.net>2025-08-06 05:14:27 +0200
committerVladimir Azarov <avm@intermediate-node.net>2025-08-06 05:14:27 +0200
commit3a3220a049b9fef67ca0f85542654ab0a9de0914 (patch)
tree73a82d2579f74c02fb9a227e66f4ef219d44182f /parser.sig
parenta4c60603f61dd1a9f0ce420be9067965586dd694 (diff)
Most of conversion to il
Diffstat (limited to 'parser.sig')
-rw-r--r--parser.sig19
1 files changed, 16 insertions, 3 deletions
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 = {