diff options
author | ronny | 2000-02-23 14:55:54 +0000 |
---|---|---|
committer | ronny | 2000-02-23 14:55:54 +0000 |
commit | 763041adf7a1f87addcb5069f203396dc896b3f1 (patch) | |
tree | 78472565231b153eebf953f64a73b37be1fcec57 /main/Version.icl | |
parent | Added backend.dll (diff) |
Initial import
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@100 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
Diffstat (limited to 'main/Version.icl')
-rw-r--r-- | main/Version.icl | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/main/Version.icl b/main/Version.icl new file mode 100644 index 0000000..71ab761 --- /dev/null +++ b/main/Version.icl @@ -0,0 +1,32 @@ +implementation module Version + +import StdInt, StdClass + +:: VersionInfo = + { versionCurrent + :: Int + , versionOldestDefinition + :: Int + , versionOldestImplementation + :: Int + } + +:: VersionsCompatability + = VersionsAreCompatible + | VersionObservedIsTooOld + | VersionObservedIsTooNew + +versionCompare :: VersionInfo VersionInfo -> VersionsCompatability +versionCompare expected observed + | expected.versionCurrent < observed.versionCurrent + | expected.versionCurrent >= observed.versionOldestDefinition + = VersionsAreCompatible + // otherwise + = VersionObservedIsTooNew + | expected.versionCurrent == observed.versionCurrent + = VersionsAreCompatible + // expected.versionCurrent > observed.versionCurrent + | expected.versionOldestImplementation <= observed.versionCurrent + = VersionsAreCompatible + // otherwise + = VersionObservedIsTooOld |