diff options
Diffstat (limited to 'mavlink-library/src/main/scala/com/github/jodersky/mavlink/StringUtils.scala')
-rw-r--r-- | mavlink-library/src/main/scala/com/github/jodersky/mavlink/StringUtils.scala | 42 |
1 files changed, 40 insertions, 2 deletions
diff --git a/mavlink-library/src/main/scala/com/github/jodersky/mavlink/StringUtils.scala b/mavlink-library/src/main/scala/com/github/jodersky/mavlink/StringUtils.scala index 38b87e7..29f262f 100644 --- a/mavlink-library/src/main/scala/com/github/jodersky/mavlink/StringUtils.scala +++ b/mavlink-library/src/main/scala/com/github/jodersky/mavlink/StringUtils.scala @@ -2,15 +2,53 @@ package com.github.jodersky.mavlink object StringUtils { + private final val Keywords = Set( + "class", + "object", + "trait", + "extends", + "type", + "import", + "package", + "val", + "var", + "def", + "implicit", + "private", + "protected", + "abstract", + "override", + "class", + "case", + "match", + "final", + "this", + "super", + "throw", + "catch", + "finally", + "if", + "else", + "for", + "while", + "do" + ) + + private def escape(str: String) = if (Keywords.contains(str)) { + "`" + str + "`" + } else { + str + } + def camelify(str: String) = { val lower = str.toLowerCase - "_([a-z\\d])".r.replaceAllIn(lower, {m => m.group(1).toUpperCase()}) + escape("_([a-z\\d])".r.replaceAllIn(lower, {m => m.group(1).toUpperCase()})) } def Camelify(str: String) = { val camel = camelify(str) val (head, tail) = camel.splitAt(1) - head.toUpperCase + tail + escape(head.toUpperCase + tail) } }
\ No newline at end of file |