Tests for enhancements

This commit is contained in:
Ganesh Viswanathan 2018-12-26 17:42:13 -06:00
commit 1684e773ad
4 changed files with 21 additions and 4 deletions

View file

@ -12,9 +12,9 @@ proc sanitizePath*(path: string): string =
proc getIdentifier*(str: string): string =
result = str.strip(chars={'_'})
proc getUniqueIdentifier*(exists: seq[string]): string =
proc getUniqueIdentifier*(exists: seq[string], prefix = ""): string =
var
name = gStateRT.sourceFile.extractFilename().multiReplace([(".", ""), ("-", "")])
name = prefix & "_" & gStateRT.sourceFile.extractFilename().multiReplace([(".", ""), ("-", "")])
count = 1
while (name & $count) in exists:

View file

@ -154,7 +154,7 @@ proc initGrammar() =
nname = name.getIdentifier()
if nname.len == 0:
nname = getUniqueIdentifier(gStateRT.types)
nname = getUniqueIdentifier(gStateRT.types, "Enum")
if nname notin gStateRT.types:
gStateRT.types.add(nname)

View file

@ -29,6 +29,18 @@ typedef enum {
enum6
} ENUM2;
enum {
enum7,
enum8,
enum9
};
typedef enum ENUM4 {
enum10,
enum11,
enum12
} ENUM4;
typedef void * VOIDPTR;
typedef int * INTPTR;
@ -41,7 +53,7 @@ union UNION1 {
float field2;
};
typedef union {
typedef union UNION2 {
double field1;
unsigned char field2;
} UNION2;

View file

@ -24,6 +24,8 @@ var
e: ENUM
e2: ENUM2 = enum5
e3: Enum_testh1 = enum7
e4: ENUM4 = enum11
vptr: VOIDPTR
iptr: INTPTR
@ -53,4 +55,7 @@ check test_call_param6(u2) == 'c'
u.field1 = 4
check test_call_param7(u) == 4
check e3 == enum7
check e4 == enum11
cAddStdDir()