KeywordHandler.hx 796 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. package python.internal;
  2. import python.lib.Types.Set;
  3. class KeywordHandler {
  4. static var keywords:Set<String> = new Set(
  5. [
  6. "and", "del", "from", "not", "while",
  7. "as", "elif", "global", "or", "with",
  8. "assert", "else", "if", "pass", "yield",
  9. "break", "except", "import", "print", "float",
  10. "class", "exec", "in", "raise",
  11. "continue", "finally", "is", "return",
  12. "def", "for", "lambda", "try",
  13. "None", "list"
  14. ]);
  15. public static inline function handleKeywords(name:String)
  16. {
  17. if (keywords.has(name)) {
  18. return "_hx_" + name;
  19. }
  20. return name;
  21. }
  22. public static function unhandleKeywords(name:String)
  23. {
  24. if (name.substr(0,4) == "_hx_") {
  25. var real = name.substr(4);
  26. if (keywords.has(real)) return real;
  27. }
  28. return name;
  29. }
  30. }