mirror of https://github.com/acidanthera/audk.git
Update ECC to support more doxygen keywords
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Hess Chen <hesheng.chen@intel.com> Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
This commit is contained in:
parent
cf6c1550cb
commit
f8895c2ad4
|
@ -1,7 +1,7 @@
|
||||||
## @file
|
## @file
|
||||||
# Standardized Error Hanlding infrastructures.
|
# Standardized Error Hanlding infrastructures.
|
||||||
#
|
#
|
||||||
# Copyright (c) 2008 - 2015, Intel Corporation. All rights reserved.<BR>
|
# Copyright (c) 2008 - 2016, Intel Corporation. All rights reserved.<BR>
|
||||||
# This program and the accompanying materials
|
# This program and the accompanying materials
|
||||||
# are licensed and made available under the terms and conditions of the BSD License
|
# are licensed and made available under the terms and conditions of the BSD License
|
||||||
# which accompanies this distribution. The full text of the license may be found at
|
# which accompanies this distribution. The full text of the license may be found at
|
||||||
|
@ -172,7 +172,7 @@ gEccErrorMessage = {
|
||||||
ERROR_DOXYGEN_CHECK_FUNCTION_HEADER : "The function headers should follow Doxygen special documentation blocks in section 2.3.5",
|
ERROR_DOXYGEN_CHECK_FUNCTION_HEADER : "The function headers should follow Doxygen special documentation blocks in section 2.3.5",
|
||||||
ERROR_DOXYGEN_CHECK_COMMENT_DESCRIPTION : """The first line of text in a comment block should be a brief description of the element being documented and the brief description must end with a period.""",
|
ERROR_DOXYGEN_CHECK_COMMENT_DESCRIPTION : """The first line of text in a comment block should be a brief description of the element being documented and the brief description must end with a period.""",
|
||||||
ERROR_DOXYGEN_CHECK_COMMENT_FORMAT : "For comment line with '///< ... text ...' format, if it is used, it should be after the code section",
|
ERROR_DOXYGEN_CHECK_COMMENT_FORMAT : "For comment line with '///< ... text ...' format, if it is used, it should be after the code section",
|
||||||
ERROR_DOXYGEN_CHECK_COMMAND : "Only Doxygen commands '@bug', '@todo', '@example', '@file', '@attention', '@param', '@post', '@pre', '@retval', '@return', '@sa', '@since', '@test', '@note', '@par' are allowed to mark the code",
|
ERROR_DOXYGEN_CHECK_COMMAND : "Only Doxygen commands '@bug', '@todo', '@example', '@file', '@attention', '@param', '@post', '@pre', '@retval', '@return', '@sa', '@since', '@test', '@note', '@par', '@endcode', '@code', '@{', '@}' are allowed to mark the code",
|
||||||
|
|
||||||
ERROR_META_DATA_FILE_CHECK_ALL : "",
|
ERROR_META_DATA_FILE_CHECK_ALL : "",
|
||||||
ERROR_META_DATA_FILE_CHECK_PATH_NAME : "The file defined in meta-data does not exist",
|
ERROR_META_DATA_FILE_CHECK_PATH_NAME : "The file defined in meta-data does not exist",
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
## @file
|
## @file
|
||||||
# This file is used to be the c coding style checking of ECC tool
|
# This file is used to be the c coding style checking of ECC tool
|
||||||
#
|
#
|
||||||
# Copyright (c) 2009 - 2015, Intel Corporation. All rights reserved.<BR>
|
# Copyright (c) 2009 - 2016, Intel Corporation. All rights reserved.<BR>
|
||||||
# This program and the accompanying materials
|
# This program and the accompanying materials
|
||||||
# are licensed and made available under the terms and conditions of the BSD License
|
# are licensed and made available under the terms and conditions of the BSD License
|
||||||
# which accompanies this distribution. The full text of the license may be found at
|
# which accompanies this distribution. The full text of the license may be found at
|
||||||
|
@ -1568,7 +1568,7 @@ def CheckMemberVariableFormat(Name, Value, FileTable, TdId, ModelId):
|
||||||
Fields = Value[LBPos + 1 : RBPos]
|
Fields = Value[LBPos + 1 : RBPos]
|
||||||
Fields = StripComments(Fields).strip()
|
Fields = StripComments(Fields).strip()
|
||||||
NestPos = Fields.find ('struct')
|
NestPos = Fields.find ('struct')
|
||||||
if NestPos != -1 and (NestPos + len('struct') < len(Fields)):
|
if NestPos != -1 and (NestPos + len('struct') < len(Fields)) and ModelId != DataClass.MODEL_IDENTIFIER_UNION:
|
||||||
if not Fields[NestPos + len('struct') + 1].isalnum():
|
if not Fields[NestPos + len('struct') + 1].isalnum():
|
||||||
if not EccGlobalData.gException.IsException(ERROR_DECLARATION_DATA_TYPE_CHECK_NESTED_STRUCTURE, Name):
|
if not EccGlobalData.gException.IsException(ERROR_DECLARATION_DATA_TYPE_CHECK_NESTED_STRUCTURE, Name):
|
||||||
PrintErrorMsg(ERROR_DECLARATION_DATA_TYPE_CHECK_NESTED_STRUCTURE, 'Nested struct in [%s].' % (Name), FileTable, TdId)
|
PrintErrorMsg(ERROR_DECLARATION_DATA_TYPE_CHECK_NESTED_STRUCTURE, 'Nested struct in [%s].' % (Name), FileTable, TdId)
|
||||||
|
@ -2216,7 +2216,8 @@ def CheckDoxygenCommand(FullFileName):
|
||||||
where Model = %d or Model = %d
|
where Model = %d or Model = %d
|
||||||
""" % (FileTable, DataClass.MODEL_IDENTIFIER_COMMENT, DataClass.MODEL_IDENTIFIER_FUNCTION_HEADER)
|
""" % (FileTable, DataClass.MODEL_IDENTIFIER_COMMENT, DataClass.MODEL_IDENTIFIER_FUNCTION_HEADER)
|
||||||
ResultSet = Db.TblFile.Exec(SqlStatement)
|
ResultSet = Db.TblFile.Exec(SqlStatement)
|
||||||
DoxygenCommandList = ['bug', 'todo', 'example', 'file', 'attention', 'param', 'post', 'pre', 'retval', 'return', 'sa', 'since', 'test', 'note', 'par']
|
DoxygenCommandList = ['bug', 'todo', 'example', 'file', 'attention', 'param', 'post', 'pre', 'retval',
|
||||||
|
'return', 'sa', 'since', 'test', 'note', 'par', 'endcode', 'code']
|
||||||
for Result in ResultSet:
|
for Result in ResultSet:
|
||||||
CommentStr = Result[0]
|
CommentStr = Result[0]
|
||||||
CommentPartList = CommentStr.split()
|
CommentPartList = CommentStr.split()
|
||||||
|
@ -2228,6 +2229,10 @@ def CheckDoxygenCommand(FullFileName):
|
||||||
if Part.startswith('@'):
|
if Part.startswith('@'):
|
||||||
if EccGlobalData.gException.IsException(ERROR_DOXYGEN_CHECK_COMMAND, Part):
|
if EccGlobalData.gException.IsException(ERROR_DOXYGEN_CHECK_COMMAND, Part):
|
||||||
continue
|
continue
|
||||||
|
if not Part.replace('@', '').strip():
|
||||||
|
continue
|
||||||
|
if Part.lstrip('@') in ['{', '}']:
|
||||||
|
continue
|
||||||
if Part.lstrip('@').isalpha():
|
if Part.lstrip('@').isalpha():
|
||||||
if Part.lstrip('@') not in DoxygenCommandList:
|
if Part.lstrip('@') not in DoxygenCommandList:
|
||||||
PrintErrorMsg(ERROR_DOXYGEN_CHECK_COMMAND, 'Unknown doxygen command %s' % Part, FileTable, Result[1])
|
PrintErrorMsg(ERROR_DOXYGEN_CHECK_COMMAND, 'Unknown doxygen command %s' % Part, FileTable, Result[1])
|
||||||
|
|
Loading…
Reference in New Issue