summaryrefslogtreecommitdiff
path: root/parser.sig
diff options
context:
space:
mode:
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 = {