Warn about statements not found in the grammar

This commit is contained in:
Petr Špaček 2022-05-12 19:33:20 +02:00
parent cbad1803a5
commit ebe6ede2ec
No known key found for this signature in database
GPG key ID: ABD587CDF06581AE

View file

@ -216,12 +216,15 @@ def domain_factory(domainname, domainlabel, todolist, grammar):
location=(new["docname"], new["lineno"]),
)
def get_statement_name(self, signature):
return "{}.{}.{}".format(domainname, "statement", signature)
def add_statement(self, signature, tags, short, lineno):
"""
Add a new statement to the domain data structures.
No visible effect.
"""
name = "{}.{}.{}".format(domainname, "statement", signature)
name = self.get_statement_name(signature)
anchor = "{}-statement-{}".format(domainname, signature)
new = {
@ -291,6 +294,18 @@ def domain_factory(domainname, domainlabel, todolist, grammar):
domainlabel,
)
extra_statement_sigs = defined_statements.difference(statements_in_grammar)
for extra in extra_statement_sigs:
fullname = self.get_statement_name(extra)
desc = self.data["statements"][fullname]
logger.warning(
".. statement:: %s found but matching definition in %s grammar is"
" missing",
extra,
domainlabel,
location=(desc["docname"], desc["lineno"]),
)
@classmethod
def process_statementlist_nodes(cls, app, doctree, fromdocname):
"""