[DEV] add enum documentation inline

This commit is contained in:
Edouard DUPIN 2013-12-27 07:57:16 +01:00
parent 7a9c47e1a9
commit 378ba0b8fa
3 changed files with 30 additions and 7 deletions

View File

@ -22,6 +22,7 @@ class Enum(Node.Node):
return "enum " + self.name + " { ... };"
def enum_append(self, stack):
debug.verbose("enum : " + str(stack))
subList = []
tmp = []
for element in stack:
@ -35,6 +36,17 @@ class Enum(Node.Node):
#debug.verbose(" TODO : Need to append enum : " + str(subList))
for element in subList:
# extract comment:
filtered = []
comments = ""
for subs in element:
if subs[:5] == "//!< ":
if comments != "":
comments += "\n"
comments += subs[5:]
else:
filtered.append(subs)
element = filtered
value = ""
if len(element) > 2:
if element[1] == '=':
@ -53,7 +65,7 @@ class Enum(Node.Node):
except:
debug.debug("can not parse enum value : '" + value + "'")
self.baseValue = None
self.listElement.append({'name' : element[0], 'value' : value, 'doc' : ""})
self.listElement.append({'name' : element[0], 'value' : value, 'doc' : comments})
debug.verbose("enum list : " + str(self.listElement))

View File

@ -29,7 +29,10 @@ def display_doxygen_param(comment, input, output):
def parse_doxygen(data) :
streams = data.split("@")
if '@' in data:
streams = data.split("@")
else:
streams = [ "brief " + data]
data2 = ''
for element in streams:
if element[:1] == "\n" \
@ -333,7 +336,7 @@ def generate_page(outFolder, header, footer, element):
if len(listBase) != 0:
# display all functions :
file.write('<h2>Detail:<h2>\n')
file.write('<h2>Detail:</h2>\n')
for subElement in listBase:
file.write('<h3><a id="' + str(subElement['node'].get_uid()) + '">' + subElement['node'].get_name() + '</a></h3>')
file.write('<pre>\n');
@ -378,13 +381,13 @@ def generate_page(outFolder, header, footer, element):
file.write('</table>\n');
file.write('</ul>\n');
file.write("<h2>Detail:<h2>\n")
file.write("<h2>Detail:</h2>\n")
isFirst = True
for enumElement in myElementList:
if isFirst == False:
file.write('<hr/>\n');
isFirst = False
file.write('<a id="' + enumElement['name'] + '"/>' + enumElement['name'])
file.write('<h3><a id="' + enumElement['name'] + '"/>' + enumElement['name'] + '</h3>')
file.write('<pre>\n')
file.write(enumElement['name'] + white_space(elementSize-len(enumElement['name'])) + ' = <span class="code-type">' + enumElement['value'] + '<span>')
file.write('</pre>\n')

View File

@ -259,6 +259,7 @@ class parse_file():
###### debug.info(headerFileStr)
self.stack = [] # token stack to find the namespace and the element name ...
self.previous = None
self.nameStack = [] #
self.braceDepth = 0
self.braceDepthType = []
@ -295,8 +296,15 @@ class parse_file():
# Do nothing for macro ==> many time not needed ...
continue
if tok.type == 'COMMENT_SINGLELINE_DOC_PREVIOUS':
#self.lastComment.append(tok.value)
pass
if self.previous_is('enum') == True:
if self.nameStack[-1] == ",":
self.nameStack[-1] = "//!< " + tok.value
self.nameStack.append(",")
else:
self.nameStack.append("//!< " + tok.value)
else:
#self.lastComment.append(tok.value)
pass
if tok.type == 'COMMENT_MULTILINE_DOC':
self.lastComment.append(tok.value)
if tok.type == 'COMMENT_SINGLELINE_DOC':