CMGDK r49-rc2
|
00001 / * 00002 00003 A n g e l C o d e S c r i p t i n g L i b r a r y 00004 00005 C o p y r i g h t ( c ) 2 0 0 3 - 2 0 0 7 A n d r e a s J o n s s o n 00006 00007 00008 00009 T h i s s o f t w a r e i s p r o v i d e d ' a s - i s ' , w i t h o u t a n y e x p r e s s o r i m p l i e d 00010 00011 w a r r a n t y . I n n o e v e n t w i l l t h e a u t h o r s b e h e l d l i a b l e f o r a n y 00012 00013 d a m a g e s a r i s i n g f r o m t h e u s e o f t h i s s o f t w a r e . 00014 00015 00016 00017 P e r m i s s i o n i s g r a n t e d t o a n y o n e t o u s e t h i s s o f t w a r e f o r a n y 00018 00019 p u r p o s e , i n c l u d i n g c o m m e r c i a l a p p l i c a t i o n s , a n d t o a l t e r i t a n d 00020 00021 r e d i s t r i b u t e i t f r e e l y , s u b j e c t t o t h e f o l l o w i n g r e s t r i c t i o n s : 00022 00023 00024 00025 1 . T h e o r i g i n o f t h i s s o f t w a r e m u s t n o t b e m i s r e p r e s e n t e d ; y o u 00026 00027 m u s t n o t c l a i m t h a t y o u w r o t e t h e o r i g i n a l s o f t w a r e . I f y o u u s e 00028 00029 t h i s s o f t w a r e i n a p r o d u c t , a n a c k n o w l e d g m e n t i n t h e p r o d u c t 00030 00031 d o c u m e n t a t i o n w o u l d b e a p p r e c i a t e d b u t i s n o t r e q u i r e d . 00032 00033 00034 00035 2 . A l t e r e d s o u r c e v e r s i o n s m u s t b e p l a i n l y m a r k e d a s s u c h , a n d 00036 00037 m u s t n o t b e m i s r e p r e s e n t e d a s b e i n g t h e o r i g i n a l s o f t w a r e . 00038 00039 00040 00041 3 . T h i s n o t i c e m a y n o t b e r e m o v e d o r a l t e r e d f r o m a n y s o u r c e 00042 00043 d i s t r i b u t i o n . 00044 00045 00046 00047 T h e o r i g i n a l v e r s i o n o f t h i s l i b r a r y c a n b e l o c a t e d a t : 00048 00049 h t t p : / / w w w . a n g e l c o d e . c o m / a n g e l s c r i p t / 00050 00051 00052 00053 A n d r e a s J o n s s o n 00054 00055 a n d r e a s @ a n g e l c o d e . c o m 00056 00057 * / 00058 00059 00060 00061 00062 00063 / / 00064 00065 / / a s _ t o k e n d e f . h 00066 00067 / / 00068 00069 / / D e f i n i t i o n s f o r t o k e n s i d e n t i f i a b l e b y t h e t o k e n i z e r 00070 00071 / / 00072 00073 00074 00075 00076 00077 # i f n d e f A S _ T O K E N D E F _ H 00078 00079 # d e f i n e A S _ T O K E N D E F _ H 00080 00081 00082 00083 n a m e s p a c e a n g l e _ s c r i p t 00084 00085 { 00086 00087 e n u m e T o k e n T y p e 00088 00089 { 00090 00091 t t U n r e c o g n i z e d T o k e n , 00092 00093 00094 00095 t t E n d , / / E n d o f f i l e 00096 00097 00098 00099 / / W h i t e s p a c e a n d c o m m e n t s 00100 00101 t t W h i t e S p a c e , / / ' ' , ' \ t ' , ' \ r ' , ' \ n ' 00102 00103 t t O n e l i n e C o m m e n t , / / / / \ n 00104 00105 t t M u l t i l i n e C o m m e n t , / / / * * / 00106 00107 00108 00109 / / A t o m s 00110 00111 t t I d e n t i f i e r , / / a b c 1 2 3 00112 00113 t t I n t C o n s t a n t , / / 1 2 3 4 00114 00115 t t F l o a t C o n s t a n t , / / 1 2 . 3 4 e 5 6 f 00116 00117 t t D o u b l e C o n s t a n t , / / 1 2 . 3 4 e 5 6 00118 00119 t t S t r i n g C o n s t a n t , / / " 1 2 3 " 00120 00121 t t H e r e d o c S t r i n g C o n s t a n t , / / " " " t e x t " " " 00122 00123 t t N o n T e r m i n a t e d S t r i n g C o n s t a n t , / / " 1 2 3 00124 00125 t t B i t s C o n s t a n t , / / 0 x F F F F 00126 00127 00128 00129 / / M a t h o p e r a t o r s 00130 00131 t t P l u s , / / + 00132 00133 t t M i n u s , / / - 00134 00135 t t S t a r , / / * 00136 00137 t t S l a s h , / / / 00138 00139 t t P e r c e n t , / / % 00140 00141 00142 00143 t t H a n d l e , / / # 00144 00145 00146 00147 t t A d d A s s i g n , / / + = 00148 00149 t t S u b A s s i g n , / / - = 00150 00151 t t M u l A s s i g n , / / * = 00152 00153 t t D i v A s s i g n , / / / = 00154 00155 t t M o d A s s i g n , / / % = 00156 00157 00158 00159 t t O r A s s i g n , / / | = 00160 00161 t t A n d A s s i g n , / / & = 00162 00163 t t X o r A s s i g n , / / ^ = 00164 00165 t t S h i f t L e f t A s s i g n , / / < < = 00166 00167 t t S h i f t R i g h t L A s s i g n , / / > > = 00168 00169 t t S h i f t R i g h t A A s s i g n , / / > > > = 00170 00171 00172 00173 t t I n c , / / + + 00174 00175 t t D e c , / / - - 00176 00177 00178 00179 t t D o t , / / . 00180 00181 00182 00183 / / S t a t e m e n t t o k e n s 00184 00185 t t A s s i g n m e n t , / / = 00186 00187 t t E n d S t a t e m e n t , / / ; 00188 00189 t t L i s t S e p a r a t o r , / / , 00190 00191 t t S t a r t S t a t e m e n t B l o c k , / / { 00192 00193 t t E n d S t a t e m e n t B l o c k , / / } 00194 00195 t t O p e n P a r a n t h e s i s , / / ( 00196 00197 t t C l o s e P a r a n t h e s i s , / / ) 00198 00199 t t O p e n B r a c k e t , / / [ 00200 00201 t t C l o s e B r a c k e t , / / ] 00202 00203 t t A m p , / / & 00204 00205 00206 00207 / / B i t w i s e o p e r a t o r s 00208 00209 t t B i t O r , / / | 00210 00211 t t B i t N o t , / / ~ 00212 00213 t t B i t X o r , / / ^ 00214 00215 t t B i t S h i f t L e f t , / / < < 00216 00217 t t B i t S h i f t R i g h t , / / > > 00218 00219 t t B i t S h i f t R i g h t A r i t h , / / > > > 00220 00221 00222 00223 / / C o m p a r e o p e r a t o r s 00224 00225 t t E q u a l , / / = = 00226 00227 t t N o t E q u a l , / / ! = 00228 00229 t t L e s s T h a n , / / < 00230 00231 t t G r e a t e r T h a n , / / > 00232 00233 t t L e s s T h a n O r E q u a l , / / < = 00234 00235 t t G r e a t e r T h a n O r E q u a l , / / > = 00236 00237 00238 00239 t t Q u e s t i o n , / / ? 00240 00241 t t C o l o n , / / : 00242 00243 00244 00245 / / R e s e r v e d k e y w o r d s 00246 00247 t t I f , / / i f 00248 00249 t t E l s e , / / e l s e 00250 00251 t t F o r , / / f o r 00252 00253 t t W h i l e , / / w h i l e 00254 00255 t t B o o l , / / b o o l 00256 00257 t t I m p o r t , / / i m p o r t 00258 00259 00260 00261 t t G o t o , / / g o t o 00262 00263 00264 00265 t t E n u m , / / e n u m 00266 00267 t t F u n c , / / f u n c t i o n 00268 00269 t t S t r i n g , / / s t r i n g 00270 00271 00272 00273 t t I n t , / / i n t 00274 00275 t t I n t 8 , / / i n t 8 00276 00277 t t I n t 1 6 , / / i n t 1 6 00278 00279 t t I n t 6 4 , / / i n t 6 4 00280 00281 t t I n t e r f a c e , / / i n t e r f a c e 00282 00283 t t U I n t , / / u i n t 00284 00285 t t U I n t 8 , / / u i n t 8 00286 00287 t t U I n t 1 6 , / / u i n t 1 6 00288 00289 t t U I n t 6 4 , / / u i n t 6 4 00290 00291 t t F l o a t , / / f l o a t 00292 00293 t t V o i d , / / v o i d 00294 00295 t t T r u e , / / t r u e 00296 00297 t t F a l s e , / / f a l s e 00298 00299 t t R e t u r n , / / r e t u r n 00300 00301 t t N o t , / / n o t 00302 00303 t t A n d , / / a n d 00304 00305 t t O r , / / o r 00306 00307 t t X o r , / / x o r 00308 00309 t t B r e a k , / / b r e a k 00310 00311 t t C o n t i n u e , / / c o n t i n u e 00312 00313 t t C o n s t , / / c o n s t 00314 00315 t t D o , / / d o 00316 00317 t t D o u b l e , / / d o u b l e 00318 00319 t t S w i t c h , / / s w i t c h 00320 00321 t t C a s e , / / c a s e 00322 00323 t t D e f a u l t , / / d e f a u l t 00324 00325 t t I n , / / i n 00326 00327 t t O u t , / / o u t 00328 00329 t t I n O u t , / / i n o u t 00330 00331 t t N u l l , / / n u l l 00332 00333 t t C l a s s , / / c l a s s 00334 00335 t t C a s t / / c a s t 00336 00337 } ; 00338 00339 00340 00341 s t r u c t s T o k e n W o r d 00342 00343 { 00344 00345 w c h a r _ t * w o r d ; 00346 00347 e T o k e n T y p e t o k e n T y p e ; 00348 00349 } ; 00350 00351 00352 00353 s T o k e n W o r d c o n s t t o k e n W o r d s [ ] = 00354 00355 { 00356 00357 { L " + " , t t P l u s } , 00358 00359 { L " - " , t t M i n u s } , 00360 00361 { L " * " , t t S t a r } , 00362 00363 { L " / " , t t S l a s h } , 00364 00365 { L " % " , t t P e r c e n t } , 00366 00367 { L " = " , t t A s s i g n m e n t } , 00368 00369 { L " . " , t t D o t } , 00370 00371 { L " + = " , t t A d d A s s i g n } , 00372 00373 { L " - = " , t t S u b A s s i g n } , 00374 00375 { L " * = " , t t M u l A s s i g n } , 00376 00377 { L " / = " , t t D i v A s s i g n } , 00378 00379 { L " % = " , t t M o d A s s i g n } , 00380 00381 { L " | = " , t t O r A s s i g n } , 00382 00383 { L " & = " , t t A n d A s s i g n } , 00384 00385 { L " ^ = " , t t X o r A s s i g n } , 00386 00387 { L " < < = " , t t S h i f t L e f t A s s i g n } , 00388 00389 { L " > > = " , t t S h i f t R i g h t L A s s i g n } , 00390 00391 { L " > > > = " , t t S h i f t R i g h t A A s s i g n } , 00392 00393 { L " | " , t t B i t O r } , 00394 00395 { L " ~ " , t t B i t N o t } , 00396 00397 { L " ^ " , t t B i t X o r } , 00398 00399 { L " < < " , t t B i t S h i f t L e f t } , 00400 00401 { L " > > " , t t B i t S h i f t R i g h t } , 00402 00403 { L " > > > " , t t B i t S h i f t R i g h t A r i t h } , 00404 00405 { L " ; " , t t E n d S t a t e m e n t } , 00406 00407 { L " , " , t t L i s t S e p a r a t o r } , 00408 00409 { L " { " , t t S t a r t S t a t e m e n t B l o c k } , 00410 00411 { L " } " , t t E n d S t a t e m e n t B l o c k } , 00412 00413 { L " ( " , t t O p e n P a r a n t h e s i s } , 00414 00415 { L " ) " , t t C l o s e P a r a n t h e s i s } , 00416 00417 { L " [ " , t t O p e n B r a c k e t } , 00418 00419 { L " ] " , t t C l o s e B r a c k e t } , 00420 00421 { L " ? " , t t Q u e s t i o n } , 00422 00423 { L " : " , t t C o l o n } , 00424 00425 { L " = = " , t t E q u a l } , 00426 00427 { L " ! = " , t t N o t E q u a l } , 00428 00429 { L " < " , t t L e s s T h a n } , 00430 00431 { L " > " , t t G r e a t e r T h a n } , 00432 00433 { L " < = " , t t L e s s T h a n O r E q u a l } , 00434 00435 { L " > = " , t t G r e a t e r T h a n O r E q u a l } , 00436 00437 { L " + + " , t t I n c } , 00438 00439 { L " - - " , t t D e c } , 00440 00441 { L " & " , t t A m p } , 00442 00443 { L " ! " , t t N o t } , 00444 00445 { L " | | " , t t O r } , 00446 00447 { L " & & " , t t A n d } , 00448 00449 { L " ^ ^ " , t t X o r } , 00450 00451 { L " @ " , t t H a n d l e } , 00452 00453 { L " a n d " , t t A n d } , 00454 00455 # i f d e f A S _ D E P R E C A T E D 00456 00457 { L " b i t s " , t t U I n t } , 00458 00459 { L " b i t s 8 " , t t U I n t 8 } , 00460 00461 { L " b i t s 1 6 " , t t U I n t 1 6 } , 00462 00463 { L " b i t s 3 2 " , t t U I n t } , 00464 00465 # e n d i f 00466 00467 { L " b o o l " , t t B o o l } , 00468 00469 { L " b r e a k " , t t B r e a k } , 00470 00471 { L " c a s t " , t t C a s t } , 00472 00473 { L " c o n s t " , t t C o n s t } , 00474 00475 { L " c o n t i n u e " , t t C o n t i n u e } , 00476 00477 { L " d o " , t t D o } , 00478 00479 # i f d e f A S _ U S E _ D O U B L E _ A S _ F L O A T 00480 00481 { L " d o u b l e " , t t F l o a t } , 00482 00483 # e l s e 00484 00485 { L " d o u b l e " , t t D o u b l e } , 00486 00487 # e n d i f 00488 00489 { L " e l s e " , t t E l s e } , 00490 00491 { L " f a l s e " , t t F a l s e } , 00492 00493 { L " f l o a t " , t t F l o a t } , 00494 00495 { L " f o r " , t t F o r } , 00496 00497 { L " g o t o " , t t G o t o } , 00498 00499 { L " G O T O " , t t G o t o } , 00500 00501 { L " i f " , t t I f } , 00502 00503 { L " i n " , t t I n } , 00504 00505 { L " i n o u t " , t t I n O u t } , 00506 00507 { L " i m p o r t " , t t I m p o r t } , 00508 00509 00510 00511 { L " e n u m " , t t E n u m } , 00512 00513 { L " f u n c " , t t F u n c } , 00514 00515 { L " s t r i n g " , t t S t r i n g } , 00516 00517 00518 00519 { L " i n t " , t t I n t } , 00520 00521 { L " i n t 8 " , t t I n t 8 } , 00522 00523 { L " i n t 1 6 " , t t I n t 1 6 } , 00524 00525 { L " i n t 3 2 " , t t I n t } , 00526 00527 { L " i n t 6 4 " , t t I n t 6 4 } , 00528 00529 { L " i n t e r f a c e " , t t I n t e r f a c e } , 00530 00531 { L " n o t " , t t N o t } , 00532 00533 { L " n u l l " , t t N u l l } , 00534 00535 { L " o r " , t t O r } , 00536 00537 { L " o u t " , t t O u t } , 00538 00539 { L " r e t u r n " , t t R e t u r n } , 00540 00541 { L " t r u e " , t t T r u e } , 00542 00543 { L " v o i d " , t t V o i d } , 00544 00545 { L " w h i l e " , t t W h i l e } , 00546 00547 { L " u i n t " , t t U I n t } , 00548 00549 { L " u i n t 8 " , t t U I n t 8 } , 00550 00551 { L " u i n t 1 6 " , t t U I n t 1 6 } , 00552 00553 { L " u i n t 3 2 " , t t U I n t } , 00554 00555 { L " u i n t 6 4 " , t t U I n t 6 4 } , 00556 00557 { L " s w i t c h " , t t S w i t c h } , 00558 00559 { L " c l a s s " , t t C l a s s } , 00560 00561 { L " c a s e " , t t C a s e } , 00562 00563 { L " C A S E " , t t C a s e } , 00564 00565 { L " d e f a u l t " , t t D e f a u l t } , 00566 00567 { L " x o r " , t t X o r } , 00568 00569 } ; 00570 00571 00572 00573 c o n s t u n s i g n e d i n t n u m T o k e n W o r d s = s i z e o f ( t o k e n W o r d s ) / s i z e o f ( s T o k e n W o r d ) ; 00574 00575 00576 00577 c o n s t w c h a r _ t * c o n s t w h i t e S p a c e = L " \ t \ r \ n \ x F E F F " ; 00578 00579 c o n s t i n t w h i t e S p a c e N u m b e r = 5 ; 00580 00581 } / / n a m e s p a c e a n g l e _ s c r i p t 00582 00583 # e n d i f 00584 00585