Revision: 16487
          http://sourceforge.net/p/edk2/code/16487
Author:   hchen30
Date:     2014-12-09 06:41:58 +0000 (Tue, 09 Dec 2014)
Log Message:
-----------
BaseTools/ECC: Fix some issues of ECC tool

Add support for the usage which is defined in the above line for a 
Protocol/Ppi/Guid
Add support for ?\226?\128?\156!ERROR?\226?\128?\157
Ignore issue of parsing a macro

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hess Chen <[email protected]>
Reviewed-by: Liming Gao <[email protected]>

Modified Paths:
--------------
    trunk/edk2/BaseTools/Source/Python/Common/DataType.py
    trunk/edk2/BaseTools/Source/Python/CommonDataClass/DataClass.py
    trunk/edk2/BaseTools/Source/Python/Ecc/Check.py
    trunk/edk2/BaseTools/Source/Python/Ecc/MetaFileWorkspace/MetaFileParser.py

Modified: trunk/edk2/BaseTools/Source/Python/Common/DataType.py
===================================================================
--- trunk/edk2/BaseTools/Source/Python/Common/DataType.py       2014-12-09 
02:20:16 UTC (rev 16486)
+++ trunk/edk2/BaseTools/Source/Python/Common/DataType.py       2014-12-09 
06:41:58 UTC (rev 16487)
@@ -442,6 +442,7 @@
 TAB_IF_DEF = '!ifdef'
 TAB_IF_N_DEF = '!ifndef'
 TAB_IF_EXIST = '!if exist'
+TAB_ERROR = '!ERROR'
 
 #
 # Unknown section

Modified: trunk/edk2/BaseTools/Source/Python/CommonDataClass/DataClass.py
===================================================================
--- trunk/edk2/BaseTools/Source/Python/CommonDataClass/DataClass.py     
2014-12-09 02:20:16 UTC (rev 16486)
+++ trunk/edk2/BaseTools/Source/Python/CommonDataClass/DataClass.py     
2014-12-09 06:41:58 UTC (rev 16487)
@@ -86,6 +86,7 @@
 MODEL_META_DATA_CONDITIONAL_STATEMENT_ELSE = 5005
 MODEL_META_DATA_CONDITIONAL_STATEMENT_IFDEF = 5006
 MODEL_META_DATA_CONDITIONAL_STATEMENT_IFNDEF = 5007
+MODEL_META_DATA_CONDITIONAL_STATEMENT_ERROR = 5400
 MODEL_META_DATA_BUILD_OPTION = 5008
 MODEL_META_DATA_COMPONENT = 5009
 MODEL_META_DATA_USER_EXTENSION = 5010
@@ -164,6 +165,7 @@
               ("MODEL_META_DATA_CONDITIONAL_STATEMENT_ELSE", 
MODEL_META_DATA_CONDITIONAL_STATEMENT_ELSE),
               ("MODEL_META_DATA_CONDITIONAL_STATEMENT_IFDEF", 
MODEL_META_DATA_CONDITIONAL_STATEMENT_IFDEF),
               ("MODEL_META_DATA_CONDITIONAL_STATEMENT_IFNDEF", 
MODEL_META_DATA_CONDITIONAL_STATEMENT_IFNDEF),
+              ("MODEL_META_DATA_CONDITIONAL_STATEMENT_ERROR", 
MODEL_META_DATA_CONDITIONAL_STATEMENT_ERROR),
               ("MODEL_META_DATA_COMPONENT_SOURCE_OVERRIDE_PATH", 
MODEL_META_DATA_COMPONENT_SOURCE_OVERRIDE_PATH),
               ("MODEL_META_DATA_BUILD_OPTION", MODEL_META_DATA_BUILD_OPTION),
               ("MODEL_META_DATA_COMPONENT", MODEL_META_DATA_COMPONENT),

Modified: trunk/edk2/BaseTools/Source/Python/Ecc/Check.py
===================================================================
--- trunk/edk2/BaseTools/Source/Python/Ecc/Check.py     2014-12-09 02:20:16 UTC 
(rev 16486)
+++ trunk/edk2/BaseTools/Source/Python/Ecc/Check.py     2014-12-09 06:41:58 UTC 
(rev 16487)
@@ -63,7 +63,7 @@
     def GeneralCheckNonAcsii(self):
         if EccGlobalData.gConfig.GeneralCheckNonAcsii == '1' or 
EccGlobalData.gConfig.GeneralCheckAll == '1' or EccGlobalData.gConfig.CheckAll 
== '1':
             EdkLogger.quiet("Checking Non-ACSII char in file ...")
-            SqlCommand = """select ID, FullPath, ExtName from File"""
+            SqlCommand = """select ID, FullPath, ExtName from File where 
ExtName in ('.dec', '.inf', '.dsc', 'c', 'h')"""
             RecordSet = EccGlobalData.gDb.TblFile.Exec(SqlCommand)
             for Record in RecordSet:
                 if Record[2].upper() not in 
