Skip to main content

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)