[master] 80f09e4f7 More use of tokenlist

Dridi Boukelmoune dridi at varni.sh
Tue Nov 27 16:22:08 UTC 2018


On Tue, Nov 27, 2018 at 5:17 PM Poul-Henning Kamp <phk at freebsd.org> wrote:
>
>
> commit 80f09e4f73ff772ac92ed9ad74f738537b98bee1
> Author: Poul-Henning Kamp <phk at FreeBSD.org>
> Date:   Tue Nov 27 14:05:09 2018 +0000
>
>     More use of tokenlist
>
> diff --git a/lib/libvcc/vmodtool.py b/lib/libvcc/vmodtool.py
> index 5061be2d9..19d8b1fa9 100755
> --- a/lib/libvcc/vmodtool.py
> +++ b/lib/libvcc/vmodtool.py
> @@ -591,10 +591,17 @@ class stanza(object):
>
>
>  class s_module(stanza):
> +
> +    ''' $Module modname man_section description ... '''
> +
>      def parse(self):
> +        if len(self.toks) < 4:
> +            self.syntax()
>          a = self.line[1].split(None, 2)
> -        self.vcc.modname = a[0]
> -        self.vcc.mansection = a[1]
> +        self.vcc.modname = self.toks[1]
> +        self.vcc.mansection = self.toks[2]
> +        # XXX: Find better solution for moddesc
> +        self.vcc.moddesc = " ".join(self.toks[2:])

If the tokenizer supports quoting, require that $Module stanzas look like:

    $Module foo 3 "Foo module for Varnish"

Breaking change though.

>          self.vcc.moddesc = a[2]
>          self.rstlbl = "vmod_%s(%s)" % (
>              self.vcc.modname,
> @@ -678,17 +685,31 @@ class s_prefix(stanza):
>
>
>  class s_synopsis(stanza):
> +
> +    ''' $Synopsis [auto|manual] '''
> +
>      def parse(self):
> -        if self.line[1] not in ('auto', 'manual'):
> +        if len(self.toks) != 2:
> +            self.syntax()
> +        valid = {
> +            'auto': True,
> +            'manual': False,
> +        }
> +        self.vcc.auto_synopsis = vald.get(self.toks[1])
> +        if self.vcc.auto_synopsis is None:
>              err("Valid Synopsis values are 'auto' or 'manual', got '%s'\n" %
> -                self.line[1])
> -        self.vcc.auto_synopsis = self.line[1] == 'auto'
> +                self.toks[1])
>          self.vcc.contents.append(self)
>
>
>  class s_event(stanza):
> +
> +    ''' $Event function_name '''
> +
>      def parse(self):
> -        self.event_func = self.line[1]
> +        if len(self.toks) != 2:
> +            self.syntax()
> +        self.event_func = self.toks[1]
>          self.vcc.contents.append(self)
>
>      def rstfile(self, fo, man):
> _______________________________________________
> varnish-commit mailing list
> varnish-commit at varnish-cache.org
> https://www.varnish-cache.org/lists/mailman/listinfo/varnish-commit


More information about the varnish-commit mailing list