EccGlobalData.gConfig.BinaryExtList:

Modified: 
trunk/edk2/BaseTools/Source/Python/Ecc/MetaFileWorkspace/MetaFileParser.py
===================================================================
--- trunk/edk2/BaseTools/Source/Python/Ecc/MetaFileWorkspace/MetaFileParser.py  
2014-12-09 02:20:16 UTC (rev 16486)
+++ trunk/edk2/BaseTools/Source/Python/Ecc/MetaFileWorkspace/MetaFileParser.py  
2014-12-09 06:41:58 UTC (rev 16487)
@@ -461,13 +461,14 @@
                                      MODEL_PCD_DYNAMIC_EX,
                                      MODEL_PCD_DYNAMIC]:
                 Line = Content[Index].strip()
-                if Line.startswith(TAB_COMMENT_SPLIT):
+                if Line.startswith(TAB_SPECIAL_COMMENT):
+                    Usage += ' ' + Line[Line.find(TAB_SPECIAL_COMMENT):]
                     continue
+                elif Line.startswith(TAB_COMMENT_SPLIT):
+                    continue
                 elif Line.find(TAB_COMMENT_SPLIT) > 0:
-                    Usage = Line[Line.find(TAB_COMMENT_SPLIT):]
+                    Usage += ' ' + Line[Line.find(TAB_COMMENT_SPLIT):]
                     Line = Line[:Line.find(TAB_COMMENT_SPLIT)]
-                else:
-                    Usage = ''
             else:
             # skip empty, commented, block commented lines
                 Line = CleanString(Content[Index], AllowCppStyleComment=True)
@@ -545,6 +546,7 @@
             # LineBegin=-1, ColumnBegin=-1, LineEnd=-1, ColumnEnd=-1, 
Enabled=-1
             #
             self._ValueList[0] = self._ValueList[0].replace('/', '\\')
+            Usage = Usage.strip()
             for Arch, Platform in self._Scope:
                 self._Store(self._SectionType,
                             self._ValueList[0],
@@ -561,6 +563,7 @@
                             0,
                             Usage
                             )
+            Usage = ''
         if IsFindBlockComment:
             EdkLogger.error("Parser", FORMAT_INVALID, "Open block comments 
(starting with /*) are expected to end with */", 
                             File=self.MetaFile)
@@ -731,6 +734,7 @@
         TAB_ELSE_IF.upper()                         :   
MODEL_META_DATA_CONDITIONAL_STATEMENT_ELSEIF,
         TAB_ELSE.upper()                            :   
MODEL_META_DATA_CONDITIONAL_STATEMENT_ELSE,
         TAB_END_IF.upper()                          :   
MODEL_META_DATA_CONDITIONAL_STATEMENT_ENDIF,
+        TAB_ERROR.upper()                           :   
MODEL_META_DATA_CONDITIONAL_STATEMENT_ERROR,
     }
 
     # Valid names in define section
@@ -1117,6 +1121,7 @@
             MODEL_META_DATA_BUILD_OPTION                    :   
self.__ProcessBuildOption,
             MODEL_UNKNOWN                                   :   self._Skip,
             MODEL_META_DATA_USER_EXTENSION                  :   self._Skip,
+            MODEL_META_DATA_CONDITIONAL_STATEMENT_ERROR     :   self._Skip,
         }
         
         self._RawTable = self._Table
@@ -1152,9 +1157,10 @@
                 # Only catch expression evaluation error here. We need to 
report
                 # the precise number of line on which the error occurred
                 #
-                EdkLogger.error('Parser', FORMAT_INVALID, "Invalid expression: 
%s" % str(Excpt),
-                                File=self._FileWithError, ExtraData=' 
'.join(self._ValueList), 
-                                Line=self._LineIndex+1)
+                pass
+#                 EdkLogger.error('Parser', FORMAT_INVALID, "Invalid 
expression: %s" % str(Excpt),
+#                                 File=self._FileWithError, ExtraData=' 
'.join(self._ValueList),
+#                                 Line=self._LineIndex+1)
             except MacroException, Excpt:
                 EdkLogger.error('Parser', FORMAT_INVALID, str(Excpt),
                                 File=self._FileWithError, ExtraData=' 
'.join(self._ValueList), 
@@ -1809,7 +1815,10 @@
         # Load Fdf file if filename is not None
         #
         if Filename != None:
-            self.LoadFdfFile(Filename)
+            try:
+                self.LoadFdfFile(Filename)
+            except Exception:
+                pass
 
     #
     # Insert a FDF file record into database


------------------------------------------------------------------------------
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=164703151&iu=/4140/ostg.clktrk
_______________________________________________
edk2-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-commits

Reply via email to