From: Rob Hoes Date: Wed, 6 Nov 2013 17:49:40 +0000 (+0000) Subject: libxl: ocaml: avoid reserved words in type and field names. X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~6032 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=af638c407d4cf42abd2d617849d6f0211014e074;p=xen.git libxl: ocaml: avoid reserved words in type and field names. Do this by adding a "xl_" prefix to all names that are OCaml keywords. Signed-off-by: Rob Hoes Acked-by: Ian Campbell --- diff --git a/tools/ocaml/libs/xl/genwrap.py b/tools/ocaml/libs/xl/genwrap.py index 1b68b6b297..bdac6e9599 100644 --- a/tools/ocaml/libs/xl/genwrap.py +++ b/tools/ocaml/libs/xl/genwrap.py @@ -70,8 +70,21 @@ def ocaml_type_of(ty): else: return ty.rawname +ocaml_keywords = ['and', 'as', 'assert', 'begin', 'end', 'class', 'constraint', + 'do', 'done', 'downto', 'else', 'if', 'end', 'exception', 'external', 'false', + 'for', 'fun', 'function', 'functor', 'if', 'in', 'include', 'inherit', + 'initializer', 'lazy', 'let', 'match', 'method', 'module', 'mutable', 'new', + 'object', 'of', 'open', 'or', 'private', 'rec', 'sig', 'struct', 'then', 'to', + 'true', 'try', 'type', 'val', 'virtual', 'when', 'while', 'with'] + +def munge_name(name): + if name in ocaml_keywords: + return "xl_" + name + else: + return name + def ocaml_instance_of(type, name): - return "%s : %s" % (name, ocaml_type_of(type)) + return "%s : %s" % (munge_name(name), ocaml_type_of(type)) def gen_ocaml_ml(ty, interface, indent=""):