c2nim and system.nim now agree on a C type mapping

This commit is contained in:
Araq 2012-07-15 10:00:34 +02:00
commit 1279bd2855
4 changed files with 34 additions and 8 deletions

View file

@ -434,14 +434,21 @@ proc typeAtom(p: var TParser): PNode =
getTok(p, nil)
result = skipIdent(p)
elif isIntType(p.tok.s):
var x = "c" & p.tok.s
getTok(p, nil)
while p.tok.xkind == pxSymbol and
(isIntType(p.tok.s) or p.tok.s == "char"):
add(x, p.tok.s)
var x = ""
#getTok(p, nil)
var isUnsigned = false
while p.tok.xkind == pxSymbol and (isIntType(p.tok.s) or p.tok.s == "char"):
if p.tok.s == "unsigned":
isUnsigned = true
elif p.tok.s == "signed" or p.tok.s == "int":
nil
else:
add(x, p.tok.s)
getTok(p, nil)
result = mangledIdent(x, p)
else:
if x.len == 0: x = "int"
let xx = if isUnsigned: "cu" & x else: "c" & x
result = mangledIdent(xx, p)
else:
result = mangledIdent(p.tok.s, p)
getTok(p, result)

View file

@ -15,6 +15,8 @@ typedef const char* (*callback2)(int rc, long L, const char* buffer);
int aw_callback_set (AW_CALLBACK c, callback_t callback );
int aw_instance_callback_set (AW_CALLBACK c, callback_t callback);
unsigned long int wawa;
#define AW_BUILD 85 // AW 5.0
// Limits
#define AW_MAX_AVCHANGE_PER_SECOND 10
@ -34,7 +36,7 @@ int aw_instance_callback_set (AW_CALLBACK c, callback_t callback);
#mangle "'XML_'{.*}" "$1"
#private "'XML_ParserStruct'"
#mangle cunsignedint cint
#mangle cuint cint
unsigned int uiVar;