Support for parsing the compatible version
In the .PackageInfo the compatible version for a resolvable can optionally be given after the resolvable version via "'compat[ible]' '>=' <version>".
This commit is contained in:
parent
22e1ec0e30
commit
2db69df113
@ -558,6 +558,7 @@ BPackageInfo::Parser::_ParseResolvableList(
|
||||
}
|
||||
}
|
||||
|
||||
// parse version
|
||||
BPackageVersion version;
|
||||
Token op = parser._NextToken();
|
||||
if (op.type == TOKEN_OPERATOR_ASSIGN)
|
||||
@ -567,7 +568,22 @@ BPackageInfo::Parser::_ParseResolvableList(
|
||||
else
|
||||
throw ParseError("expected '=', comma or ']'", op.pos);
|
||||
|
||||
value->AddItem(new BPackageResolvable(token.text, type, version));
|
||||
// parse compatible version
|
||||
BPackageVersion compatibleVersion;
|
||||
Token compatible = parser._NextToken();
|
||||
if (compatible.type == TOKEN_WORD
|
||||
&& (compatible.text == "compat"
|
||||
|| compatible.text == "compatible")) {
|
||||
op = parser._NextToken();
|
||||
if (op.type == TOKEN_OPERATOR_GREATER_EQUAL) {
|
||||
parser._ParseVersionValue(&compatibleVersion, true);
|
||||
} else
|
||||
parser._RewindTo(compatible);
|
||||
} else
|
||||
parser._RewindTo(compatible);
|
||||
|
||||
value->AddItem(new BPackageResolvable(token.text, type, version,
|
||||
compatibleVersion));
|
||||
}
|
||||
} resolvableParser(*this, value);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user