Commit e7fa05a251e0fe746b9524e94b42b5093c4714bf

Authored by totoro
1 parent c20e8ff6

add comment to main entry of Alternative. This comment exists to explain the ma…

…in goal of the alternative and located on top of the alternative
Showing 1 changed file with 31 additions and 15 deletions   Show diff stats
types/ds_types.anubis
@@ -30,7 +30,7 @@ public type Bool_List: @@ -30,7 +30,7 @@ public type Bool_List:
30 list. 30 list.
31 31
32 public type DS_Comment: 32 public type DS_Comment:
33 - none, 33 + no_comment,
34 comment(String comment). 34 comment(String comment).
35 35
36 public type DS_Component: 36 public type DS_Component:
@@ -61,7 +61,7 @@ public define DS_Component @@ -61,7 +61,7 @@ public define DS_Component
61 DS_Anubis_Type anb_type, 61 DS_Anubis_Type anb_type,
62 String name 62 String name
63 )= 63 )=
64 - component(list, anb_type, name, none). 64 + component(list, anb_type, name, no_comment).
65 65
66 public define DS_Component 66 public define DS_Component
67 /* Default constructor helper without Bool_List means 'none' 67 /* Default constructor helper without Bool_List means 'none'
@@ -71,7 +71,7 @@ public define DS_Component @@ -71,7 +71,7 @@ public define DS_Component
71 DS_Anubis_Type anb_type, 71 DS_Anubis_Type anb_type,
72 String name 72 String name
73 )= 73 )=
74 - component(none, anb_type, name, none). 74 + component(none, anb_type, name, no_comment).
75 75
76 76
77 public type DS_Alternative: 77 public type DS_Alternative:
@@ -82,7 +82,8 @@ public type DS_Alternative: @@ -82,7 +82,8 @@ public type DS_Alternative:
82 ), 82 ),
83 //alternative 83 //alternative
84 alternative( 84 alternative(
85 - String alt_name, //Name of the alternative 85 + String alt_name, //Name of the alternative
  86 + DS_Comment comment, //main comment of the alternative if need
86 List(DS_Component) components //list of components of that alternative 87 List(DS_Component) components //list of components of that alternative
87 ). 88 ).
88 89
@@ -93,8 +94,17 @@ public define DS_Alternative @@ -93,8 +94,17 @@ public define DS_Alternative
93 ( 94 (
94 String alt_name 95 String alt_name
95 )= 96 )=
96 - enum(alt_name, none).  
97 - 97 + enum(alt_name, no_comment).
  98 +
  99 +public define DS_Alternative
  100 + alternative
  101 + (
  102 + String alt_name, //Name of the alternative
  103 + List(DS_Component) components //list of components of that alternative
  104 + )=
  105 + alternative(alt_name, no_comment, components)
  106 +.
  107 +
98 public type DS_Type: 108 public type DS_Type:
99 ds_type( 109 ds_type(
100 String type_name, 110 String type_name,
@@ -139,8 +149,8 @@ define List(Extern_type) @@ -139,8 +149,8 @@ define List(Extern_type)
139 [h . t] then 149 [h . t] then
140 if h is 150 if h is
141 { 151 {
142 - enum(_ , _) then extract_extern_type(t, so_far)  
143 - alternative(_, components) then 152 + enum(_ , _) then extract_extern_type(t, so_far)
  153 + alternative(_, _, components) then
144 extract_extern_type(t, extract_extern_type(components, so_far)) 154 extract_extern_type(t, extract_extern_type(components, so_far))
145 } 155 }
146 } 156 }
@@ -186,7 +196,7 @@ public define String @@ -186,7 +196,7 @@ public define String
186 )= 196 )=
187 if comment is 197 if comment is
188 { 198 {
189 - none then "", 199 + no_comment then "",
190 comment(_str) then "//"+_str 200 comment(_str) then "//"+_str
191 } 201 }
192 . 202 .
@@ -239,8 +249,8 @@ define Int @@ -239,8 +249,8 @@ define Int
239 [h . t] then 249 [h . t] then
240 with name = if h is 250 with name = if h is
241 { 251 {
242 - enum(name, _) then name,  
243 - alternative(name, _) then name 252 + enum(name, _) then name,
  253 + alternative(name, _, _) then name
244 }, 254 },
245 alternative_name_max_length(t, max(current_length, length(name))) 255 alternative_name_max_length(t, max(current_length, length(name)))
246 } 256 }
@@ -276,7 +286,7 @@ define Int @@ -276,7 +286,7 @@ define Int
276 with current = if h is 286 with current = if h is
277 { 287 {
278 enum(name, _) then length(name), 288 enum(name, _) then length(name),
279 - alternative(name, components) then component_type_max_length(components, 0) 289 + alternative(name, _, components) then component_type_max_length(components, 0)
280 }, 290 },
281 alternative_type_max_length(t, max(current, so_far_length)) 291 alternative_type_max_length(t, max(current, so_far_length))
282 } 292 }
@@ -311,8 +321,8 @@ define Int @@ -311,8 +321,8 @@ define Int
311 [h . t] then 321 [h . t] then
312 with current = if h is 322 with current = if h is
313 { 323 {
314 - enum(_, _) then 0,  
315 - alternative(_, components) then component_name_max_length(components, 0) 324 + enum(_, _) then 0,
  325 + alternative(_, _, components) then component_name_max_length(components, 0)
316 }, 326 },
317 alternative_type_name_max_length(t, max(current, so_far_length)) 327 alternative_type_name_max_length(t, max(current, so_far_length))
318 } 328 }
@@ -336,7 +346,13 @@ public define String @@ -336,7 +346,13 @@ public define String
336 enum(name, _comment) then prefix + fill(name+(if is_empty(t) then "" else ","), type_length + name_length+2) + dump(_comment) + 346 enum(name, _comment) then prefix + fill(name+(if is_empty(t) then "" else ","), type_length + name_length+2) + dump(_comment) +
337 dump_DS_Alternative_list(t, type_length, alt_name_length, name_length), 347 dump_DS_Alternative_list(t, type_length, alt_name_length, name_length),
338 348
339 - alternative(name, components) then prefix + name+"("+ 349 + alternative(name, comment, components) then
  350 + //if comment exists, add it first
  351 + (if comment != no_comment then
  352 + prefix + dump(comment) +"\n"
  353 + else
  354 + "")+
  355 + prefix + name+"("+
340 dump(components, true, type_length, name_length)+(if is_empty(t) then "" else ",")+ 356 dump(components, true, type_length, name_length)+(if is_empty(t) then "" else ",")+
341 dump_DS_Alternative_list(t, type_length, alt_name_length, name_length) 357 dump_DS_Alternative_list(t, type_length, alt_name_length, name_length)
342 } 358 }