diff --git a/codeBB/BB_Text.py b/codeBB/BB_Text.py
index e2aa84f..06f320b 100644
--- a/codeBB/BB_Text.py
+++ b/codeBB/BB_Text.py
@@ -48,7 +48,7 @@ def transcode(value):
value,
flags=re.DOTALL)
- value = re.sub(r'\[color=(\#[0-9A-F]{6}|[a-z\-]+)\](.*?)\[/color\]',
+ value = re.sub(r'\[color=(\(#[0-9A-F]{6}|[a-z\-]+|.+?)\](.*?)\[/color\]',
r'\2',
value,
flags=re.DOTALL)
@@ -83,6 +83,11 @@ def transcode(value):
value,
flags=re.DOTALL)
+ value = re.sub(r'\[pre\]((\\\[|\\\]|.)*?)\[/pre\]',
+ r'
\1
',
+ value,
+ flags=re.DOTALL)
+
value = re.sub(r'\[note\](.*?)\[/note\]',
r'
Note:\1
',
value,
diff --git a/monkHtml.py b/monkHtml.py
index d46a55d..f9124fc 100644
--- a/monkHtml.py
+++ b/monkHtml.py
@@ -36,8 +36,9 @@ def display_doxygen_param(comment, input, output):
def parse_doxygen(data) :
+ data = "\n" + data
if '@' in data:
- streams = data.split("@")
+ streams = data.split("\n@")
else:
streams = [ "brief " + data]
data2 = ''
@@ -66,7 +67,7 @@ def parse_doxygen(data) :
if element[:1] == "\n" \
or element[:2] == "\n\n":
# nothing to do : Nomale case of the first \n
- None
+ pass
elif element[:14] == "param[in,out] " \
or element[:14] == "param[out,in] ":
data3 += display_doxygen_param(element[14:], True, True)
@@ -139,9 +140,13 @@ def calculate_methode_size(list):
methodeSize = 0;
haveVirtual = False
for element in list:
- if element['node'].get_virtual() == True:
+ if element['node'].get_node_type() == 'methode' \
+ and element['node'].get_virtual() == True:
haveVirtual = True
- retType = element['node'].get_return_type().to_str()
+ if element['node'].get_node_type() == 'variable':
+ retType = element['node'].get_type().to_str()
+ else:
+ retType = element['node'].get_return_type().to_str()
tmpLen = len(retType)
if returnSize < tmpLen:
returnSize = tmpLen
@@ -153,13 +158,14 @@ def calculate_methode_size(list):
def write_methode(element, namespaceStack, displaySize = None, link = True):
if element['node'].get_request_hidden() == True:
- return
+ return ""
if displaySize == None:
displaySize = calculate_methode_size([element])
ret = ""
if 'access' in element.keys():
if element['access'] == 'private':
ret += '- '
+ return ""
elif element['access'] == 'protected':
ret += '# '
elif element['access'] == 'public':
@@ -169,45 +175,59 @@ def write_methode(element, namespaceStack, displaySize = None, link = True):
else:
ret += ' '
- if element['node'].get_virtual() == True:
- ret += module.display_color('virtual') + ' '
- elif displaySize[2] == True:
- ret += ' '
-
- raw, decorated = element['node'].get_return_type().to_str_decorated()
+ if element['node'].get_node_type() == 'variable':
+ if displaySize[2] == True:
+ ret += ' '
+ raw, decorated = element['node'].get_type().to_str_decorated()
+ else:
+ if element['node'].get_virtual() == True:
+ ret += module.display_color('virtual') + ' '
+ elif displaySize[2] == True:
+ ret += ' '
+
+ raw, decorated = element['node'].get_return_type().to_str_decorated()
if raw != "":
ret += decorated
ret += " "
raw += " "
+
ret += white_space(displaySize[0] - len(raw)+1)
name = element['node'].get_name()
- if link == True:
- ret += '' + name + ''
- else:
- ret += '' + name + ''
- ret += white_space(displaySize[1] - len(name)) + ' ('
- listParam = element['node'].get_param()
- first = True
- for param in listParam:
- if first == False:
- ret += ',
'
- if displaySize[2] == True:
- ret += ' '
- ret += white_space(displaySize[0] + displaySize[1] +5)
- first = False
- typeNoDecoration, typeDecorated = param.get_type().to_str_decorated()
- #retParam = module.display_color(param.get_type().to_str())
- retParam = typeDecorated
- if retParam != "":
- ret += retParam
- ret += " "
- ret += "" + param.get_name() + ""
- ret += ')'
- if element['node'].get_virtual_pure() == True:
- ret += ' = 0'
- if element['node'].get_constant() == True:
- ret += module.display_color(' const')
+ if element['node'].get_node_type() == 'variable':
+ classDecoration = "code-member"
+ else:
+ classDecoration = "code-function"
+
+ if link == True:
+ ret += '' + name + ''
+ else:
+ ret += '' + name + ''
+
+ if element['node'].get_node_type() != 'variable':
+ ret += white_space(displaySize[1] - len(name)) + ' ('
+ listParam = element['node'].get_param()
+ first = True
+ for param in listParam:
+ if first == False:
+ ret += ',
'
+ if displaySize[2] == True:
+ ret += ' '
+ ret += white_space(displaySize[0] + displaySize[1] +5)
+ first = False
+ typeNoDecoration, typeDecorated = param.get_type().to_str_decorated()
+ #retParam = module.display_color(param.get_type().to_str())
+ retParam = typeDecorated
+ if retParam != "":
+ ret += retParam
+ ret += " "
+ ret += "" + param.get_name() + ""
+ ret += ')'
+ if element['node'].get_virtual_pure() == True:
+ ret += ' = 0'
+ if element['node'].get_constant() == True:
+ ret += module.display_color(' const')
+
ret += ';'
ret += '
'
return ret
@@ -246,49 +266,97 @@ def generate_page(outFolder, header, footer, element):
file.write(documentation)
file.write('
\n')
+ if element.get_node_type() in ['namespace']:
+ tmpName = element.get_name()
+ tmpNameUpper = tmpName.upper()
+ tmpName = tmpNameUpper[0] + tmpName[1:]
+ compleateName = ""
+ for namespace in element.get_namespace():
+ compleateName += namespace + "::"
+ compleateName += tmpName
+ associatedClass = module.get_element_with_name(compleateName)
+ if associatedClass != None:
+ file.write('Associated Class:
');
+ file.write('\n');
+ file.write(generate_link(associatedClass));
+ file.write('
\n');
+
+ if element.get_node_type() in ['class']:
+ tmpName = element.get_name()
+ tmpNameLower = tmpName.lower()
+ tmpName = tmpNameLower[0] + tmpName[1:]
+ compleateName = ""
+ for namespace in element.get_namespace():
+ compleateName += namespace + "::"
+ compleateName += tmpName
+ associatedClass = module.get_element_with_name(compleateName)
+ if associatedClass != None:
+ file.write('Associated Namespace:
');
+ file.write('\n');
+ file.write(generate_link(associatedClass));
+ file.write('
\n');
+
if element.get_node_type() in ['library', 'application', 'namespace', 'class', 'struct']:
for nameElement in ['namespace', 'class', 'struct', 'enum', 'union']:
listBase = element.get_all_sub_type(nameElement)
if len(listBase) == 0:
continue
- file.write('' + nameElement + ':
\n');
- file.write('\n');
+ descLocal = ""
for elem in listBase:
- file.write('- ' + generate_link(elem['node']) + '
')
- file.write('
\n');
+ if elem['node'].get_request_hidden() == True:
+ continue
+ if 'access' in elem.keys() \
+ and elem['access'] == 'private':
+ continue
+ descLocal += '' + generate_link(elem['node']) + ''
+ if descLocal != "":
+ file.write('' + nameElement + ':
\n');
+ file.write('\n');
+ file.write(descLocal)
+ file.write('
\n');
# calculate element size :
- listBase = element.get_all_sub_type(['methode', 'constructor', 'destructor'])
+ listBase = element.get_all_sub_type(['methode', 'constructor', 'destructor', 'variable'])
displayLen = calculate_methode_size(listBase)
if element.get_node_type() == 'class' \
or element.get_node_type() == 'struct':
if len(element.get_all_sub_type(['constructor', 'destructor'])) != 0:
- file.write('Constructor and Destructor:
\n')
- file.write('\n');
+ globalWrite = ""
listBaseConstructor = element.get_all_sub_type(['constructor'])
for elem in listBaseConstructor:
- ret = write_methode(elem, namespaceStack, displayLen)
- file.write(ret)
+ if elem['access'] == 'private':
+ continue
+ globalWrite += write_methode(elem, namespaceStack, displayLen)
listBaseDestructor = element.get_all_sub_type(['destructor'])
for elem in listBaseDestructor:
- ret = write_methode(elem, namespaceStack, displayLen)
- file.write(ret)
- file.write('
\n');
- file.write('
\n')
-
+ if elem['access'] == 'private':
+ continue
+ globalWrite += write_methode(elem, namespaceStack, displayLen)
+ if globalWrite != "":
+ file.write('Constructor and Destructor:
\n')
+ file.write('\n');
+ file.write(globalWrite);
+ file.write('
\n');
+ file.write('
\n')
+
if element.get_node_type() in ['library', 'application', 'namespace', 'class', 'struct']:
- listBaseMethode = element.get_all_sub_type(['methode'])
+ listBaseMethode = element.get_all_sub_type(['methode', 'variable'])
if len(listBaseMethode) != 0:
- file.write('Synopsis:
\n')
- file.write('\n');
+ globalWrite = ""
displayLen = calculate_methode_size(listBaseMethode)
for elem in listBaseMethode:
- ret = write_methode(elem, namespaceStack, displayLen)
- file.write(ret)
- file.write('
\n')
- file.write('
\n')
+ if 'access' in elem.keys() \
+ and elem['access'] == 'private':
+ continue
+ globalWrite += write_methode(elem, namespaceStack, displayLen)
+ if globalWrite != "":
+ file.write('Synopsis:
\n')
+ file.write('\n');
+ file.write(globalWrite);
+ file.write('
\n')
+ file.write('
\n')
# generate herirage list :
if element.get_node_type() == 'class':
@@ -359,6 +427,11 @@ def generate_page(outFolder, header, footer, element):
allDetailDoc = ""
lastDoc = ""
for subElement in listBase:
+ if subElement['node'].get_request_hidden() == True:
+ continue
+ if 'access' in subElement.keys() \
+ and subElement['access'] == 'private':
+ continue
file.write('')
if lastDoc != "" \
and subElement['node'].get_request_in_previous() == True:
diff --git a/monkParse.py b/monkParse.py
index 12faa24..9fcf368 100644
--- a/monkParse.py
+++ b/monkParse.py
@@ -302,6 +302,9 @@ class parse_file():
self.nameStack.append(",")
else:
self.nameStack.append("//!< " + tok.value)
+ elif self.previous != None \
+ and self.previous.get_node_type() == 'variable':
+ self.previous.add_doc([tok.value])
else:
#self.lastComment.append(tok.value)
pass
@@ -336,6 +339,7 @@ class parse_file():
self.brace_type_push('unknow', self.nameStack)
self.stack = []
self.nameStack = []
+ self.lastComment = []
elif tok.type == 'CLOSE_BRACE':
if len(self.nameStack) != 0:
if self.previous_is('enum') == True:
@@ -415,7 +419,7 @@ class parse_file():
else:
# TODO : Check if it is true in all case :
self.brace_type_append('variable', self.nameStack);
- #debug.warning(self.gen_debug_space() + "semicolumn : " + str(self.nameStack));
+ #debug.warning(self.gen_debug_space() + "variable : " + str(self.nameStack));
self.stack = []
self.nameStack = []
self.lastComment = []
@@ -427,6 +431,7 @@ class parse_file():
def create_element(self, type, stack):
ret = None
+ self.previous = None
if type == 'empty' \
or type == 'enum list':
pass
@@ -452,6 +457,7 @@ class parse_file():
ret = Enum.Enum(stack, self.headerFileName, self.curLine, self.lastComment)
elif type == 'variable':
ret = Variable.Variable(stack, self.headerFileName, self.curLine, self.lastComment)
+ self.previous = ret
else:
debug.error("unknow type ...")
return ret