John Snow <[email protected]> writes: > This is a minor re-work of the entrypoint script. It isolates a
<pedantic>entrypoint is not a word</> ;-P > generate() method from the actual command-line mechanism. > > Signed-off-by: John Snow <[email protected]> > Reviewed-by: Eduardo Habkost <[email protected]> > Reviewed-by: Cleber Rosa <[email protected]> > Tested-by: Cleber Rosa <[email protected]> > --- > scripts/qapi-gen.py | 89 ++++++++++++++++++++++++++++++++++----------- > 1 file changed, 67 insertions(+), 22 deletions(-) > > diff --git a/scripts/qapi-gen.py b/scripts/qapi-gen.py > index 541e8c1f55d..054554ed846 100644 > --- a/scripts/qapi-gen.py > +++ b/scripts/qapi-gen.py > @@ -1,30 +1,77 @@ > #!/usr/bin/env python3 > -# QAPI generator > -# > + > # This work is licensed under the terms of the GNU GPL, version 2 or later. > # See the COPYING file in the top-level directory. > > +""" > +QAPI Generator > + > +This is the main entry point for generating C code from the QAPI schema. > +""" > > import argparse > import re > import sys > +from typing import Optional > > from qapi.commands import gen_commands > +from qapi.error import QAPIError > from qapi.events import gen_events > from qapi.introspect import gen_introspect > -from qapi.schema import QAPIError, QAPISchema > +from qapi.schema import QAPISchema > from qapi.types import gen_types > from qapi.visit import gen_visit > > > -def main(argv): > +def invalid_char(prefix: str) -> Optional[str]: Naming is hard... invalid_char() makes sense because it returns the invalid character. The name's a tad generic, though. Would first_invalid_prefix_char() be easier to understand? > + match = re.match(r'([A-Za-z_.-][A-Za-z0-9_.-]*)?', prefix) > + if match.end() != len(prefix): > + return prefix[match.end()] > + return None [...]
