def resolve_symbols(self, database, link_resolver, page=None):
page = page or self.root<EOL>if page.ast is None and not page.generated:<EOL><INDENT>with io.open(page.source_file, '<STR_LIT:r>', encoding='<STR_LIT:utf-8>') as _:<EOL><INDENT>page.ast = cmark.hotdoc_to_ast(_.read(), self)<EOL><DEDENT><DEDENT>page.resolve_symbols(self, database, link_resolver)<EOL>self.__update_dep_map(page, page.symbols)<EOL>for pagename in page.subpages:<EOL><INDENT>cpage = self.__all_pages[pagename]<EOL>self.resolve_symbols(database, link_resolver, page=cpage)<EOL><DEDENT>
Will call resolve_symbols on all the stale subpages of the tree.
        Args:
          page: hotdoc.core.tree.Page, the page to resolve symbols in,
          will recurse on potential subpages.