├── Tests ├── literal-object.test.es ├── punctuators.test.es ├── identifiers.test.es ├── functions.test.es ├── literals.test.es ├── comments.test.es └── operators.test.es ├── info.plist ├── README.md └── Syntaxes └── ECMAScript.tmLanguage /Tests/literal-object.test.es: -------------------------------------------------------------------------------- 1 | {prop:'value'} 2 | 3 | {"key":"value"} 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /Tests/punctuators.test.es: -------------------------------------------------------------------------------- 1 | { } ( ) [ ] . ; , < > <= >= == != === !== + - * % ++ -- << >> >>> & | ^ ! ~ && || ? : = += -= *= %= <<= >>= >>>= &= |= ^= 2 | -------------------------------------------------------------------------------- /Tests/identifiers.test.es: -------------------------------------------------------------------------------- 1 | break 2 | case 3 | catch 4 | continue 5 | debugger 6 | default 7 | do 8 | else 9 | finally 10 | for 11 | function(){} 12 | if 13 | in 14 | instanceof 15 | return 16 | switch 17 | throw 18 | try 19 | var 20 | while 21 | with 22 | 23 | this 24 | arguments 25 | 26 | new Thing 27 | typeof Thing 28 | void Thing 29 | delete Thing 30 | 31 | class 32 | const 33 | enum 34 | export 35 | extends 36 | import 37 | super 38 | 39 | implements 40 | interface 41 | let 42 | package 43 | private 44 | protected 45 | public 46 | static 47 | yield 48 | -------------------------------------------------------------------------------- /info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | contactEmailRot13 6 | boyvivbhf@fhogyrtenqvrag.pbz 7 | contactName 8 | Thomas Aylott 9 | description 10 | Support for ECMAScript based languages. 11 | name 12 | ECMAScript 13 | uuid 14 | BED4D3F3-F602-4DD0-9A2B-DF8098DD98EE 15 | 16 | 17 | -------------------------------------------------------------------------------- /Tests/functions.test.es: -------------------------------------------------------------------------------- 1 | function(a,b){}; 2 | function named(a,b){}; 3 | 4 | function 5 | // comment 6 | named 7 | // comment 8 | ( 9 | // comment 10 | a 11 | // comment 12 | , 13 | // comment 14 | b 15 | // comment 16 | ) 17 | // comment 18 | { 19 | // comment 20 | return a + b; 21 | // comment 22 | }; 23 | 24 | 25 | var foo = function(a,b){}; 26 | 27 | function foo(arg, arg1){ 28 | var var1 29 | function foo(arg, arg1){ 30 | var var2 31 | function foo(arg, arg1){ 32 | var var3 33 | function foo(arg, arg1){ 34 | var var4 35 | function foo(arg, arg1){ 36 | var var5 37 | } 38 | } 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /Tests/literals.test.es: -------------------------------------------------------------------------------- 1 | null 2 | 3 | true 4 | false 5 | 6 | "string" 7 | "'string'" 8 | "escaped \"quotes\"" 9 | 10 | "string\ 11 | with\ 12 | continuations" 13 | 14 | "string with unescaped newline 15 | // This should not still be part of the string 16 | 17 | 'string' 18 | '"string"' 19 | 'escaped \'quotes\'' 20 | 21 | 'string\ 22 | with\ 23 | continuations' 24 | 25 | 'string with unescaped newline 26 | // This should not still be part of the string 27 | 28 | 'escaped unnecessary: \a \c \d \e \g \h etc...' 29 | 'escaped necessary: \' \" \b \f \n \r \t \v' 30 | "escaped unnecessary: \a \c \d \e \g \h etc..." 31 | "escaped necessary: \' \" \b \f \n \r \t \v" 32 | 'hex \x0a unicode \u000a' 33 | "hex \x0a unicode \u000a" 34 | -------------------------------------------------------------------------------- /Tests/comments.test.es: -------------------------------------------------------------------------------- 1 | function/*comment*/name(a,b){return a+b} 2 | function name/*comment*/(a,b){return a+b} 3 | function name(/*comment*/a,b){return a+b} 4 | function name(a/*comment*/,b){return a+b} 5 | function name(a,/*comment*/b){return a+b} 6 | function name(a,b/*comment*/){return a+b} 7 | function name(a,b)/*comment*/{return a+b} 8 | function name(a,b){/*comment*/return a+b} 9 | function name(a,b){return/*comment*/a+b} 10 | function name(a,b){return a/*comment*/+b} 11 | function name(a,b){return a+/*comment*/b} 12 | function name(a,b){return a+b/*comment*/} 13 | function name(a,b){return a+b}/*comment*/ 14 | 15 | //////////////////////////////////////// 16 | 17 | 18 | function// comment 19 | name(a,b){return a+b} 20 | 21 | function name// comment 22 | (a,b){return a+b} 23 | 24 | function name(// comment 25 | a,b){return a+b} 26 | 27 | function name(a// comment 28 | ,b){return a+b} 29 | 30 | function name(a,// comment 31 | b){return a+b} 32 | 33 | function name(a,b// comment 34 | ){return a+b} 35 | 36 | function name(a,b)// comment 37 | {return a+b} 38 | 39 | function name(a,b){// comment 40 | return a+b} 41 | 42 | function name(a,b){return a// comment 43 | +b} 44 | 45 | function name(a,b){return a+// comment 46 | b} 47 | 48 | function name(a,b){return a+b// comment 49 | } 50 | 51 | function name(a,b){return a+b}// comment 52 | -------------------------------------------------------------------------------- /Tests/operators.test.es: -------------------------------------------------------------------------------- 1 | typeof variableName ; // 2 | delete variableName ; // 3 | void variableName ; // 4 | new variableName ; // 5 | new variableName() ; // 6 | variableName() ; // 7 | variableName[0] ; // 8 | a + variableName ; // Arithmetic 9 | a - variableName ; // Arithmetic 10 | a * variableName ; // Arithmetic 11 | a / variableName ; // Arithmetic 12 | a % variableName ; // Arithmetic 13 | ++ variableName ; // Assignment Arithmetic Unary 14 | variableName ++ ; // Assignment Arithmetic Unary 15 | -- variableName ; // Assignment Arithmetic Unary 16 | variableName -- ; // Assignment Arithmetic Unary 17 | -variableName ; // Arithmetic Unary 18 | +variableName ; // Arithmetic Unary 19 | a = variableName ; // Assignment 20 | a += variableName ; // Assignment Arithmetic 21 | a -= variableName ; // Assignment Arithmetic 22 | a *= variableName ; // Assignment Arithmetic 23 | a /= variableName ; // Assignment Arithmetic 24 | a %= variableName ; // Assignment Arithmetic 25 | a >>= variableName ; // Assignment Arithmetic 26 | a <<= variableName ; // Assignment Arithmetic 27 | a >>>= variableName ; // Assignment Arithmetic 28 | a &= variableName ; // Assignment Arithmetic 29 | a |= variableName ; // Assignment Arithmetic 30 | a ^= variableName ; // Assignment Arithmetic 31 | a & variableName ; // Bitwise 32 | a | variableName ; // Bitwise 33 | a ^ variableName ; // Bitwise 34 | ~ variableName ; // Bitwise Unary 35 | a << variableName ; // Bitwise 36 | a >> variableName ; // Bitwise 37 | a >>> variableName ; // Bitwise 38 | a == variableName ; // Comparison 39 | a != variableName ; // Comparison 40 | a === variableName ; // Comparison 41 | a !== variableName ; // Comparison 42 | a > variableName ; // Comparison 43 | a >= variableName ; // Comparison 44 | a => variableName ; // Invalid 45 | a < variableName ; // Comparison 46 | a <= variableName ; // Comparison 47 | a && variableName ; // Logical 48 | a || variableName ; // Logical 49 | ! variableName ; // Logical Unary 50 | var variableName ; // Assignment 51 | var variableName = a ; // Assignment 52 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Identifier 2 | Literal 3 | Program 4 | SwitchCase 5 | CatchClause 6 | 7 | Declaration Function 8 | Declaration Variable 9 | 10 | Expression Array 11 | Expression Assignment 12 | Expression Binary 13 | Expression Call 14 | Expression Conditional 15 | Expression Function 16 | Expression Logical 17 | Expression Member 18 | Expression New 19 | Expression Object 20 | Expression Sequence 21 | Expression This 22 | Expression Unary 23 | Expression Update 24 | 25 | Statement Block 26 | Statement Break 27 | Statement Continue 28 | Statement Debugger 29 | Statement DoWhile 30 | Statement Empty 31 | Statement Expression 32 | Statement For 33 | Statement ForIn 34 | Statement If 35 | Statement Labeled 36 | Statement Return 37 | Statement Switch 38 | Statement Throw 39 | Statement Try 40 | Statement While 41 | Statement With 42 | 43 | # ECMA-262 5th edition 44 | 45 | 7.2 White Space 46 | 7.3 Line Terminators 47 | 7.4 Comments 48 | 7.6 Identifier Names and Identifiers 49 | 7.6.1.1 Keywords 50 | 7.6.1.2 Future Reserved Words 51 | 7.7 Punctuators 52 | 7.8.1 Null Literals 53 | 7.8.2 Boolean Literals 54 | 7.8.3 Numeric Literals 55 | 7.8.4 String Literals 56 | 11.1 Primary Expressions 57 | 11.1.4 Array Initialiser 58 | 11.1.5 Object Initialiser 59 | 11.10 Binary Bitwise Operators 60 | 11.11 Binary Logical Operators 61 | 11.12 Conditional Operator 62 | 11.13 Assignment Operators 63 | 11.14 Comma Operator 64 | 11.2 Left-Hand-Side Expressions 65 | 11.3 Postfix Expressions 66 | 11.4 Unary Operators 67 | 11.5 Multiplicative Operators 68 | 11.6 Additive Operators 69 | 11.7 Bitwise Shift Operators 70 | 11.8 Relational Operators 71 | 11.9 Equality Operators 72 | 73 | ## 12 Statements 74 | 75 | 12.1 Block 76 | 12.10 The swith statement 77 | 12.10 The with statement 78 | 12.12 Labelled Statements 79 | 12.13 The throw statement 80 | 12.14 The try statement 81 | 12.15 The debugger statement 82 | 12.2 Variable Statement 83 | 12.3 Empty Statement 84 | 12.4 Expression Statement 85 | 12.5 If statement 86 | 12.6 Iteration Statements 87 | 12.7 The continue statement 88 | 12.8 The break statement 89 | 12.9 The return statement 90 | 13 Function Definition 91 | 92 | ## 14 Program 93 | 94 | 95 | ## Keywords 96 | 97 | break 98 | case 99 | catch 100 | continue 101 | debugger 102 | default 103 | delete 104 | do 105 | else 106 | finally 107 | for 108 | function 109 | if 110 | in 111 | instanceof 112 | new 113 | return 114 | switch 115 | this 116 | throw 117 | try 118 | typeof 119 | var 120 | void 121 | while 122 | with 123 | 124 | \b(switch|new|c(ontinue|a(se|tch))|t(h(is|row)|ypeof|ry)|i(n(stanceof)?|f)|d(o|e(fault|lete|bugger))|else|v(oid|ar)|f(inally|or|unction)|w(hile|ith)|return|break)\b 125 | 126 | ## Future reserved words 127 | 128 | class 129 | const 130 | enum 131 | export 132 | extends 133 | import 134 | super 135 | 136 | \b(super|c(onst|lass)|import|e(num|x(tends|port)))\b 137 | 138 | ## strict mode 139 | 140 | implements 141 | interface 142 | let 143 | package 144 | private 145 | protected 146 | public 147 | static 148 | yield 149 | 150 | \b(static|yield|i(nterface|mplements)|p(ublic|ackage|r(ivate|otected))|let)\b 151 | 152 | 153 | ## Punctuators 154 | 155 | { } ( ) [ ] . ; , < > <= >= == != === !== + - * % ++ -- << >> >>> & | ^ ! ~ && || ? : = += -= *= %= <<= >>= >>>= &= |= ^= 156 | 157 | -------------------------------------------------------------------------------- /Syntaxes/ECMAScript.tmLanguage: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | comment 6 | ECMAScript 5.1 http://es5.github.com/ http://www.ecmascript.org/ 7 | fileTypes 8 | 9 | es 10 | 11 | foldingStartMarker 12 | /\*\*|\{\s*$ 13 | foldingStopMarker 14 | \*\*/|^\s*\} 15 | keyEquivalent 16 | ^~E 17 | name 18 | ECMAScript 19 | patterns 20 | 21 | 22 | include 23 | #program 24 | 25 | 26 | repository 27 | 28 | block 29 | 30 | begin 31 | { 32 | beginCaptures 33 | 34 | 0 35 | 36 | name 37 | punctuation.section.group.begin.es 38 | 39 | 40 | comment 41 | 12.1 Block http://es5.github.com/#x12.1 42 | contentName 43 | meta.block.es 44 | end 45 | } 46 | endCaptures 47 | 48 | 0 49 | 50 | name 51 | punctuation.section.group.end.es 52 | 53 | 54 | patterns 55 | 56 | 57 | include 58 | #program 59 | 60 | 61 | 62 | comments 63 | 64 | comment 65 | 7.4 Comments http://es5.github.com/#x7.4 66 | patterns 67 | 68 | 69 | begin 70 | /\* 71 | beginCaptures 72 | 73 | 0 74 | 75 | name 76 | punctuation.definition.comment.begin.es.ecmascript 77 | 78 | 79 | end 80 | \*/ 81 | endCaptures 82 | 83 | 0 84 | 85 | name 86 | punctuation.definition.comment.end.es.ecmascript 87 | 88 | 89 | name 90 | comment.block.es.ecmascript 91 | 92 | 93 | begin 94 | // 95 | beginCaptures 96 | 97 | 0 98 | 99 | name 100 | punctuation.definition.comment.es.ecmascript 101 | 102 | 103 | end 104 | $ 105 | name 106 | comment.line.double-slash.es.ecmascript 107 | 108 | 109 | 110 | expression-left-hand-side 111 | 112 | comment 113 | 11.2 Left-Hand-Side Expressions http://es5.github.com/#x11.2 114 | 115 | expression-primary 116 | 117 | comment 118 | 11.1 Primary Expressions http://es5.github.com/#x11.1 119 | 120 | expression-statement 121 | 122 | comment 123 | 12.4 Expression Statement http://es5.github.com/#x12.4 124 | 125 | function-definition 126 | 127 | begin 128 | \b(function)\b(?:\s+\b(?i)([_$a-z][_$a-z0-9]*)\b)? 129 | beginCaptures 130 | 131 | 1 132 | 133 | name 134 | keyword.control.def.es 135 | 136 | 2 137 | 138 | name 139 | entity.name.function.$1.es 140 | 141 | 142 | comment 143 | 13 Function Definition http://es5.github.com/#x13 144 | end 145 | (?<=}) 146 | name 147 | meta.$1.${2:-unnamed} 148 | patterns 149 | 150 | 151 | begin 152 | \G 153 | end 154 | (?<=\)) 155 | patterns 156 | 157 | 158 | begin 159 | \G(?!\() 160 | comment 161 | function name 162 | end 163 | (?=\() 164 | patterns 165 | 166 | 167 | include 168 | #comments 169 | 170 | 171 | match 172 | \b(?i)[_$a-z][_$a-z0-9]*\b 173 | name 174 | entity.name.function.$1.es 175 | 176 | 177 | 178 | 179 | begin 180 | \( 181 | beginCaptures 182 | 183 | 0 184 | 185 | name 186 | punctuation.definition.parameters.begin.function.es 187 | 188 | 189 | comment 190 | function parameters 191 | contentName 192 | meta.function.parameters 193 | end 194 | \) 195 | endCaptures 196 | 197 | 0 198 | 199 | name 200 | punctuation.definition.parameters.end.function.es 201 | 202 | 203 | name 204 | meta.function.parameters 205 | patterns 206 | 207 | 208 | include 209 | #comments 210 | 211 | 212 | match 213 | \b(?i)[_$a-z][_$a-z0-9]*\b 214 | name 215 | variable.parameter.function.es 216 | 217 | 218 | match 219 | , 220 | name 221 | punctuation.separator.parameters.function.es 222 | 223 | 224 | 225 | 226 | 227 | 228 | include 229 | #comments 230 | 231 | 232 | begin 233 | { 234 | beginCaptures 235 | 236 | 0 237 | 238 | name 239 | punctuation.definition.function.begin.es 240 | 241 | 242 | comment 243 | function body 244 | contentName 245 | meta.function.body 246 | end 247 | } 248 | endCaptures 249 | 250 | 0 251 | 252 | name 253 | punctuation.definition.function.end.es 254 | 255 | 256 | patterns 257 | 258 | 259 | include 260 | #program 261 | 262 | 263 | 264 | 265 | 266 | identifiers 267 | 268 | comment 269 | 7.6 Identifier Names and Identifiers http://es5.github.com/#x7.6 270 | patterns 271 | 272 | 273 | include 274 | #identifiers-keywords 275 | 276 | 277 | include 278 | #identifiers-future-reserved-words 279 | 280 | 281 | include 282 | #identifiers-future-reserved-words-strict 283 | 284 | 285 | 286 | identifiers-future-reserved-words 287 | 288 | comment 289 | 7.6.1.2a Future Reserved Words http://es5.github.com/#x7.6.1.2 290 | match 291 | \b(super|c(onst|lass)|import|e(num|x(tends|port)))\b 292 | name 293 | invalid.illegal.reserved.keyword.$1.es.ecmascript 294 | 295 | identifiers-future-reserved-words-strict 296 | 297 | comment 298 | 7.6.1.2b Future Reserved Words http://es5.github.com/#x7.6.1.2 299 | match 300 | \b(static|yield|i(nterface|mplements)|p(ublic|ackage|r(ivate|otected))|let)\b 301 | name 302 | invalid.illegal.reserved.keyword.$1.es.ecmascript.strict 303 | 304 | identifiers-keywords 305 | 306 | comment 307 | 7.6.1.1 Keywords http://es5.github.com/#x7.6.1.1 308 | match 309 | \b(switch|new|c(ontinue|a(se|tch))|t(h(is|row)|ypeof|ry)|i(n(stanceof)?|f)|d(o|e(fault|lete|bugger))|else|v(oid|ar)|f(inally|or|unction)|w(hile|ith)|return|break)\b 310 | name 311 | keyword.other.$1.es.ecmascript 312 | 313 | initialiser-array 314 | 315 | comment 316 | 11.1.4 Array Initialiser http://es5.github.com/#x11.1.4 317 | 318 | initialiser-object 319 | 320 | comment 321 | 11.1.5 Object Initialiser http://es5.github.com/#x11.1.5 322 | 323 | line-terminators 324 | 325 | comment 326 | 7.3 Line Terminators http://es5.github.com/#x7.3 327 | 328 | literal-numeric 329 | 330 | comment 331 | 7.8.3 Numeric Literals http://es5.github.com/#x7.8.3 332 | 333 | literal-string 334 | 335 | comment 336 | 7.8.4 String Literals http://es5.github.com/#x7.8.4 337 | patterns 338 | 339 | 340 | begin 341 | " 342 | beginCaptures 343 | 344 | 0 345 | 346 | name 347 | punctuation.definition.string.begin.es 348 | 349 | 350 | end 351 | "|(\n) 352 | endCaptures 353 | 354 | 0 355 | 356 | name 357 | punctuation.definition.string.end.es 358 | 359 | 1 360 | 361 | name 362 | invalid.illegal.character.newline.es 363 | 364 | 365 | name 366 | string.quoted.double.es 367 | patterns 368 | 369 | 370 | include 371 | #string-escape 372 | 373 | 374 | 375 | 376 | begin 377 | ' 378 | beginCaptures 379 | 380 | 0 381 | 382 | name 383 | punctuation.definition.string.begin.es 384 | 385 | 386 | end 387 | '|(\n) 388 | endCaptures 389 | 390 | 0 391 | 392 | name 393 | punctuation.definition.string.begin.es 394 | 395 | 1 396 | 397 | name 398 | invalid.illegal.character.newline.es 399 | 400 | 401 | name 402 | string.quoted.single.es 403 | patterns 404 | 405 | 406 | include 407 | #string-escape 408 | 409 | 410 | 411 | 412 | repository 413 | 414 | string-escape 415 | 416 | patterns 417 | 418 | 419 | match 420 | (?i)\\u[0-9A-F]{4} 421 | name 422 | constant.character.escape.unicode.es 423 | 424 | 425 | match 426 | (?i)\\x[0-9A-F]{2} 427 | name 428 | constant.character.escape.hex.es 429 | 430 | 431 | match 432 | \\" 433 | name 434 | constant.character.escape.quote.double.newline.es 435 | 436 | 437 | match 438 | \\' 439 | name 440 | constant.character.escape.quote.single.newline.es 441 | 442 | 443 | match 444 | (?i)\\\n 445 | name 446 | punctuation.separator.continuation.string.es 447 | 448 | 449 | match 450 | (?i)\\['"\\bfnrtv] 451 | name 452 | constant.character.escape.es 453 | 454 | 455 | captures 456 | 457 | 0 458 | 459 | name 460 | invalid.deprecated.unnecessary.escape.es 461 | 462 | 463 | match 464 | \\. 465 | name 466 | constant.character.escape.es 467 | 468 | 469 | 470 | 471 | 472 | literals 473 | 474 | comment 475 | 7.8 Literals http://es5.github.com/#x7.8 476 | patterns 477 | 478 | 479 | comment 480 | 7.8.1 Null Literals http://es5.github.com/#x7.8.1 481 | match 482 | \bnull\b 483 | name 484 | constant.language.null.es 485 | 486 | 487 | comment 488 | 7.8.2 Boolean Literals http://es5.github.com/#x7.8.2 489 | match 490 | \b(true|false)\b 491 | name 492 | constant.language.boolean.$1.es 493 | 494 | 495 | include 496 | #literal-numeric 497 | 498 | 499 | include 500 | #literal-string 501 | 502 | 503 | 504 | operator 505 | 506 | comment 507 | 11 Operators http://es5.github.com/#x11 508 | patterns 509 | 510 | 511 | comment 512 | 10.6 Arguments Object http://es5.github.com/#x10.6 513 | match 514 | \barguments\b 515 | name 516 | variable.language.arguments.es 517 | 518 | 519 | comment 520 | 11.1.1 The this Keyword http://es5.github.com/#x11.1.1 521 | match 522 | \bthis\b 523 | name 524 | variable.language.this.es 525 | 526 | 527 | comment 528 | 11.2.2 The new Operator http://es5.github.com/#x11.2.2 529 | match 530 | \bnew\b 531 | name 532 | keyword.operator.new.es 533 | 534 | 535 | captures 536 | 537 | 1 538 | 539 | name 540 | keyword.operator.assignment.arithmetic.postfix.es 541 | 542 | 543 | comment 544 | 11.3 Postfix Expressions http://es5.github.com/#x11.3 545 | match 546 | \b\s*(\+\+|--) 547 | 548 | 549 | comment 550 | 11.9 Equality Operators http://es5.github.com/#x11.9 551 | patterns 552 | 553 | 554 | match 555 | !==|!=|===|== 556 | name 557 | keyword.operator.equality.es 558 | 559 | 560 | 561 | 562 | comment 563 | 11.13 Assignment Operators http://es5.github.com/#x11.13 564 | patterns 565 | 566 | 567 | match 568 | [-+*/%]= 569 | name 570 | keyword.operator.assignment.arithmetic.es 571 | 572 | 573 | match 574 | (>>>|>>|<<|[&^|])= 575 | name 576 | keyword.operator.assignment.bitwise.es 577 | 578 | 579 | 580 | 581 | comment 582 | 11.4 Unary Operators http://es5.github.com/#x11.4 583 | patterns 584 | 585 | 586 | match 587 | \b(delete|void|typeof)\b 588 | name 589 | keyword.operator.$1.unary.es 590 | 591 | 592 | match 593 | (\+\+|--) 594 | name 595 | keyword.operator.assignment.arithmetic.prefix.unary.es 596 | 597 | 598 | match 599 | [-+~](?!\s) 600 | name 601 | keyword.operator.unary.es 602 | 603 | 604 | match 605 | ! 606 | name 607 | keyword.operator.logical.not.unary.es 608 | 609 | 610 | match 611 | ~ 612 | name 613 | keyword.operator.bitwise.not.unary.es 614 | 615 | 616 | 617 | 618 | comment 619 | 11.5 Multiplicative Operators http://es5.github.com/#x11.5 620 | match 621 | [*/%] 622 | name 623 | keyword.operator.arithmetic.multiplicative.es 624 | 625 | 626 | comment 627 | 11.6 Additive Operators http://es5.github.com/#x11.6 628 | match 629 | [-+] 630 | name 631 | keyword.operator.arithmetic.additive.es 632 | 633 | 634 | comment 635 | 11.7 Bitwise Shift Operators http://es5.github.com/#x11.7 636 | match 637 | >>>|>>|<< 638 | name 639 | keyword.operator.bitwise.shift.es 640 | 641 | 642 | comment 643 | 11.10 Binary Bitwise Operators http://es5.github.com/#x11.10 644 | match 645 | [&^|] 646 | name 647 | keyword.operator.bitwise.binary.es 648 | 649 | 650 | comment 651 | 11.11 Binary Logical Operators http://es5.github.com/#x11.11 652 | match 653 | 654 | name 655 | keyword.operator.logical.binary.es 656 | 657 | 658 | comment 659 | 11.12 Conditional Operator http://es5.github.com/#x11.12 660 | match 661 | 662 | name 663 | keyword.operator.conditional.es 664 | 665 | 666 | comment 667 | 11.8 Relational Operators http://es5.github.com/#x11.8 668 | patterns 669 | 670 | 671 | match 672 | \b(instanceof|in)\b 673 | name 674 | keyword.operator.comparison.$1.es 675 | 676 | 677 | match 678 | >=|<=|>|< 679 | name 680 | keyword.operator.comparison.es 681 | 682 | 683 | match 684 | =>|=< 685 | name 686 | invalid.illegal.operator.comparison.es 687 | 688 | 689 | 690 | 691 | comment 692 | 11.13 Assignment Operators http://es5.github.com/#x11.13 693 | patterns 694 | 695 | 696 | match 697 | = 698 | name 699 | keyword.operator.assignment.simple.es 700 | 701 | 702 | 703 | 704 | 705 | program 706 | 707 | patterns 708 | 709 | 710 | include 711 | #function-definition 712 | 713 | 714 | include 715 | #comments 716 | 717 | 718 | include 719 | #operator 720 | 721 | 722 | include 723 | #identifiers 724 | 725 | 726 | include 727 | #literals 728 | 729 | 730 | include 731 | #block 732 | 733 | 734 | comment 735 | Not sure where else to put this, yet 736 | patterns 737 | 738 | 739 | match 740 | ; 741 | name 742 | punctuation.terminator.statement.es 743 | 744 | 745 | 746 | 747 | 748 | punctuators 749 | 750 | comment 751 | 7.7 Punctuators http://es5.github.com/#x7.7 752 | 753 | statement 754 | 755 | comment 756 | 12 Statements http://es5.github.com/#x12 757 | 758 | statement-break 759 | 760 | comment 761 | 12.8 The Break Statement http://es5.github.com/#x12.8 762 | 763 | statement-continue 764 | 765 | comment 766 | 12.7 The Continue Statement http://es5.github.com/#x12.7 767 | 768 | statement-debugger 769 | 770 | comment 771 | 12.15 The Debugger Statement http://es5.github.com/#x12.15 772 | 773 | statement-empty 774 | 775 | comment 776 | 12.3 Empty Statement http://es5.github.com/#x12.3 777 | 778 | statement-if 779 | 780 | comment 781 | 12.5 If Statement http://es5.github.com/#x12.5 782 | 783 | statement-iteration 784 | 785 | comment 786 | 12.6 Iteration Statements http://es5.github.com/#x12.6 787 | 788 | statement-labelled 789 | 790 | comment 791 | 12.12 Labelled Statements http://es5.github.com/#x12.12 792 | 793 | statement-return 794 | 795 | comment 796 | 12.9 The Return Statement http://es5.github.com/#x12.9 797 | 798 | statement-throw 799 | 800 | comment 801 | 12.13 The Throw Statement http://es5.github.com/#x12.13 802 | 803 | statement-try 804 | 805 | comment 806 | 12.14 The try Statement http://es5.github.com/#x12.14 807 | 808 | statement-variable 809 | 810 | comment 811 | 12.2 Variable Statement http://es5.github.com/#x12.2 812 | 813 | statement-with 814 | 815 | comment 816 | 12.10 The With Statement http://es5.github.com/#x12.10 817 | 818 | white-space 819 | 820 | comment 821 | 7.2 White Space http://es5.github.com/#x7.2 822 | 823 | 824 | scopeName 825 | source.es 826 | uuid 827 | 5FCE9A79-8A9C-4903-9ACE-192EC5DC269F 828 | 829 | 830 | --------------------------------------------------------------------------------