diff --git a/lib/scanner.js b/lib/scanner.js index 2fdd5ed..cac155a 100644 --- a/lib/scanner.js +++ b/lib/scanner.js @@ -156,6 +156,21 @@ var AS3Scanner = (function () { AS3Scanner.prototype.scanRegExp = function () { var currentIndex = this.index; var token = this.scanUntilDelimiter('/'); + var peekPos = 1; + var flagBuffer = ''; + for (;;) { + var currentCharacter = this.peekChar(peekPos++); + if (/[a-z]/.test(currentCharacter)) { + flagBuffer += currentCharacter; + } + else { + break; + } + } + if (flagBuffer.length) { + token.text += flagBuffer; + this.index += flagBuffer.length; + } if (token != null && this.isValidRegExp(token.text)) { return token; } diff --git a/src/main/scanner.ts b/src/main/scanner.ts index 409a0ef..d7930e6 100644 --- a/src/main/scanner.ts +++ b/src/main/scanner.ts @@ -162,6 +162,20 @@ class AS3Scanner { public scanRegExp(): Token { var currentIndex = this.index; var token: Token = this.scanUntilDelimiter('/'); + var peekPos = 1; + var flagBuffer = ''; + for (;;) { + var currentCharacter: string = this.peekChar(peekPos++); + if (/[a-z]/.test(currentCharacter)) { + flagBuffer += currentCharacter; + } else { + break; + } + } + if (flagBuffer.length) { + token.text += flagBuffer; + this.index += flagBuffer.length + } if (token != null && this.isValidRegExp(token.text)) { return token; } else {