diff options
Diffstat (limited to 'parser.sig')
-rw-r--r-- | parser.sig | 19 |
1 files changed, 16 insertions, 3 deletions
@@ -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 = { |