Lines Matching refs:node
1606 node = self.top_node
1609 if node.list:
1610 node = node.list
1611 elif node.next:
1612 node = node.next
1614 while node.parent:
1615 node = node.parent
1618 if node.item is MENU and expr_value(node.dep) and \
1619 expr_value(node.visibility) and \
1620 node is not self.top_node:
1621 add("# end of {}\n".format(node.prompt[0]))
1624 if node.next:
1625 node = node.next
1633 item = node.item
1651 elif expr_value(node.dep) and \
1652 ((item is MENU and expr_value(node.visibility)) or
1655 add("\n#\n# {}\n#\n".format(node.prompt[0]))
1934 node = self.top_node
1937 if node.list:
1938 node = node.list
1939 elif node.next:
1940 node = node.next
1942 while node.parent:
1943 node = node.parent
1944 if node.next:
1945 node = node.next
1951 if unique_syms and node.item.__class__ is Symbol:
1952 if node.item._visited:
1954 node.item._visited = True
1956 yield node
2929 node = MenuNode()
2930 node.kconfig = self
2931 node.item = sym
2932 node.is_menuconfig = (t0 is _T_MENUCONFIG)
2933 node.prompt = node.help = node.list = None
2934 node.parent = parent
2935 node.filename = self.filename
2936 node.linenr = self.linenr
2937 node.include_path = self._include_path
2939 sym.nodes.append(node)
2941 self._parse_props(node)
2943 if node.is_menuconfig and not node.prompt:
2953 prev.next = prev = node
3003 node = MenuNode()
3004 node.item = node.prompt = None
3005 node.parent = parent
3006 node.dep = self._expect_expr_and_eol()
3008 self._parse_block(_T_ENDIF, node, node)
3009 node.list = node.next
3011 prev.next = prev = node
3014 node = MenuNode()
3015 node.kconfig = self
3016 node.item = t0 # _T_MENU == MENU
3017 node.is_menuconfig = True
3018 node.prompt = (self._expect_str_and_eol(), self.y)
3019 node.visibility = self.y
3020 node.parent = parent
3021 node.filename = self.filename
3022 node.linenr = self.linenr
3023 node.include_path = self._include_path
3025 self.menus.append(node)
3027 self._parse_props(node)
3028 self._parse_block(_T_ENDMENU, node, node)
3029 node.list = node.next
3031 prev.next = prev = node
3034 node = MenuNode()
3035 node.kconfig = self
3036 node.item = t0 # _T_COMMENT == COMMENT
3037 node.is_menuconfig = False
3038 node.prompt = (self._expect_str_and_eol(), self.y)
3039 node.list = None
3040 node.parent = parent
3041 node.filename = self.filename
3042 node.linenr = self.linenr
3043 node.include_path = self._include_path
3045 self.comments.append(node)
3047 self._parse_props(node)
3049 prev.next = prev = node
3067 node = MenuNode()
3068 node.kconfig = choice.kconfig = self
3069 node.item = choice
3070 node.is_menuconfig = True
3071 node.prompt = node.help = None
3072 node.parent = parent
3073 node.filename = self.filename
3074 node.linenr = self.linenr
3075 node.include_path = self._include_path
3077 choice.nodes.append(node)
3079 self._parse_props(node)
3080 self._parse_block(_T_ENDCHOICE, node, node)
3081 node.list = node.next
3083 prev.next = prev = node
3120 def _parse_props(self, node): argument
3139 node.dep = self.y
3146 self._set_type(node.item, t0)
3148 self._parse_prompt(node)
3154 node.dep = self._make_and(node.dep,
3158 self._parse_help(node)
3161 if node.item.__class__ is not Symbol:
3164 node.selects.append((self._expect_nonconst_sym(),
3172 node.defaults.append((self._parse_expr(False),
3176 self._set_type(node.item, _DEF_TOKEN_TO_TYPE[t0])
3177 node.defaults.append((self._parse_expr(False),
3181 self._parse_prompt(node)
3184 node.ranges.append((self._expect_sym(), self._expect_sym(),
3188 if node.item.__class__ is not Symbol:
3191 node.implies.append((self._expect_nonconst_sym(),
3198 node.visibility = self._make_and(node.visibility,
3207 node.item.env_var = env_var
3210 node.defaults.append(
3216 "set".format(node.item.name, env_var),
3219 if env_var != node.item.name:
3226 .format(node.item.name, env_var),
3231 self.defconfig_list = node.item
3236 node.item.name),
3245 if node.item is not self.modules:
3257 if node.item.__class__ is not Symbol:
3261 node.item.is_allnoconfig_y = True
3267 if node.item.__class__ is not Choice:
3270 node.item.is_optional = True
3287 def _parse_prompt(self, node): argument
3292 if node.prompt:
3293 self._warn(node.item.name_and_loc +
3303 self._warn(node.item.name_and_loc +
3310 node.prompt = (prompt, self._parse_cond())
3312 def _parse_help(self, node): argument
3313 if node.help is not None:
3314 self._warn(node.item.name_and_loc + " defined with more than "
3327 self._empty_help(node, line)
3340 self._empty_help(node, line)
3365 node.help = "".join(lines).rstrip()
3369 def _empty_help(self, node, line): argument
3370 self._warn(node.item.name_and_loc +
3372 node.help = ""
3484 for node in sym.nodes:
3485 if node.prompt:
3486 depend_on(sym, node.prompt[1])
3519 for node in choice.nodes:
3520 if node.prompt:
3521 depend_on(choice, node.prompt[1])
3556 def _finalize_node(self, node, visible_if): argument
3581 if node.item.__class__ is Symbol:
3583 self._add_props_to_sym(node)
3587 cur = node
3588 while cur.next and _auto_menu_dep(node, cur.next):
3593 cur.parent = node
3595 if cur is not node:
3598 node.list = node.next
3599 node.next = cur.next
3602 elif node.list:
3605 if node.item is MENU:
3606 visible_if = self._make_and(visible_if, node.visibility)
3612 self._propagate_deps(node, visible_if)
3615 cur = node.list
3620 if node.list:
3623 _flatten(node.list)
3624 _remove_ifs(node)
3628 if node.item.__class__ is Choice:
3631 choice = node.item
3632 choice.direct_dep = self._make_or(choice.direct_dep, node.dep)
3633 choice.defaults += node.defaults
3635 _finalize_choice(node)
3637 def _propagate_deps(self, node, visible_if): argument
3647 basedep = node.item if node.item.__class__ is Choice else node.dep
3649 cur = node.list
3689 def _add_props_to_sym(self, node): argument
3699 sym = node.item
3702 sym.direct_dep = self._make_or(sym.direct_dep, node.dep)
3704 sym.defaults += node.defaults
3705 sym.ranges += node.ranges
3706 sym.selects += node.selects
3707 sym.implies += node.implies
3710 for target, cond in node.selects:
3717 for target, cond in node.implies:
3837 for node in choice.nodes:
3838 if node.prompt:
3867 for node in sym.nodes:
3868 if node.parent.item is choice:
3869 if not node.prompt:
3873 elif node.prompt:
3963 for node in self.node_iter():
3964 if sym in node.referenced:
3966 .format(node.filename, node.linenr, node)
4661 return {item for node in self.nodes for item in node.referenced}
4668 return [d for node in self.nodes for d in node.orig_defaults]
4675 return [s for node in self.nodes for s in node.orig_selects]
4682 return [i for node in self.nodes for i in node.orig_implies]
4689 return [r for node in self.nodes for r in node.orig_ranges]
4700 for node in self.nodes:
4701 if node.prompt:
4702 add('"{}"'.format(node.prompt[0]))
4737 for node in self.nodes:
4738 add("{}:{}".format(node.filename, node.linenr))
4765 return "\n\n".join(node.custom_str(sc_expr_str_fn)
4766 for node in self.nodes)
4909 for node in self.nodes:
4910 if node.prompt:
5299 return {item for node in self.nodes for item in node.referenced}
5306 return [d for node in self.nodes for d in node.orig_defaults]
5317 for node in self.nodes:
5318 if node.prompt:
5319 add('"{}"'.format(node.prompt[0]))
5343 for node in self.nodes:
5344 add("{}:{}".format(node.filename, node.linenr))
5366 return "\n\n".join(node.custom_str(sc_expr_str_fn)
5367 for node in self.nodes)
6294 for node in sc.nodes:
6295 if node.prompt:
6296 vis = max(vis, expr_value(node.prompt[1]))
6430 ", ".join("{0.filename}:{0.linenr}".format(node)
6431 for node in sc.nodes))
6476 def _flatten(node): argument
6487 while node:
6488 if node.list and not node.prompt and \
6489 node.item.__class__ is not Choice:
6491 last_node = node.list
6493 last_node.parent = node.parent
6498 last_node.next = node.next
6499 node.next = node.list
6500 node.list = None
6502 node = node.next
6505 def _remove_ifs(node): argument
6511 cur = node.list
6515 node.list = cur
6531 def _finalize_choice(node): argument
6536 choice = node.item
6538 cur = node.list