[Libguestfs] [PATCH 2/3] v2v: add Var_expander

Richard W.M. Jones rjones at redhat.com
Mon Mar 25 14:55:46 UTC 2019


On Mon, Feb 25, 2019 at 05:22:51PM +0100, Pino Toscano wrote:
[...]

After being burned a few times with custom parsing (hello, guestfish)
I'm not a big fan.

Is there not an existing C or OCaml library/facility we could use
here?  It's a shame we can't use Perl Template Toolkit because it
would be ideal here.

There are all kinds of questions that aren't answered such as: Should
variables be replaced recursively?  How do you escape %{..} if you
don't want it to be replaced?  Should we allow loops or similar
constructs?  Existing template systems solve these kinds of problems
already.

Anyway ...

> +let var_re = PCRE.compile "%{([^}]+)}"

Are we planning to allow a completely free choice for variable names,
or could we limit this regexp to only matching ASCII alphanumeric +
underscore?

> +let check_variable var =
> +  String.iter (
> +    function
> +    | '0'..'9'
> +    | 'a'..'z'
> +    | 'A'..'Z'
> +    | '_'
> +    | '-' -> ()
> +    | _ -> raise (Invalid_variable var)
> +  ) var

... and then this function would presumably go away.

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
Fedora Windows cross-compiler. Compile Windows programs, test, and
build Windows installers. Over 100 libraries supported.
http://fedoraproject.org/wiki/MinGW




More information about the Libguestfs mailing list