From 089c71ac47fde2d22432da7e91e332b8cfe384d7 Mon Sep 17 00:00:00 2001 From: syn Date: Thu, 11 Feb 2021 04:17:36 +0300 Subject: More files from new generator --- src/util.py | 70 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 src/util.py (limited to 'src/util.py') diff --git a/src/util.py b/src/util.py new file mode 100644 index 0000000..9eee425 --- /dev/null +++ b/src/util.py @@ -0,0 +1,70 @@ +import re +from lark import Token + +# https://stackoverflow.com/a/1176023/6938271 +MIXED_2_SNAKE_CASE = re.compile(r'(? tuple: # rusty_name: str, inner: str, deserializer: Optional[int] + if isinstance(raw_type, Token): + if type_is_scalar(raw_type): + scalar, deserialize = convert_scalar_name(raw_type) + if deserialize: + return scalar, scalar, 0 + else: + return scalar, scalar, None + else: + rusty_type = to_camel_case(raw_type) + if rusty_type in BOXED_TYPES: + return f'Box<{rusty_type}>', rusty_type, None + return rusty_type, rusty_type, None + else: + inner_full, inner_inner, deserializer = parse_param(raw_type.children[0]) + if deserializer is not None: + deserializer += 1 + return f'Vec<{inner_full}>', inner_inner, deserializer -- cgit v1.2.1-18-gbd029