]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Source/Python/CommonDataClass/DataClass.py
Check In tool source code based on Build tool project revision r1655.
[mirror_edk2.git] / BaseTools / Source / Python / CommonDataClass / DataClass.py
diff --git a/BaseTools/Source/Python/CommonDataClass/DataClass.py b/BaseTools/Source/Python/CommonDataClass/DataClass.py
new file mode 100644 (file)
index 0000000..00f4be8
--- /dev/null
@@ -0,0 +1,351 @@
+## @file\r
+# This file is used to define class for data sturcture used in ECC\r
+#\r
+# Copyright (c) 2008, Intel Corporation\r
+# All rights reserved. This program and the accompanying materials\r
+# are licensed and made available under the terms and conditions of the BSD License\r
+# which accompanies this distribution.    The full text of the license may be found at\r
+# http://opensource.org/licenses/bsd-license.php\r
+#\r
+# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+\r
+##\r
+# Import Modules\r
+#\r
+import Common.EdkLogger as EdkLogger\r
+\r
+##\r
+# Static values for data models\r
+#\r
+MODEL_UNKNOWN = 0\r
+\r
+MODEL_FILE_C = 1001\r
+MODEL_FILE_H = 1002\r
+MODEL_FILE_ASM = 1003\r
+MODEL_FILE_INF = 1011\r
+MODEL_FILE_DEC = 1012\r
+MODEL_FILE_DSC = 1013\r
+MODEL_FILE_FDF = 1014\r
+MODEL_FILE_INC = 1015\r
+MODEL_FILE_CIF = 1016\r
+\r
+MODEL_IDENTIFIER_FILE_HEADER = 2001\r
+MODEL_IDENTIFIER_FUNCTION_HEADER = 2002\r
+MODEL_IDENTIFIER_COMMENT = 2003\r
+MODEL_IDENTIFIER_PARAMETER = 2004\r
+MODEL_IDENTIFIER_STRUCTURE = 2005\r
+MODEL_IDENTIFIER_VARIABLE = 2006\r
+MODEL_IDENTIFIER_INCLUDE = 2007\r
+MODEL_IDENTIFIER_PREDICATE_EXPRESSION = 2008\r
+MODEL_IDENTIFIER_ENUMERATE = 2009\r
+MODEL_IDENTIFIER_PCD = 2010\r
+MODEL_IDENTIFIER_UNION = 2011\r
+MODEL_IDENTIFIER_MACRO_IFDEF = 2012\r
+MODEL_IDENTIFIER_MACRO_IFNDEF = 2013\r
+MODEL_IDENTIFIER_MACRO_DEFINE = 2014\r
+MODEL_IDENTIFIER_MACRO_ENDIF = 2015\r
+MODEL_IDENTIFIER_MACRO_PROGMA = 2016\r
+MODEL_IDENTIFIER_FUNCTION_CALLING = 2018\r
+MODEL_IDENTIFIER_TYPEDEF = 2017\r
+MODEL_IDENTIFIER_FUNCTION_DECLARATION = 2019\r
+MODEL_IDENTIFIER_ASSIGNMENT_EXPRESSION = 2020\r
+\r
+MODEL_EFI_PROTOCOL = 3001\r
+MODEL_EFI_PPI = 3002\r
+MODEL_EFI_GUID = 3003\r
+MODEL_EFI_LIBRARY_CLASS = 3004\r
+MODEL_EFI_LIBRARY_INSTANCE = 3005\r
+MODEL_EFI_PCD = 3006\r
+MODEL_EFI_SOURCE_FILE = 3007\r
+MODEL_EFI_BINARY_FILE = 3008\r
+MODEL_EFI_SKU_ID = 3009\r
+MODEL_EFI_INCLUDE = 3010\r
+MODEL_EFI_DEPEX = 3011\r
+\r
+MODEL_PCD = 4000\r
+MODEL_PCD_FIXED_AT_BUILD = 4001\r
+MODEL_PCD_PATCHABLE_IN_MODULE = 4002\r
+MODEL_PCD_FEATURE_FLAG = 4003\r
+MODEL_PCD_DYNAMIC_EX = 4004\r
+MODEL_PCD_DYNAMIC_EX_DEFAULT = 4005\r
+MODEL_PCD_DYNAMIC_EX_VPD = 4006\r
+MODEL_PCD_DYNAMIC_EX_HII = 4007\r
+MODEL_PCD_DYNAMIC = 4008\r
+MODEL_PCD_DYNAMIC_DEFAULT = 4009\r
+MODEL_PCD_DYNAMIC_VPD = 4010\r
+MODEL_PCD_DYNAMIC_HII = 4011\r
+\r
+MODEL_META_DATA_HEADER = 5001\r
+MODEL_META_DATA_INCLUDE = 5002\r
+MODEL_META_DATA_DEFINE = 5003\r
+MODEL_META_DATA_CONDITIONAL_STATEMENT_IF = 5004\r
+MODEL_META_DATA_CONDITIONAL_STATEMENT_ELSE = 5005\r
+MODEL_META_DATA_CONDITIONAL_STATEMENT_IFDEF = 5006\r
+MODEL_META_DATA_CONDITIONAL_STATEMENT_IFNDEF = 5007\r
+MODEL_META_DATA_BUILD_OPTION = 5008\r
+MODEL_META_DATA_COMPONENT = 5009\r
+MODEL_META_DATA_USER_EXTENSION = 5010\r
+MODEL_META_DATA_PACKAGE = 5011\r
+MODEL_META_DATA_NMAKE = 5012\r
+MODEL_META_DATA_CONDITIONAL_STATEMENT_ELSEIF = 50013\r
+MODEL_META_DATA_CONDITIONAL_STATEMENT_ENDIF = 5014\r
+MODEL_META_DATA_COMPONENT_SOURCE_OVERRIDE_PATH = 5015\r
+\r
+MODEL_LIST = [('MODEL_UNKNOWN', MODEL_UNKNOWN),\r
+              ('MODEL_FILE_C', MODEL_FILE_C),\r
+              ('MODEL_FILE_H', MODEL_FILE_H),\r
+              ('MODEL_FILE_ASM', MODEL_FILE_ASM),\r
+              ('MODEL_FILE_INF', MODEL_FILE_INF),\r
+              ('MODEL_FILE_DEC', MODEL_FILE_DEC),\r
+              ('MODEL_FILE_DSC', MODEL_FILE_DSC),\r
+              ('MODEL_FILE_FDF', MODEL_FILE_FDF),\r
+              ('MODEL_FILE_INC', MODEL_FILE_INC),\r
+              ('MODEL_IDENTIFIER_FILE_HEADER', MODEL_IDENTIFIER_FILE_HEADER),\r
+              ('MODEL_IDENTIFIER_FUNCTION_HEADER', MODEL_IDENTIFIER_FUNCTION_HEADER),\r
+              ('MODEL_IDENTIFIER_COMMENT', MODEL_IDENTIFIER_COMMENT),\r
+              ('MODEL_IDENTIFIER_PARAMETER', MODEL_IDENTIFIER_PARAMETER),\r
+              ('MODEL_IDENTIFIER_STRUCTURE', MODEL_IDENTIFIER_STRUCTURE),\r
+              ('MODEL_IDENTIFIER_VARIABLE', MODEL_IDENTIFIER_VARIABLE),\r
+              ('MODEL_IDENTIFIER_INCLUDE', MODEL_IDENTIFIER_INCLUDE),\r
+              ('MODEL_IDENTIFIER_PREDICATE_EXPRESSION', MODEL_IDENTIFIER_PREDICATE_EXPRESSION),\r
+              ('MODEL_IDENTIFIER_ENUMERATE', MODEL_IDENTIFIER_ENUMERATE),\r
+              ('MODEL_IDENTIFIER_PCD', MODEL_IDENTIFIER_PCD),\r
+              ('MODEL_IDENTIFIER_UNION', MODEL_IDENTIFIER_UNION),\r
+              ('MODEL_IDENTIFIER_MACRO_IFDEF', MODEL_IDENTIFIER_MACRO_IFDEF),\r
+              ('MODEL_IDENTIFIER_MACRO_IFNDEF', MODEL_IDENTIFIER_MACRO_IFNDEF),\r
+              ('MODEL_IDENTIFIER_MACRO_DEFINE', MODEL_IDENTIFIER_MACRO_DEFINE),\r
+              ('MODEL_IDENTIFIER_MACRO_ENDIF', MODEL_IDENTIFIER_MACRO_ENDIF),\r
+              ('MODEL_IDENTIFIER_MACRO_PROGMA', MODEL_IDENTIFIER_MACRO_PROGMA),\r
+              ('MODEL_IDENTIFIER_FUNCTION_CALLING', MODEL_IDENTIFIER_FUNCTION_CALLING),\r
+              ('MODEL_IDENTIFIER_TYPEDEF', MODEL_IDENTIFIER_TYPEDEF),\r
+              ('MODEL_IDENTIFIER_FUNCTION_DECLARATION', MODEL_IDENTIFIER_FUNCTION_DECLARATION),\r
+              ('MODEL_IDENTIFIER_ASSIGNMENT_EXPRESSION', MODEL_IDENTIFIER_ASSIGNMENT_EXPRESSION),\r
+              ('MODEL_EFI_PROTOCOL', MODEL_EFI_PROTOCOL),\r
+              ('MODEL_EFI_PPI', MODEL_EFI_PPI),\r
+              ('MODEL_EFI_GUID', MODEL_EFI_GUID),\r
+              ('MODEL_EFI_LIBRARY_CLASS', MODEL_EFI_LIBRARY_CLASS),\r
+              ('MODEL_EFI_LIBRARY_INSTANCE', MODEL_EFI_LIBRARY_INSTANCE),\r
+              ('MODEL_EFI_PCD', MODEL_EFI_PCD),\r
+              ('MODEL_EFI_SKU_ID', MODEL_EFI_SKU_ID),\r
+              ('MODEL_EFI_INCLUDE', MODEL_EFI_INCLUDE),\r
+              ('MODEL_EFI_DEPEX', MODEL_EFI_DEPEX),\r
+              ('MODEL_IDENTIFIER_UNION', MODEL_IDENTIFIER_UNION),\r
+              ('MODEL_EFI_SOURCE_FILE', MODEL_EFI_SOURCE_FILE),\r
+              ('MODEL_EFI_BINARY_FILE', MODEL_EFI_BINARY_FILE),\r
+              ('MODEL_PCD', MODEL_PCD),\r
+              ('MODEL_PCD_FIXED_AT_BUILD', MODEL_PCD_FIXED_AT_BUILD),\r
+              ('MODEL_PCD_PATCHABLE_IN_MODULE', MODEL_PCD_PATCHABLE_IN_MODULE),\r
+              ('MODEL_PCD_FEATURE_FLAG', MODEL_PCD_FEATURE_FLAG),\r
+              ('MODEL_PCD_DYNAMIC_EX', MODEL_PCD_DYNAMIC_EX),\r
+              ('MODEL_PCD_DYNAMIC_EX_DEFAULT', MODEL_PCD_DYNAMIC_EX_DEFAULT),\r
+              ('MODEL_PCD_DYNAMIC_EX_VPD', MODEL_PCD_DYNAMIC_EX_VPD),\r
+              ('MODEL_PCD_DYNAMIC_EX_HII', MODEL_PCD_DYNAMIC_EX_HII),\r
+              ('MODEL_PCD_DYNAMIC', MODEL_PCD_DYNAMIC),\r
+              ('MODEL_PCD_DYNAMIC_DEFAULT', MODEL_PCD_DYNAMIC_DEFAULT),\r
+              ('MODEL_PCD_DYNAMIC_VPD', MODEL_PCD_DYNAMIC_VPD),\r
+              ('MODEL_PCD_DYNAMIC_HII', MODEL_PCD_DYNAMIC_HII),\r
+              ("MODEL_META_DATA_HEADER", MODEL_META_DATA_HEADER),\r
+              ("MODEL_META_DATA_INCLUDE", MODEL_META_DATA_INCLUDE),\r
+              ("MODEL_META_DATA_DEFINE", MODEL_META_DATA_DEFINE),\r
+              ("MODEL_META_DATA_CONDITIONAL_STATEMENT_IF", MODEL_META_DATA_CONDITIONAL_STATEMENT_IF),\r
+              ("MODEL_META_DATA_CONDITIONAL_STATEMENT_ELSE", MODEL_META_DATA_CONDITIONAL_STATEMENT_ELSE),\r
+              ("MODEL_META_DATA_CONDITIONAL_STATEMENT_IFDEF", MODEL_META_DATA_CONDITIONAL_STATEMENT_IFDEF),\r
+              ("MODEL_META_DATA_CONDITIONAL_STATEMENT_IFNDEF", MODEL_META_DATA_CONDITIONAL_STATEMENT_IFNDEF),\r
+              ("MODEL_META_DATA_COMPONENT_SOURCE_OVERRIDE_PATH", MODEL_META_DATA_COMPONENT_SOURCE_OVERRIDE_PATH),\r
+              ("MODEL_META_DATA_BUILD_OPTION", MODEL_META_DATA_BUILD_OPTION),\r
+              ("MODEL_META_DATA_COMPONENT", MODEL_META_DATA_COMPONENT),\r
+              ('MODEL_META_DATA_USER_EXTENSION', MODEL_META_DATA_USER_EXTENSION),\r
+              ('MODEL_META_DATA_PACKAGE', MODEL_META_DATA_PACKAGE),\r
+              ('MODEL_META_DATA_NMAKE', MODEL_META_DATA_NMAKE)\r
+             ]\r
+\r
+## FunctionClass\r
+#\r
+# This class defines a structure of a function\r
+# \r
+# @param ID:               ID of a Function\r
+# @param Header:           Header of a Function\r
+# @param Modifier:         Modifier of a Function \r
+# @param Name:             Name of a Function\r
+# @param ReturnStatement:  ReturnStatement of a Funciont\r
+# @param StartLine:        StartLine of a Function\r
+# @param StartColumn:      StartColumn of a Function\r
+# @param EndLine:          EndLine of a Function\r
+# @param EndColumn:        EndColumn of a Function\r
+# @param BodyStartLine:    BodyStartLine of a Function Body\r
+# @param BodyStartColumn:  BodyStartColumn of a Function Body\r
+# @param BelongsToFile:    The Function belongs to which file\r
+# @param IdentifierList:   IdentifierList of a File\r
+# @param PcdList:          PcdList of a File\r
+#\r
+# @var ID:                 ID of a Function\r
+# @var Header:             Header of a Function\r
+# @var Modifier:           Modifier of a Function \r
+# @var Name:               Name of a Function\r
+# @var ReturnStatement:    ReturnStatement of a Funciont\r
+# @var StartLine:          StartLine of a Function\r
+# @var StartColumn:        StartColumn of a Function\r
+# @var EndLine:            EndLine of a Function\r
+# @var EndColumn:          EndColumn of a Function\r
+# @var BodyStartLine:      StartLine of a Function Body\r
+# @var BodyStartColumn:    StartColumn of a Function Body\r
+# @var BelongsToFile:      The Function belongs to which file\r
+# @var IdentifierList:     IdentifierList of a File\r
+# @var PcdList:            PcdList of a File\r
+#\r
+class FunctionClass(object):\r
+    def __init__(self, ID = -1, Header = '', Modifier = '', Name = '', ReturnStatement = '', \\r
+                 StartLine = -1, StartColumn = -1, EndLine = -1, EndColumn = -1, \\r
+                 BodyStartLine = -1, BodyStartColumn = -1, BelongsToFile = -1, \\r
+                 IdentifierList = [], PcdList = [], \\r
+                 FunNameStartLine = -1, FunNameStartColumn = -1):\r
+        self.ID = ID\r
+        self.Header = Header\r
+        self.Modifier = Modifier                    \r
+        self.Name = Name\r
+        self.ReturnStatement = ReturnStatement\r
+        self.StartLine = StartLine\r
+        self.StartColumn = StartColumn\r
+        self.EndLine = EndLine\r
+        self.EndColumn = EndColumn\r
+        self.BodyStartLine = BodyStartLine\r
+        self.BodyStartColumn = BodyStartColumn\r
+        self.BelongsToFile = BelongsToFile\r
+        self.FunNameStartLine = FunNameStartLine\r
+        self.FunNameStartColumn = FunNameStartColumn\r
+        \r
+        self.IdentifierList = IdentifierList\r
+        self.PcdList = PcdList\r
+\r
+## IdentifierClass\r
+#\r
+# This class defines a structure of a variable\r
+# \r
+# @param ID:                 ID of a Identifier\r
+# @param Modifier:           Modifier of a Identifier\r
+# @param Type:               Type of a Identifier\r
+# @param Name:               Name of a Identifier\r
+# @param Value:              Value of a Identifier\r
+# @param Model:              Model of a Identifier\r
+# @param BelongsToFile:      The Identifier belongs to which file\r
+# @param BelongsToFunction:  The Identifier belongs to which function\r
+# @param StartLine:          StartLine of a Identifier\r
+# @param StartColumn:        StartColumn of a Identifier\r
+# @param EndLine:            EndLine of a Identifier\r
+# @param EndColumn:          EndColumn of a Identifier\r
+#\r
+# @var ID:                   ID of a Identifier\r
+# @var Modifier:             Modifier of a Identifier\r
+# @var Type:                 Type of a Identifier\r
+# @var Name:                 Name of a Identifier\r
+# @var Value:                Value of a Identifier\r
+# @var Model:                Model of a Identifier\r
+# @var BelongsToFile:        The Identifier belongs to which file\r
+# @var BelongsToFunction:    The Identifier belongs to which function\r
+# @var StartLine:            StartLine of a Identifier\r
+# @var StartColumn:          StartColumn of a Identifier\r
+# @var EndLine:              EndLine of a Identifier\r
+# @var EndColumn:            EndColumn of a Identifier\r
+#\r
+class IdentifierClass(object):\r
+    def __init__(self, ID = -1, Modifier = '', Type = '', Name = '', Value = '', Model = MODEL_UNKNOWN, \\r
+                 BelongsToFile = -1, BelongsToFunction = -1, StartLine = -1, StartColumn = -1, EndLine = -1, EndColumn = -1):\r
+        self.ID = ID\r
+        self.Modifier = Modifier\r
+        self.Type = Type\r
+        self.Name = Name\r
+        self.Value = Value\r
+        self.Model = Model\r
+        self.BelongsToFile = BelongsToFile\r
+        self.BelongsToFunction = BelongsToFunction\r
+        self.StartLine = StartLine\r
+        self.StartColumn = StartColumn\r
+        self.EndLine = EndLine\r
+        self.EndColumn = EndColumn\r
+\r
+## PcdClass\r
+#\r
+# This class defines a structure of a Pcd\r
+# \r
+# @param ID:                   ID of a Pcd\r
+# @param CName:                CName of a Pcd\r
+# @param TokenSpaceGuidCName:  TokenSpaceGuidCName of a Pcd\r
+# @param Token:                Token of a Pcd\r
+# @param DatumType:            DatumType of a Pcd\r
+# @param Model:                Model of a Pcd\r
+# @param BelongsToFile:        The Pcd belongs to which file\r
+# @param BelongsToFunction:    The Pcd belongs to which function\r
+# @param StartLine:            StartLine of a Pcd\r
+# @param StartColumn:          StartColumn of a Pcd\r
+# @param EndLine:              EndLine of a Pcd\r
+# @param EndColumn:            EndColumn of a Pcd\r
+#\r
+# @var ID:                     ID of a Pcd\r
+# @var CName:                  CName of a Pcd\r
+# @var TokenSpaceGuidCName:    TokenSpaceGuidCName of a Pcd\r
+# @var Token:                  Token of a Pcd\r
+# @var DatumType:              DatumType of a Pcd\r
+# @var Model:                  Model of a Pcd\r
+# @var BelongsToFile:          The Pcd belongs to which file\r
+# @var BelongsToFunction:      The Pcd belongs to which function\r
+# @var StartLine:              StartLine of a Pcd\r
+# @var StartColumn:            StartColumn of a Pcd\r
+# @var EndLine:                EndLine of a Pcd\r
+# @var EndColumn:              EndColumn of a Pcd\r
+#\r
+class PcdDataClass(object):\r
+    def __init__(self, ID = -1, CName = '', TokenSpaceGuidCName = '', Token = '', DatumType = '', Model = MODEL_UNKNOWN, \\r
+                 BelongsToFile = -1, BelongsToFunction = -1, StartLine = -1, StartColumn = -1, EndLine = -1, EndColumn = -1):\r
+        self.ID = ID\r
+        self.CName = CName\r
+        self.TokenSpaceGuidCName = TokenSpaceGuidCName\r
+        self.Token = Token\r
+        self.DatumType = DatumType\r
+        self.BelongsToFile = BelongsToFile\r
+        self.BelongsToFunction = BelongsToFunction\r
+        self.StartLine = StartLine\r
+        self.StartColumn = StartColumn\r
+        self.EndLine = EndLine\r
+        self.EndColumn = EndColumn\r
+\r
+## FileClass\r
+#\r
+# This class defines a structure of a file\r
+# \r
+# @param ID:              ID of a File\r
+# @param Name:            Name of a File\r
+# @param ExtName:         ExtName of a File\r
+# @param Path:            Path of a File\r
+# @param FullPath:        FullPath of a File\r
+# @param Model:           Model of a File\r
+# @param TimeStamp:       TimeStamp of a File\r
+# @param FunctionList:    FunctionList of a File\r
+# @param IdentifierList:  IdentifierList of a File\r
+# @param PcdList:         PcdList of a File\r
+#\r
+# @var ID:                ID of a File\r
+# @var Name:              Name of a File\r
+# @var ExtName:           ExtName of a File\r
+# @var Path:              Path of a File\r
+# @var FullPath:          FullPath of a File\r
+# @var Model:             Model of a File\r
+# @var TimeStamp:         TimeStamp of a File\r
+# @var FunctionList:      FunctionList of a File\r
+# @var IdentifierList:    IdentifierList of a File\r
+# @var PcdList:           PcdList of a File\r
+#\r
+class FileClass(object):\r
+    def __init__(self, ID = -1, Name = '', ExtName = '', Path = '', FullPath = '', Model = MODEL_UNKNOWN, TimeStamp = '', \\r
+                 FunctionList = [], IdentifierList = [], PcdList = []):\r
+        self.ID = ID                                   \r
+        self.Name = Name\r
+        self.ExtName = ExtName                    \r
+        self.Path = Path\r
+        self.FullPath = FullPath\r
+        self.Model = Model\r
+        self.TimeStamp = TimeStamp\r
+        \r
+        self.FunctionList = FunctionList\r
+        self.IdentifierList = IdentifierList\r
+        self.PcdList = PcdList\r