Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
6446 | GerdtR | 1 | #define _CLASS_ |
2 | |||
3 | |||
4 | |||
5 | structteg *searchteg=NULL; |
||
6 | |||
7 | |||
8 | |||
9 | { |
||
10 | |||
11 | sprintf(buf,"'%s' not class name",name); |
||
12 | |||
13 | |||
14 | |||
15 | } |
||
16 | |||
17 | void notclassproc(char *classname, char* procname) |
||
18 | |||
19 | char buf[160]; |
||
20 | |||
21 | preerror(buf); |
||
22 | |||
23 | |||
24 | |||
25 | { |
||
26 | |||
27 | localrec *lrec=addlocalvar("this",(am32==TRUE?tk_dwordvar:tk_wordvar),paramsize); |
||
28 | |||
29 | lrec->rec.type=tp_paramvar; |
||
30 | |||
31 | |||
32 | |||
33 | |||
34 | |||
35 | { |
||
36 | |||
37 | unsigned int flag=itok.flag; |
||
38 | |||
39 | char classname[IDLENGTH]; |
||
40 | |||
41 | strcpy(classname,itok.name); |
||
42 | |||
43 | if(tok2==tk_tilda){ |
||
44 | |||
45 | |||
46 | |||
47 | type=tk_void; |
||
48 | |||
49 | nexttok(); |
||
50 | |||
51 | char name[IDLENGTH]; |
||
52 | |||
53 | if((tn=strchr(name,'@'))!=NULL)*tn=0; |
||
54 | |||
55 | if(strcmp(classname,name)==0&&(flag&fs_destructor)==0)flag|=fs_constructor; |
||
56 | |||
57 | notclassproc(classname,name); |
||
58 | |||
59 | define_procedure(); |
||
60 | |||
61 | } |
||
62 | |||
63 | if(CidOrID()==tk_ID)tproc=tk_fastcall; |
||
64 | |||
65 | |||
66 | |||
67 | if(type==tokens)type=am32==FALSE?tk_word:tk_dword; |
||
68 | |||
69 | // printf("flag %08X - %08X\n",flag,itok.flag); |
||
70 | |||
71 | redeclare(name); |
||
72 | |||
73 | if(dynamic_flag){ |
||
74 | |||
75 | searchteg=NULL; |
||
76 | |||
77 | } |
||
78 | |||
79 | if(AlignProc!=FALSE)AlignCD(CS,alignproc); |
||
80 | |||
81 | setproc(1); |
||
82 | |||
83 | else{ |
||
84 | |||
85 | setproc(0); |
||
86 | |||
87 | dopoststrings(); |
||
88 | |||
89 |