module lang::php::analysis::composer::VersionSyntax
rascal-0.42.0
org.rascalmpl.php-analysis-0.3.3
Usage
import lang::php::analysis::composer::VersionSyntax;
Dependencies
import ParseTree;
import Exception;
syntax MyLayout
layout MyLayout = [\t\n\ \r\f]*;
syntax ExactVersionConstraint
lexical ExactVersionConstraint
= justMajor: [v]? [0-9]+ major !>> [0-9.\-]
| majorMinor: [v]? [0-9]+ major "." [0-9]+ minor !>> [0-9.\-]
| majorMinorPatch: [v]? [0-9]+ major "." [0-9]+ minor "." [0-9]+ patch !>> [0-9\-]
| majorWithPreRelease: [v]? [0-9]+ major "-" { StabilityId "." }+ ids
| majorMinorWithPreRelease: [v]? [0-9]+ major "." [0-9]+ minor "-"{ StabilityId "." }+ ids
| majorMinorPatchWithPreRelease: [v]? [0-9]+ major "." [0-9]+ minor "." [0-9]+ patch "-" { StabilityId "." }+ ids
;
syntax StabilityId
lexical StabilityId
= stabilityId: [0-9A-Za-z\-]+ !>> [0-9A-Za-z\-]
;
syntax WildcardConstraint
lexical WildcardConstraint
= wildcardForMajor: "*" !>> [.*]
| wildcardForMinor: [v]? [0-9]+ major "." "*" !>> [.*]
| wildcardForPatch: [v]? [0-9]+ major "." [0-9]+ minor "." "*"
;
syntax BranchConstraint
lexical BranchConstraint
= branchPrefix: "dev-" [0-9A-Za-z\-]+ !>> [0-9A-Za-z\-]
| branchSuffix: [0-9A-Za-z\-.]+ ".x-dev" !>> [0-9A-Za-z\-.]
;
syntax TildeConstraint
lexical TildeConstraint
= tildeWithExact: "~" ExactVersionConstraint !>> [0-9.\-]
;
syntax CaratConstraint
lexical CaratConstraint
= caratWithExact: "^" ExactVersionConstraint !>> [0-9.\-]
;
syntax VersionRangeConstraint
syntax VersionRangeConstraint
= greaterThan: "\>" ExactVersionConstraint constraint !>> [0-9.\-]
| greaterThanOrEqual: "\>=" ExactVersionConstraint constraint !>> [0-9.\-]
| lessThan: "\<" ExactVersionConstraint constraint !>> [0-9.\-]
| lessThanOrEqual: "\<=" ExactVersionConstraint constraint !>> [0-9.\-]
| notEqual: "!=" ExactVersionConstraint constraint !>> [0-9.\-]
| wildcardConstraint: WildcardConstraint
| tildeConstraint: TildeConstraint
| caratConstraint: CaratConstraint
| branchConstraint: BranchConstraint
;
syntax VersionConstraint
start syntax VersionConstraint
= left ( andWithSpaces: VersionConstraint c1 VersionConstraint c2
| andWithCommas: VersionConstraint c1 "," VersionConstraint c2)
> left ( orWithOnePipe: VersionConstraint c1 "|" VersionConstraint c2
| orWithTwoPipes: VersionConstraint c1 "||" VersionConstraint c2)
> left hyphenatedRange: VersionConstraint c1 "-" VersionConstraint c2
> baseRangeConstraint: VersionRangeConstraint rc
| baseExactConstraint: ExactVersionConstraint ec
;
data PackageVersionConstraint
data PackageVersionConstraint
= rawConstraint(str constraintText)
| suggestion(str suggestionText)
| tildeConstraint(PackageVersionConstraint c)
| caratConstraint(PackageVersionConstraint c)
| wildcardForMajorConstraint()
| wildcardForMinorConstraint(str major)
| wildcardForPatchConstraint(str major, str minor)
| gtConstraint(PackageVersionConstraint c)
| gtEqConstraint(PackageVersionConstraint c)
| ltConstraint(PackageVersionConstraint c)
| ltEqConstraint(PackageVersionConstraint c)
| neqConstraint(PackageVersionConstraint c)
| majorVersionConstraint(str major)
| majorVersionWithPreReleaseConstraint(str major, str stability)
| minorVersionConstraint(str major, str minor)
| minorVersionWithPreReleaseConstraint(str major, str minor, str stability)
| patchVersionConstraint(str major, str minor, str patch)
| patchVersionWithPreReleaseConstraint(str major, str minor, str patch, str stability)
| branchConstraint(str branch)
| andConstraint(PackageVersionConstraint left, PackageVersionConstraint right)
| orConstraint(PackageVersionConstraint left, PackageVersionConstraint right)
| hyphenConstraint(PackageVersionConstraint left, PackageVersionConstraint right)
;
function parseExactVersionConstraint
PackageVersionConstraint parseExactVersionConstraint(ExactVersionConstraint evc)
function parseWildcardConstraint
PackageVersionConstraint parseWildcardConstraint(WildcardConstraint wc)
function parseConstraint
PackageVersionConstraint parseConstraint(str constraintText)
PackageVersionConstraint parseConstraint(VersionConstraint vc)