return hash(self.Target.Path)\r
\r
def __eq__(self, Other):\r
- if type(Other) == type(self):\r
+ if isinstance(Other, type(self)):\r
return Other.Target.Path == self.Target.Path\r
else:\r
return str(Other) == self.Target.Path\r
# @param LineIndex The line number from which the parsing will begin\r
# @param SupportedFamily The list of supported tool chain families\r
#\r
- def __init__(self, File=None, Content=None, LineIndex=0, SupportedFamily=["MSFT", "INTEL", "GCC", "RVCT"]):\r
+ def __init__(self, File=None, Content=None, LineIndex=0, SupportedFamily=[TAB_COMPILER_MSFT, "INTEL", "GCC", "RVCT"]):\r
self.RuleFile = File\r
# Read build rules from file if it's not none\r
if File is not None:\r
# Clean up the line and replace path separator with native one\r
Line = self.RuleContent[Index].strip().replace(self._PATH_SEP, os.path.sep)\r
self.RuleContent[Index] = Line\r
- \r
+\r
# find the build_rule_version\r
- if Line and Line[0] == "#" and Line.find(TAB_BUILD_RULE_VERSION) <> -1:\r
- if Line.find("=") <> -1 and Line.find("=") < (len(Line) - 1) and (Line[(Line.find("=") + 1):]).split():\r
+ if Line and Line[0] == "#" and Line.find(TAB_BUILD_RULE_VERSION) != -1:\r
+ if Line.find("=") != -1 and Line.find("=") < (len(Line) - 1) and (Line[(Line.find("=") + 1):]).split():\r
self._FileVersion = (Line[(Line.find("=") + 1):]).split()[0]\r
# skip empty or comment line\r
if Line == "" or Line[0] == "#":\r
#\r
# @param LineIndex The line index of build rule text\r
#\r
- def ParseInputFile(self, LineIndex):\r
+ def ParseInputFileSubSection(self, LineIndex):\r
FileList = [File.strip() for File in self.RuleContent[LineIndex].split(",")]\r
for ToolChainFamily in self._FamilyList:\r
- InputFiles = self._RuleInfo[ToolChainFamily, self._State]\r
- if InputFiles is None:\r
- InputFiles = []\r
- self._RuleInfo[ToolChainFamily, self._State] = InputFiles\r
- InputFiles.extend(FileList)\r
+ if self._RuleInfo[ToolChainFamily, self._State] is None:\r
+ self._RuleInfo[ToolChainFamily, self._State] = []\r
+ self._RuleInfo[ToolChainFamily, self._State].extend(FileList)\r
\r
## Parse <ExtraDependency> sub-section\r
+ ## Parse <OutputFile> sub-section\r
+ ## Parse <Command> sub-section\r
#\r
# @param LineIndex The line index of build rule text\r
#\r
- def ParseCommon(self, LineIndex):\r
+ def ParseCommonSubSection(self, LineIndex):\r
for ToolChainFamily in self._FamilyList:\r
- Items = self._RuleInfo[ToolChainFamily, self._State]\r
- if Items is None:\r
- Items = []\r
- self._RuleInfo[ToolChainFamily, self._State] = Items\r
- Items.append(self.RuleContent[LineIndex])\r
+ if self._RuleInfo[ToolChainFamily, self._State] is None:\r
+ self._RuleInfo[ToolChainFamily, self._State] = []\r
+ self._RuleInfo[ToolChainFamily, self._State].append(self.RuleContent[LineIndex])\r
\r
## Get a build rule via [] operator\r
#\r
_Section : ParseSection,\r
_SubSectionHeader : ParseSubSectionHeader,\r
_SubSection : ParseSubSection,\r
- _InputFile : ParseInputFile,\r
- _OutputFile : ParseCommon,\r
- _ExtraDependency : ParseCommon,\r
- _Command : ParseCommon,\r
+ _InputFile : ParseInputFileSubSection,\r
+ _OutputFile : ParseCommonSubSection,\r
+ _ExtraDependency : ParseCommonSubSection,\r
+ _Command : ParseCommonSubSection,\r
_UnknownSection : SkipSection,\r
}\r
\r
EdkLogger.Initialize()\r
if len(sys.argv) > 1:\r
Br = BuildRule(sys.argv[1])\r
- print(str(Br[".c", SUP_MODULE_DXE_DRIVER, "IA32", "MSFT"][1]))\r
+ print(str(Br[".c", SUP_MODULE_DXE_DRIVER, "IA32", TAB_COMPILER_MSFT][1]))\r
print()\r
print(str(Br[".c", SUP_MODULE_DXE_DRIVER, "IA32", "INTEL"][1]))\r
print()\r
print(str(Br[".c", SUP_MODULE_DXE_DRIVER, "IA32", "GCC"][1]))\r
print()\r
- print(str(Br[".ac", "ACPI_TABLE", "IA32", "MSFT"][1]))\r
+ print(str(Br[".ac", "ACPI_TABLE", "IA32", TAB_COMPILER_MSFT][1]))\r
print()\r
print(str(Br[".h", "ACPI_TABLE", "IA32", "INTEL"][1]))\r
print()\r
- print(str(Br[".ac", "ACPI_TABLE", "IA32", "MSFT"][1]))\r
+ print(str(Br[".ac", "ACPI_TABLE", "IA32", TAB_COMPILER_MSFT][1]))\r
print()\r
print(str(Br[".s", SUP_MODULE_SEC, "IPF", "COMMON"][1]))\r
print()\r