## @file\r
# parse FDF file\r
#\r
-# Copyright (c) 2007 - 2010, Intel Corporation\r
+# Copyright (c) 2007 - 2014, Intel Corporation. All rights reserved.<BR>\r
#\r
-# All rights reserved. This program and the accompanying materials\r
+# 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
# Import Modules\r
#\r
import re\r
-import os\r
+import Common.LongFilePathOs as os\r
\r
import CommonDataClass.FdfClass\r
+from Common.LongFilePathSupport import OpenLongFilePath as open\r
\r
##define T_CHAR_SPACE ' '\r
##define T_CHAR_NULL '\0'\r
if not self.__GetNextHexNumber():\r
raise Warning("expected Hex byte At Line ", self.FileName, self.CurrentLineNumber)\r
\r
- if len(self.__Token) > 4:\r
- raise Warning("Hex byte(must be 2 digits) too long At Line ", self.FileName, self.CurrentLineNumber)\r
+ if len(self.__Token) > 18:\r
+ raise Warning("Hex string can't be converted to a valid UINT64 value", self.FileName, self.CurrentLineNumber)\r
\r
DataString = self.__Token\r
DataString += ","\r
if not self.__GetNextHexNumber():\r
raise Warning("expected Hex byte At Line ", self.FileName, self.CurrentLineNumber)\r
\r
- if len(self.__Token) > 4:\r
- raise Warning("Hex byte(must be 2 digits) too long At Line ", self.FileName, self.CurrentLineNumber)\r
+ if len(self.__Token) > 18:\r
+ raise Warning("Hex string can't be converted to a valid UINT64 value", self.FileName, self.CurrentLineNumber)\r
\r
DataString = self.__Token\r
DataString += ","\r
raise Warning("expected '.' At Line ", self.FileName, self.CurrentLineNumber)\r
\r
Arch = self.__SkippedChars.rstrip(".")\r
- if Arch.upper() not in ("IA32", "X64", "IPF", "EBC", "ARM", "COMMON"):\r
+ if Arch.upper() not in ("IA32", "X64", "IPF", "EBC", "ARM", "AARCH64", "COMMON"):\r
raise Warning("Unknown Arch '%s'" % Arch, self.FileName, self.CurrentLineNumber)\r
\r
ModuleType = self.__GetModuleType()\r
raise Warning("expected '.' At Line ", self.FileName, self.CurrentLineNumber)\r
\r
Arch = self.__SkippedChars.rstrip(".").upper()\r
- if Arch not in ("IA32", "X64", "IPF", "ARM"):\r
+ if Arch not in ("IA32", "X64", "IPF", "ARM", "AARCH64"):\r
raise Warning("Unknown Arch At line ", self.FileName, self.CurrentLineNumber)\r
\r
if not self.__GetNextWord():\r
if self.__IsToken(","):\r
if not self.__GetNextWord():\r
raise Warning("expected Arch list At Line ", self.FileName, self.CurrentLineNumber)\r
- if self.__Token.upper() not in ("IA32", "X64", "IPF", "ARM"):\r
+ if self.__Token.upper() not in ("IA32", "X64", "IPF", "ARM", "AARCH64"):\r
raise Warning("Unknown Arch At line ", self.FileName, self.CurrentLineNumber)\r
VtfObj.ArchList = self.__Token.upper()\r
\r
return CycleRefExists\r
\r
if __name__ == "__main__":\r
- parser = FdfParser("..\LakeportX64Pkg.fdf")\r
+ import sys\r
+ try:\r
+ test_file = sys.argv[1]\r
+ except IndexError, v:\r
+ print "Usage: %s filename" % sys.argv[0]\r
+ sys.exit(1)\r
+\r
+ parser = FdfParser(test_file)\r
try:\r
parser.ParseFile()\r
parser.CycleReferenceCheck()\r