/tags/jsdoc_toolkit-2.0.1/jsdoc-toolkit/app/lib/JSDOC/Lang.js

http://jsdoc-toolkit.googlecode.com/ · JavaScript · 144 lines · 130 code · 11 blank · 3 comment · 2 complexity · beb4580dbb2c3fef6bb88004ab49ad25 MD5 · raw file

  1. /**
  2. @namespace
  3. */
  4. JSDOC.Lang = {
  5. }
  6. JSDOC.Lang.isBuiltin = function(name) {
  7. return (JSDOC.Lang.isBuiltin.coreObjects.indexOf(name) > -1);
  8. }
  9. JSDOC.Lang.isBuiltin.coreObjects = ['_global_', 'Array', 'Boolean', 'Date', 'Function', 'Math', 'Number', 'Object', 'RegExp', 'String'];
  10. JSDOC.Lang.whitespace = function(ch) {
  11. return JSDOC.Lang.whitespace.names[ch];
  12. }
  13. JSDOC.Lang.whitespace.names = {
  14. " ": "SPACE",
  15. "\f": "FORMFEED",
  16. "\t": "TAB",
  17. "\u0009": "UNICODE_TAB",
  18. "\u000A": "UNICODE_NBR",
  19. "\u0008": "VERTICAL_TAB"
  20. };
  21. JSDOC.Lang.newline = function(ch) {
  22. return JSDOC.Lang.newline.names[ch];
  23. }
  24. JSDOC.Lang.newline.names = {
  25. "\n": "NEWLINE",
  26. "\r": "RETURN",
  27. "\u000A": "UNICODE_LF",
  28. "\u000D": "UNICODE_CR",
  29. "\u2029": "UNICODE_PS",
  30. "\u2028": "UNICODE_LS"
  31. };
  32. JSDOC.Lang.keyword = function(word) {
  33. return JSDOC.Lang.keyword.names["="+word];
  34. }
  35. JSDOC.Lang.keyword.names = {
  36. "=break": "BREAK",
  37. "=case": "CASE",
  38. "=catch": "CATCH",
  39. "=const": "VAR",
  40. "=continue": "CONTINUE",
  41. "=default": "DEFAULT",
  42. "=delete": "DELETE",
  43. "=do": "DO",
  44. "=else": "ELSE",
  45. "=false": "FALSE",
  46. "=finally": "FINALLY",
  47. "=for": "FOR",
  48. "=function": "FUNCTION",
  49. "=if": "IF",
  50. "=in": "IN",
  51. "=instanceof": "INSTANCEOF",
  52. "=new": "NEW",
  53. "=null": "NULL",
  54. "=return": "RETURN",
  55. "=switch": "SWITCH",
  56. "=this": "THIS",
  57. "=throw": "THROW",
  58. "=true": "TRUE",
  59. "=try": "TRY",
  60. "=typeof": "TYPEOF",
  61. "=void": "VOID",
  62. "=while": "WHILE",
  63. "=with": "WITH",
  64. "=var": "VAR"
  65. };
  66. JSDOC.Lang.punc = function(ch) {
  67. return JSDOC.Lang.punc.names[ch];
  68. }
  69. JSDOC.Lang.punc.names = {
  70. ";": "SEMICOLON",
  71. ",": "COMMA",
  72. "?": "HOOK",
  73. ":": "COLON",
  74. "||": "OR",
  75. "&&": "AND",
  76. "|": "BITWISE_OR",
  77. "^": "BITWISE_XOR",
  78. "&": "BITWISE_AND",
  79. "===": "STRICT_EQ",
  80. "==": "EQ",
  81. "=": "ASSIGN",
  82. "!==": "STRICT_NE",
  83. "!=": "NE",
  84. "<<": "LSH",
  85. "<=": "LE",
  86. "<": "LT",
  87. ">>>": "URSH",
  88. ">>": "RSH",
  89. ">=": "GE",
  90. ">": "GT",
  91. "++": "INCREMENT",
  92. "--": "DECREMENT",
  93. "+": "PLUS",
  94. "-": "MINUS",
  95. "*": "MUL",
  96. "/": "DIV",
  97. "%": "MOD",
  98. "!": "NOT",
  99. "~": "BITWISE_NOT",
  100. ".": "DOT",
  101. "[": "LEFT_BRACKET",
  102. "]": "RIGHT_BRACKET",
  103. "{": "LEFT_CURLY",
  104. "}": "RIGHT_CURLY",
  105. "(": "LEFT_PAREN",
  106. ")": "RIGHT_PAREN"
  107. };
  108. JSDOC.Lang.matching = function(name) {
  109. return JSDOC.Lang.matching.names[name];
  110. }
  111. JSDOC.Lang.matching.names = {
  112. "LEFT_PAREN": "RIGHT_PAREN",
  113. "RIGHT_PAREN": "LEFT_PAREN",
  114. "LEFT_CURLY": "RIGHT_CURLY",
  115. "RIGHT_CURLY": "LEFT_CURLY",
  116. "LEFT_BRACE": "RIGHT_BRACE",
  117. "RIGHT_BRACE": "LEFT_BRACE"
  118. }
  119. JSDOC.Lang.isNumber = function(str) {
  120. return /^(\.[0-9]|[0-9]+\.|[0-9])[0-9]*([eE][+-][0-9]+)?$/i.test(str);
  121. }
  122. JSDOC.Lang.isHexDec = function(str) {
  123. return /^0x[0-9A-F]+$/i.test(str);
  124. }
  125. JSDOC.Lang.isWordChar = function(str) {
  126. return /^[a-zA-Z0-9$_.]+$/.test(str);
  127. }
  128. JSDOC.Lang.isSpace = function(str) {
  129. return (typeof JSDOC.Lang.whitespace(str) != "undefined");
  130. }
  131. JSDOC.Lang.isNewline = function(str) {
  132. return (typeof JSDOC.Lang.newline(str) != "undefined");
  133. }