Syntax fixes.
git-svn-id: svn://svn.coreboot.org/coreboot/trunk@892 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
This commit is contained in:
parent
826def7e1d
commit
06a927dd68
|
@ -108,10 +108,11 @@ class option:
|
|||
self.loc = 0 # current location
|
||||
self.value = 0 # option value
|
||||
self.set = 0 # option has been set
|
||||
self.used = 0 # option has been set
|
||||
self.default = 0 # option has default value (otherwise
|
||||
# it is undefined)
|
||||
self.comment = '' # description of option
|
||||
self.export = 0 # option is able to be exported
|
||||
self.exportable = 0 # option is able to be exported
|
||||
self.exported = 0 # option is exported
|
||||
self.defined = 0 # option has a value
|
||||
self.format = '%s' # option print format
|
||||
|
@ -179,15 +180,15 @@ class option:
|
|||
return
|
||||
self.comment = value
|
||||
|
||||
def setexport(self):
|
||||
self.export = 1
|
||||
def setexportable(self):
|
||||
self.exportable = 1
|
||||
|
||||
def setexported(self):
|
||||
self.export = 1
|
||||
self.exportable = 1
|
||||
self.exported = 1
|
||||
|
||||
def setnoexport(self):
|
||||
self.export = 0
|
||||
self.exportable = 0
|
||||
self.exported = 0
|
||||
|
||||
def setformat(self, fmt):
|
||||
|
@ -196,9 +197,10 @@ class option:
|
|||
def getformat(self):
|
||||
return self.format
|
||||
|
||||
def used(self):
|
||||
if (self.export):
|
||||
def setused(self):
|
||||
if (self.exportable):
|
||||
self.exported = 1
|
||||
self.used = 1
|
||||
|
||||
def isexported(self):
|
||||
return (self.exported and self.defined)
|
||||
|
@ -209,6 +211,9 @@ class option:
|
|||
def isset(self):
|
||||
return (self.set)
|
||||
|
||||
def isused(self):
|
||||
return (self.used)
|
||||
|
||||
class partobj:
|
||||
def __init__ (self, dir, parent, type):
|
||||
global partinstance
|
||||
|
@ -274,7 +279,7 @@ class partobj:
|
|||
o = getvalue(options, name)
|
||||
if (o == 0):
|
||||
fatal("Error: can't use undefined option %s" % name)
|
||||
o.used()
|
||||
o.setused()
|
||||
setvalue(self.options, name, o)
|
||||
if (debug):
|
||||
print "option %s used in %s" % (name, self)
|
||||
|
@ -423,16 +428,16 @@ def setnoexport(name):
|
|||
fatal("setnoexport: %s not here" % name)
|
||||
o.setnoexport()
|
||||
|
||||
def setexport(name):
|
||||
def setexportable(name):
|
||||
o = getvalue(options, name)
|
||||
if (not o):
|
||||
fatal("setexport: %s not here" % name)
|
||||
o.setexport()
|
||||
fatal("setexportable: %s not here" % name)
|
||||
o.setexportable()
|
||||
|
||||
def setformat(name, fmt):
|
||||
o = getvalue(options, name)
|
||||
if (not o):
|
||||
fatal("setexport: %s not here" % name)
|
||||
fatal("setformat: %s not here" % name)
|
||||
o.setformat(fmt)
|
||||
|
||||
def getformated(name, part):
|
||||
|
@ -474,6 +479,15 @@ def isset(name, part):
|
|||
return o.isset()
|
||||
return 0
|
||||
|
||||
def isused(name, part):
|
||||
if (part):
|
||||
o = getvalue(part.options, name)
|
||||
else:
|
||||
o = getvalue(options, name)
|
||||
if (o):
|
||||
return o.isused()
|
||||
return 0
|
||||
|
||||
def usesoption(name):
|
||||
global curpart
|
||||
curpart.usesoption(name)
|
||||
|
@ -583,10 +597,13 @@ def part(name, path, file):
|
|||
|
||||
def partpop():
|
||||
global curpart,curdir
|
||||
print "End PART %s" % curpart.type
|
||||
# Warn if options are used without being set in this part
|
||||
for i in curpart.options.keys():
|
||||
if (not isset(i, curpart)):
|
||||
print "WARNING: Option %s using default value %s" % (i, getformated(i, curpart))
|
||||
curpart = pstack.pop()
|
||||
curdir = dirstack.pop()
|
||||
if (debug):
|
||||
print "POP PART %s" % curpart.dir
|
||||
|
||||
# dodir is like part but there is no new part
|
||||
def dodir(path, file):
|
||||
|
@ -601,10 +618,11 @@ def dodir(path, file):
|
|||
if (debug):
|
||||
print "DODIR: path %s, fullpath %s" % (path, fullpath)
|
||||
print "DODIR: curdis %s treetop %s" % (curdir, treetop)
|
||||
print "Configuring DIR %s" % os.path.join(path, file)
|
||||
dirstack.append(curdir)
|
||||
curdir = fullpath
|
||||
file = os.path.join(fullpath, file)
|
||||
config_file_list.append(file)
|
||||
config_file_list.append(path)
|
||||
doconfigfile(fullpath, file)
|
||||
curdir = dirstack.pop()
|
||||
|
||||
|
@ -965,7 +983,7 @@ parser Config:
|
|||
| unop<<V>> {{ return unop }}
|
||||
| "\\(" expr<<V>> "\\)" {{ return expr }}
|
||||
|
||||
rule partend<<C>>: partstmts<<C>> END
|
||||
rule partend<<C>>: (stmt<<C>>)* END {{ partpop()}}
|
||||
|
||||
rule mainboard: MAINBOARD PATH {{ mainboard(PATH) }}
|
||||
partend<<1>>
|
||||
|
@ -1050,25 +1068,22 @@ parser Config:
|
|||
| ldscript<<C>> {{ return ldscript}}
|
||||
| payload<<C>> {{ return payload}}
|
||||
|
||||
rule stmts<<C>>: (stmt<<C>>)* {{ }}
|
||||
|
||||
rule partstmts<<C>>:
|
||||
(uses<<C>>)*
|
||||
(stmt<<C>>)* {{ partpop()}}
|
||||
|
||||
# need this to get from python to the rules, I think.
|
||||
rule pstmts: (uses<<1>>)* stmts<<1>> {{ return 1 }}
|
||||
# ENTRY for parsing Config.lb file
|
||||
rule cfgfile: (uses<<1>>)* (stmt<<1>>)*
|
||||
{{ return 1 }}
|
||||
|
||||
rule usesid<<C>>: ID {{ if (C): usesoption(ID) }}
|
||||
|
||||
rule uses<<C>>: USES (usesid<<C>>)+
|
||||
|
||||
# ENTRY for parsing a value
|
||||
rule value: STR {{ return dequote(STR) }}
|
||||
| term<<[]>> {{ return term }}
|
||||
| DELEXPR {{ return DELEXPR }}
|
||||
|
||||
rule option: OPTION ID EQ value {{ setoptionstmt(ID, value) }}
|
||||
|
||||
# ENTRY for parsing root part
|
||||
rule board: LOADOPTIONS {{ loadoptions() }}
|
||||
TARGET DIRPATH {{ target(DIRPATH) }}
|
||||
(uses<<1>>)*
|
||||
|
@ -1083,7 +1098,7 @@ parser Config:
|
|||
| FORMAT STR {{ setformat(ID, dequote(STR)) }}
|
||||
| EXPORT
|
||||
( ALWAYS {{ setexported(ID) }}
|
||||
| USED {{ setexport(ID) }}
|
||||
| USED {{ setexportable(ID) }}
|
||||
| NEVER {{ setnoexport(ID) }}
|
||||
) {{ d |= 2 }}
|
||||
| COMMENT STR {{ setcomment(ID, dequote(STR)); d |= 4 }}
|
||||
|
@ -1092,6 +1107,7 @@ parser Config:
|
|||
rule define: DEFINE ID {{ newoption(ID) }}
|
||||
defstmts<<ID>> END {{ validdef(ID, defstmts) }}
|
||||
|
||||
# ENTRY for parsing Options.lb file
|
||||
rule options: (define)* END {{ return 1 }}
|
||||
%%
|
||||
|
||||
|
@ -1124,11 +1140,9 @@ def gencode(part):
|
|||
|
||||
|
||||
def doconfigfile(path, file):
|
||||
if (debug):
|
||||
print "DOCONFIGFILE", path, " ", file
|
||||
filename = os.path.join(path, file)
|
||||
loc.push_file(filename)
|
||||
if (not parse('pstmts', open(filename, 'r').read())):
|
||||
if (not parse('cfgfile', open(filename, 'r').read())):
|
||||
fatal("Error: Could not parse file")
|
||||
|
||||
if __name__=='__main__':
|
||||
|
@ -1152,10 +1166,6 @@ if __name__=='__main__':
|
|||
|
||||
gencode(root)
|
||||
|
||||
for i in options.keys():
|
||||
if (isexported(i, 0) and not isset(i, 0)):
|
||||
print "WARNING: Option %s using default value %s" % (i, getformated(i, 0))
|
||||
|
||||
# crt0 includes
|
||||
if (debug):
|
||||
for i in crt0includes:
|
||||
|
|
Loading…
Reference in New Issue