From 378ba0b8fa8c16fe3b07ef02b9af2a62fb1c196e Mon Sep 17 00:00:00 2001 From: Edouard DUPIN Date: Fri, 27 Dec 2013 07:57:16 +0100 Subject: [PATCH] [DEV] add enum documentation inline --- monkEnum.py | 14 +++++++++++++- monkHtml.py | 11 +++++++---- monkParse.py | 12 ++++++++++-- 3 files changed, 30 insertions(+), 7 deletions(-) diff --git a/monkEnum.py b/monkEnum.py index 60980f0..c5e0bc4 100644 --- a/monkEnum.py +++ b/monkEnum.py @@ -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)) diff --git a/monkHtml.py b/monkHtml.py index d164579..b223efb 100644 --- a/monkHtml.py +++ b/monkHtml.py @@ -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('

Detail:

\n') + file.write('

Detail:

\n') for subElement in listBase: file.write('

' + subElement['node'].get_name() + '

') file.write('
\n');
@@ -378,13 +381,13 @@ def generate_page(outFolder, header, footer, element):
 		file.write('\n');
 		file.write('\n');
 		
-		file.write("

Detail:

\n") + file.write("

Detail:

\n") isFirst = True for enumElement in myElementList: if isFirst == False: file.write('
\n'); isFirst = False - file.write('' + enumElement['name']) + file.write('

' + enumElement['name'] + '

') file.write('
\n')
 			file.write(enumElement['name'] + white_space(elementSize-len(enumElement['name'])) + ' = ' + enumElement['value'] + '')
 			file.write('
\n') diff --git a/monkParse.py b/monkParse.py index fd735cd..12faa24 100644 --- a/monkParse.py +++ b/monkParse.py @@ -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':