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