+#!/usr/bin/env python3
#
# Mini-Kconfig parser
#
# or, at your option, any later version. See the COPYING file in
# the top-level directory.
-from __future__ import print_function
import os
import sys
import re
if not self.src.startswith(rest, self.cursor):
return False
length = len(rest)
- if self.src[self.cursor + length].isalnum() or self.src[self.cursor + length] == '|':
+ if self.src[self.cursor + length].isalnum() or self.src[self.cursor + length] == '_':
return False
self.cursor += length
return True
self.cursor = self.src.find('\n', self.cursor)
self.val = self.src[start:self.cursor]
return TOK_SOURCE
- elif self.tok.isalpha():
+ elif self.tok.isalnum():
# identifier
while self.src[self.cursor].isalnum() or self.src[self.cursor] == '_':
self.cursor += 1
data = KconfigData(mode)
parser = KconfigParser(data)
+ external_vars = set()
for arg in argv[3:]:
m = re.match(r'^(CONFIG_[A-Z0-9_]+)=([yn]?)$', arg)
if m is not None:
name, value = m.groups()
parser.do_assignment(name, value == 'y')
+ external_vars.add(name[7:])
else:
fp = open(arg, 'r')
parser.parse_file(fp)
config = data.compute_config()
for key in sorted(config.keys()):
- print ('CONFIG_%s=%s' % (key, ('y' if config[key] else 'n')))
+ if key not in external_vars and config[key]:
+ print ('CONFIG_%s=y' % key)
deps = open(argv[2], 'w')
for fname in data.previously_included: