diff options
| author | Ulf Magnusson <ulfalizer@gmail.com> | 2017-09-19 03:45:53 +0200 |
|---|---|---|
| committer | Ulf Magnusson <ulfalizer@gmail.com> | 2017-09-19 03:45:53 +0200 |
| commit | 44a9a3df46782e40ae46ea2370db6ab06b49b3a0 (patch) | |
| tree | 9c81b3407a6876d560b3f5de5fc85537d659775d | |
| parent | 5da358fc59d016b5df8aafe89e0b9a23a0160cc9 (diff) | |
Clean up _parse_block() cases
Do the block.append() after parsing the complete item. More obvious.
| -rw-r--r-- | kconfiglib.py | 27 |
1 files changed, 14 insertions, 13 deletions
diff --git a/kconfiglib.py b/kconfiglib.py index c6f141b..30b1493 100644 --- a/kconfiglib.py +++ b/kconfiglib.py @@ -675,14 +675,13 @@ class Config(object): # choice statements, the choice statement takes precedence. if not sym.is_defined_ or isinstance(parent, Choice): sym.parent = parent - sym.is_defined_ = True + self._parse_properties(line_feeder, sym, deps, visible_if_deps) + self.kconfig_syms.append(sym) block.append(sym) - self._parse_properties(line_feeder, sym, deps, visible_if_deps) - elif t0 == T_SOURCE: kconfig_file = tokens.get_next() exp_kconfig_file = self._expand_sym_refs(kconfig_file) @@ -718,39 +717,40 @@ class Config(object): elif t0 == T_COMMENT: comment = Comment() - comment.config = self comment.parent = parent comment.filename = line_feeder.filename comment.linenr = line_feeder.linenr comment.text = tokens.get_next() - self.comments.append(comment) - block.append(comment) - self._parse_properties(line_feeder, comment, deps, visible_if_deps) + self.comments.append(comment) + block.append(comment) + elif t0 == T_MENU: menu = Menu() - menu.config = self menu.parent = parent menu.filename = line_feeder.filename menu.linenr = line_feeder.linenr menu.title = tokens.get_next() - self.menus.append(menu) - block.append(menu) - - # Parse properties and contents self._parse_properties(line_feeder, menu, deps, visible_if_deps) + + # This needs to go before _parse_block() so that we get the + # proper menu ordering in the case of nested functions + self.menus.append(menu) + # Parse contents and put Items in menu.block self._parse_block(line_feeder, T_ENDMENU, menu, menu.dep_expr, _make_and(visible_if_deps, menu.visible_if_expr), menu.block) + block.append(menu) + elif t0 == T_CHOICE: name = tokens.get_next() if name is None: @@ -771,9 +771,10 @@ class Config(object): choice.def_locations.append((line_feeder.filename, line_feeder.linenr)) - # Parse properties and contents self._parse_properties(line_feeder, choice, deps, visible_if_deps) + + # Parse contents and put Items in choice.block self._parse_block(line_feeder, T_ENDCHOICE, choice, deps, visible_if_deps, choice.block) |
