| Index: frog/tokenizer.dart
|
| diff --git a/frog/tokenizer.dart b/frog/tokenizer.dart
|
| index da7338438ff831420ac1bbc7e9ee807c6d723337..2cfdec6bf4fac2ea52f2858c3f9f99947f8aa3be 100644
|
| --- a/frog/tokenizer.dart
|
| +++ b/frog/tokenizer.dart
|
| @@ -379,17 +379,28 @@ class TokenizerBase extends TokenizerHelpers {
|
| }
|
| }
|
|
|
| - Token finishIdentifier() {
|
| - while (_index < _text.length) {
|
| - if (!isIdentifierPart(_text.charCodeAt(_index++))) {
|
| - _index--;
|
| - break;
|
| - }
|
| - }
|
| - int kind = getIdentifierKind();
|
| + Token finishIdentifier(int ch) {
|
| if (_interpStack != null && _interpStack.depth == -1) {
|
| _interpStack.depth = 0;
|
| + if (ch == 36/*$*/) {
|
| + // illegal character after $ in string interpolation
|
| + return _errorToken();
|
| + }
|
| + while (_index < _text.length) {
|
| + if (!isInterpIdentifierPart(_text.charCodeAt(_index++))) {
|
| + _index--;
|
| + break;
|
| + }
|
| + }
|
| + } else {
|
| + while (_index < _text.length) {
|
| + if (!isIdentifierPart(_text.charCodeAt(_index++))) {
|
| + _index--;
|
| + break;
|
| + }
|
| + }
|
| }
|
| + int kind = getIdentifierKind();
|
| if (kind == TokenKind.IDENTIFIER) {
|
| return _finishToken(TokenKind.IDENTIFIER);
|
| } else {
|
|
|