[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 + " { ... };" return "enum " + self.name + " { ... };"
def enum_append(self, stack): def enum_append(self, stack):
debug.verbose("enum : " + str(stack))
subList = [] subList = []
tmp = [] tmp = []
for element in stack: for element in stack:
@ -35,6 +36,17 @@ class Enum(Node.Node):
#debug.verbose(" TODO : Need to append enum : " + str(subList)) #debug.verbose(" TODO : Need to append enum : " + str(subList))
for element in 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 = "" value = ""
if len(element) > 2: if len(element) > 2:
if element[1] == '=': if element[1] == '=':
@ -53,7 +65,7 @@ class Enum(Node.Node):
except: except:
debug.debug("can not parse enum value : '" + value + "'") debug.debug("can not parse enum value : '" + value + "'")
self.baseValue = None 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)) debug.verbose("enum list : " + str(self.listElement))

View File

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

View File

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