source: branches/port5/AISC_COM/AISC/aisc_debug_globals.pa

Last change on this file was 5390, checked in by westram, 17 years ago
  • TAB-Ex
  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 3.6 KB
Line 
1
2IF $(argc) = 5,6
3ELSE
4        ERROR   Falsche Parameteranzahl: Syntax aisc xxx.pa xxx.aisc outfile exeternfile [import_proto]
5ENDIF
6#               ************** LOAD DATA **************
7DATA AISC { $(#FILE $(argv[2])) };
8OPEN save $(argv[3])
9#               ************** TABSTOPS ***************
10TABSTOP 8
11CREATE $(i)
12FOR $(i) = 0 TO 9
13        TAB $(i) $(* 8,$(i))
14ENDFOR
15#               ************** SET CURSOR **********
16MOVETO $(AISC/PROJECT)
17OUT save
18MOVETO $(DATA/.)
19P /*********************************************************************
20P  * Created automagically from $(argv[2])
21P  * using aisc-script 'aisc_debug_globals.pa'
22P  * DO NOT EDIT THIS FILE!!!
23P  *********************************************************************/$n
24#               ************** PRINT INCLUDES **********
25#P #include <stdio.h>
26P #include <aisc_com.h>
27P #include <client.h>
28P #include <stdio.h>
29P extern int aisc_core_on_error;
30P extern aisc_com *aisc_client_link;
31P #ifdef __cplusplus
32P extern "C" {
33P char *aisc_debug_local(aisc_com *,enum Attributes_Header_List, void *,const char *, ...);
34P }
35P #else
36P char *aisc_debug_local();
37P #endif
38#               ************** BUILD CALLING FUNCTION FOR EACH STRUCTURE **********
39CREATE $(str) 0
40CREATE $(keys)
41        FOR $(STRUCT)
42                IF $(SKEY)
43                        P $n$n/* ********** $(SDOCU|$(STRUCT)) ***************/
44                        P static char *aisc_debug_$(STRUCT)(aisc_com *link,void *object)
45                        P {
46                        PUSH
47                        SET $(keys)
48                        #               ************** BUILD KEY_LIST **********
49                        CALL struct_attr,$(SKEY)_
50                        POP
51                        P $1return aisc_debug_local(link,$(OBJECT_KEY)_$(SKEY),object,
52                        P $1"$(keys)undef",
53                        P $1$(keys)(long)0);
54                        P }$n
55                ENDIF
56        ENDFOR
57
58#               ************** BUILD MAIN DEBUG FUNCTION **********
59P const char *md2(void *object)
60P {
61P $1static int key;$n$1char *s;$n$1aisc_com *link;
62P $1link = aisc_client_link;aisc_core_on_error = 0;
63P $1if (aisc_get(link,$(OBJECT_KEY)_COMMON, (long)object,
64P $1COMMON_KEY, &key,NULL))
65P $2{ aisc_core_on_error = 1;
66P $2return "unknown object";
67P $1};
68P $1switch(key) {
69FOR $(STRUCT)
70        IF $(JOINED)
71        ELSEIF $(SKEY)
72                P $2 case $(OBJECT_KEY)_$(SKEY):$5s=aisc_debug_$(STRUCT)(link,object);break;
73        ENDIF
74ENDFOR
75P $2 default:$5s = 0; break;
76P $1};
77P $1 aisc_core_on_error = 1;
78P $1 return s;
79P }
80CLOSE save
81
82EXIT
83
84#               ************** BUILD KEY_LIST **********
85FUNCTION struct_attr,s
86        FOR $({/TYPE)
87                IF $(KEY)
88                        IF $(REF) ~ %,*,v
89                        ELSEIF $(TYPE) = dllh
90                                SET $(keys) $(keys)$(s)PRED,$(s)NEXT,
91                                SET $(str) $(s)$(KEY)
92                                PUSH
93                                MOVETO $(/AISC/DATA/STRUCT.dll_header)
94                                CALL struct_attr $(str)
95                                POP
96                        ELSEIF $(REF) ~ s
97                                SET $(str) $(s)$(KEY)
98                                PUSH
99                                MOVETO $(/AISC/DATA/STRUCT.$(TYPE))
100                                CALL struct_attr $(str)
101                                POP
102                        ELSEIF $(REF) ~ e,t,d
103                                SET $(keys) $(keys)$(s)$(KEY),
104                        ENDIF
105                ENDIF
106        ENDFOR
107RETURN
Note: See TracBrowser for help on using the repository browser.