mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Emmet: support quantifiers after groups
This commit is contained in:
@@ -73,11 +73,11 @@ public abstract class EmmetParser {
|
||||
|
||||
@Nullable
|
||||
protected ZenCodingNode parseAddOrMore() {
|
||||
ZenCodingNode mul = parseMul();
|
||||
ZenCodingNode mul = parseMul(parseExpression());
|
||||
|
||||
ZenCodingToken operationToken = getToken();
|
||||
if (operationToken == ZenCodingTokens.OPENING_R_BRACKET) {
|
||||
mul = new MoreOperationNode(notNullNode(mul), notNullNode(parseExpression()));
|
||||
mul = parseMul(new MoreOperationNode(notNullNode(mul), notNullNode(parseExpression())));
|
||||
operationToken = getToken();
|
||||
}
|
||||
if (!(operationToken instanceof OperationToken)) {
|
||||
@@ -131,25 +131,18 @@ public abstract class EmmetParser {
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private ZenCodingNode parseMul() {
|
||||
ZenCodingNode exp = parseExpression();
|
||||
if (exp == null) {
|
||||
return null;
|
||||
}
|
||||
private ZenCodingNode parseMul(@Nullable ZenCodingNode expression) {
|
||||
ZenCodingToken operationToken = getToken();
|
||||
if (!(operationToken instanceof OperationToken)) {
|
||||
return exp;
|
||||
}
|
||||
if (((OperationToken)operationToken).getSign() != '*') {
|
||||
return exp;
|
||||
}
|
||||
advance();
|
||||
ZenCodingToken numberToken = getToken();
|
||||
if (numberToken instanceof NumberToken) {
|
||||
if (expression != null && operationToken instanceof OperationToken && ((OperationToken)operationToken).getSign() == '*') {
|
||||
advance();
|
||||
return new MulOperationNode(exp, ((NumberToken)numberToken).getNumber());
|
||||
ZenCodingToken numberToken = getToken();
|
||||
if (numberToken instanceof NumberToken) {
|
||||
advance();
|
||||
return new MulOperationNode(expression, ((NumberToken)numberToken).getNumber());
|
||||
}
|
||||
return new UnaryMulOperationNode(expression);
|
||||
}
|
||||
return new UnaryMulOperationNode(exp);
|
||||
return expression;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
|
||||
Reference in New Issue
Block a user