Index: compiler/java/com/google/dart/compiler/parser/DartScanner.java |
diff --git a/compiler/java/com/google/dart/compiler/parser/DartScanner.java b/compiler/java/com/google/dart/compiler/parser/DartScanner.java |
index 84a75a5fe62e210273335093b98de624c8ae7c06..38024deabc4ab7c02a9422c2edc2330bd6c94d07 100644 |
--- a/compiler/java/com/google/dart/compiler/parser/DartScanner.java |
+++ b/compiler/java/com/google/dart/compiler/parser/DartScanner.java |
@@ -1382,15 +1382,22 @@ public class DartScanner { |
int start = currPos.pos - 1; |
int line = currPos.line; |
int col = currPos.col; |
+ int commentDepth = 1; |
advance(); |
while (!isEos()) { |
int first = lookahead(0); |
advance(); |
if (first == '*' && is('/')) { |
- Token result = select(Token.COMMENT); |
- int stop = internalState.lookaheadPos[0].pos; |
- commentLocation(start, stop, line, internalState.lookaheadPos[0].line, col); |
- return result; |
+ if(--commentDepth == 0) { |
+ Token result = select(Token.COMMENT); |
+ int stop = internalState.lookaheadPos[0].pos; |
+ commentLocation(start, stop, line, internalState.lookaheadPos[0].line, col); |
+ return result; |
+ } |
+ advance(); |
+ } else if (first == '/' && is('*')) { |
+ commentDepth++; |
+ advance(); |
} |
} |
int stop = internalState.lookaheadPos[0].pos; |