mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
count braces while waiting for }
This commit is contained in:
+3
-3
@@ -48,11 +48,11 @@ public class OpenOrClosableBlock implements GroovyElementTypes {
|
||||
builder.advanceLexer();
|
||||
ParserUtils.getToken(builder, mNLS);
|
||||
parser.parseBlockBody(builder);
|
||||
while (!builder.eof() &&
|
||||
!mRCURLY.equals(builder.getTokenType())) {
|
||||
if (!builder.eof() && builder.getTokenType() != mRCURLY) {
|
||||
builder.error(GroovyBundle.message("expression.expected"));
|
||||
builder.advanceLexer();
|
||||
ParserUtils.skipCountingBraces(builder, GroovyParser.RCURLY_ONLY);
|
||||
}
|
||||
|
||||
ParserUtils.getToken(builder, mRCURLY, GroovyBundle.message("rcurly.expected"));
|
||||
marker.done(OPEN_BLOCK);
|
||||
}
|
||||
|
||||
-32
@@ -119,38 +119,6 @@ public abstract class ParserUtils {
|
||||
return i == elems.length;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks, that following element sequence is like given
|
||||
*
|
||||
* @param builder Given PsiBuilder
|
||||
* @param dropMarker to drop marker after successful checking or rollback it?
|
||||
* @param elems Array of need elements in order
|
||||
* @return true if following sequence is like a given
|
||||
*/
|
||||
public static boolean lookAhead(PsiBuilder builder, boolean dropMarker, IElementType... elems) {
|
||||
|
||||
if (elems.length == 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (elems.length == 1) {
|
||||
return elems[0].equals(builder.getTokenType());
|
||||
}
|
||||
|
||||
PsiBuilder.Marker rb = builder.mark();
|
||||
int i = 0;
|
||||
while (!builder.eof() && i < elems.length && elems[i].equals(builder.getTokenType())) {
|
||||
builder.advanceLexer();
|
||||
i++;
|
||||
}
|
||||
if (dropMarker && i == elems.length) {
|
||||
rb.drop();
|
||||
} else {
|
||||
rb.rollbackTo();
|
||||
}
|
||||
return i == elems.length;
|
||||
}
|
||||
|
||||
/**
|
||||
* Wraps current token to node with specified element type
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user