-
Notifications
You must be signed in to change notification settings - Fork 2
/
funcBendaBaru.h
59 lines (46 loc) · 1.69 KB
/
funcBendaBaru.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
// Bahasa Anak Indonesia untuk Komputer - BAIK
// Copyright Haris Hasanudin - 2005 - 2011
//
// Kupersembahkan untuk istriku tercinta Masako, anakku tersayang Takumi
// dan Tomoki serta seluruh putra putri Indonesia
VAL_LABEL funcBendaBaru ()
{
VAL_LABEL datx;
VAL_LABEL valdat;
memset(&datx, '\0', sizeof(datx));
memset(&valdat, '\0', sizeof(valdat));
getlex();
if(currentClass != NULL && strlen(currentClass) > 0) {
Error("Dilarang membuat Benda dalam Benda");
}
if (lex.type == TYPE_IDENT) {
valdat = ValLabel( lex.detail.ident, sub_deep, valdat, VAL_FLAG_SEARCH_R );
// printf("get ident %s type %d\n", lex.detail.ident, valdat.datatype);
if(valdat.datatype == 30){ // Class Definition
datx.datatype = 31; // Class Instance
datx.isClassInit = 0; // AWALAN has not been set
// save obj name reference
strcpy(datx.benda_name, lex.detail.ident);
} else {
Error("BendaBaru: masukan data salah");
}
} else {
Error("BendaBaru: masukan data salah");
}
datx.datatype = 31; /* Class Instance */
if(valdat.filename != NULL)
free(valdat.filename);
if(valdat.folder != NULL)
free(valdat.folder);
if(valdat.filedata != NULL)
free(valdat.filedata);
if(valdat.long_str != NULL)
free(valdat.long_str);
if(valdat.left != NULL)
free(valdat.left);
if(valdat.right != NULL)
free(valdat.right);
if(valdat.pnext != NULL)
free(valdat.pnext);
return datx;
}