diff options
Diffstat (limited to 'thirdparty/nRF5_SDK_15.0.0_a53641a/external/nano-pb/generator/camel_case_splitter.py')
-rw-r--r-- | thirdparty/nRF5_SDK_15.0.0_a53641a/external/nano-pb/generator/camel_case_splitter.py | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/thirdparty/nRF5_SDK_15.0.0_a53641a/external/nano-pb/generator/camel_case_splitter.py b/thirdparty/nRF5_SDK_15.0.0_a53641a/external/nano-pb/generator/camel_case_splitter.py new file mode 100644 index 0000000..4397b66 --- /dev/null +++ b/thirdparty/nRF5_SDK_15.0.0_a53641a/external/nano-pb/generator/camel_case_splitter.py @@ -0,0 +1,35 @@ +def split_camel_case(input): + def remove_camel_case(camel_case_input): + no_camel_case = "" + if len(camel_case_input) <= 0: + return "" + no_camel_case += camel_case_input[0].lower() + for c in camel_case_input[1:]: + if c.isupper(): + no_camel_case += "_" + c.lower() + else: + no_camel_case += c + return no_camel_case + + underscore_split = input.split("_") + retval = "" + for i in underscore_split: + if is_camel_case_name(i): + retval += remove_camel_case(i) + "_" + else: + retval += i + "_" + + return retval[:-1].replace("__", "_") + + +def is_camel_case_name(input): + if '_' in input: + return False + + if input.islower(): + return False + + if input.isupper(): + return False + + return True
\ No newline at end of file |