File: csf2.dtd

package info (click to toggle)
albert 0.4.10.1
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 1,556 kB
  • ctags: 2,014
  • sloc: lisp: 13,587; ansic: 7,729; xml: 843; makefile: 99; sh: 28
file content (138 lines) | stat: -rw-r--r-- 3,205 bytes parent folder | download | duplicates (2)
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
<!--
      DTD for proposed Code Structure Format (CSF 2)
      
      November 99
 -->
 
<!-- <?xml version="1.0" encoding="ISO-8859-1"?> -->

<!ENTITY % text " #PCDATA ">

<!-- add preproc? -->
<!-- these may occur anywhere in a csf-document -->
<!ENTITY % freeforall " package | class | method | enum | variable | typespec | comment | directive ">

<!-- the element -->
<!ELEMENT csf ((%freeforall;)*)>
<!ATTLIST csf
       language CDATA ""
       >

<!-- describes a location -->
<!ELEMENT location EMPTY>
<!ATTLIST location
       file CDATA ""
       startline CDATA "-1"
       startcol CDATA "-1"
       endline CDATA "-1"
       endcol CDATA "-1"
       >

<!ENTITY % infoattrs " type CDATA #IMPLIED value CDATA #IMPLIED info CDATA #IMPLIED ">
       
<!-- describes some namespace/package, needs more work -->              
<!ELEMENT package (location?,packinfo*,(%freeforall;)*) >
<!ATTLIST package
     id CDATA #REQUIRED
     name CDATA #IMPLIED
     >

<!ELEMENT packinfo EMPTY>
<!ATTLIST packinfo %infoattrs;>

<!-- The class abstraction -->
<!ELEMENT class (location,access,inherit*,classinfo*,(%freeforall;)*) >
<!ATTLIST class
     id CDATA #REQUIRED
     name CDATA #IMPLIED
     >

<!ELEMENT classinfo EMPTY>
<!ATTLIST classinfo %infoattrs;>

<!-- function/method -->
<!-- itsdecl should be changed.. may be more than one decl -->       
<!ELEMENT method (where+,access,methinfo*,retval*,arg*) >
<!ATTLIST method
    id CDATA #REQUIRED
    name CDATA ""
    >

<!ELEMENT methinfo EMPTY>
<!ATTLIST methinfo %infoattrs;>

<!ELEMENT where (location)>
<!ATTLIST where type (declaration|definition|unknown) "unknown">

    
<!-- this is prettier in sgml -->
<!-- <!ENTITY % parameter " param | retval | arg "> -->
<!ENTITY % paramattrs " name CDATA #IMPLIED type CDATA #IMPLIED defvalue CDATA #IMPLIED passedby CDATA #IMPLIED special CDATA #IMPLIED ">
<!-- <!ELEMENT param EMPTY> -->
<!ELEMENT retval EMPTY>
<!ELEMENT arg EMPTY>
<!-- <!ATTLIST param %paramattrs;> -->
<!ATTLIST retval %paramattrs;>
<!ATTLIST arg %paramattrs;>


<!-- some variable -->      
<!ELEMENT variable (location,access,varinfo*) >
<!ATTLIST variable
    id CDATA #REQUIRED
    name CDATA ""
    >
    
<!ELEMENT varinfo EMPTY>
<!ATTLIST varinfo %infoattrs;>

	   
<!ELEMENT enum (location,access,enumval*) >
<!ATTLIST enum
    id CDATA #REQUIRED
    name CDATA ""
    >

<!ELEMENT enumval EMPTY>
<!ATTLIST enumval
    name CDATA ""
    value CDATA ""
    >

<!ELEMENT typespec (location,access) >
<!ATTLIST typespec
    id CDATA #REQUIRED
    name CDATA #REQUIRED
    values CDATA ""
    >

<!ELEMENT access EMPTY>
<!ATTLIST access
     type (public|protected|private|package|global) "public"
     scope (file|class) "file"
     >

<!ELEMENT inherit EMPTY>
<!ATTLIST inherit
    name CDATA ""
    type (public|protected|private|interface) "public"
    modifier (none | virtual) "none"
    >

<!ELEMENT comment (location,text)>

<!ELEMENT directive (location)>
<!ATTLIST directive
    type CDATA ""
    value CDATA ""
    info CDATA ""
    >
 
<!ELEMENT text (%text;)>
<!--
<!ELEMENT import (%text;)>
<!ELEMENT throw (%text;)>
<!ELEMENT friend (%text;)> 
<!ELEMENT calls (%text;)> 
<!ELEMENT calledby (%text;)>
-->