nant 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (416) hide show
  1. data/docs/help/elements/NAnt.Compression.Tasks.ExpandBaseTask.html +74 -0
  2. data/docs/help/elements/NAnt.Core.DataTypeBase.html +56 -0
  3. data/docs/help/elements/NAnt.Core.Filters.ChainableReader.html +29 -0
  4. data/docs/help/elements/NAnt.Core.Filters.Filter.html +56 -0
  5. data/docs/help/elements/NAnt.Core.Target.html +81 -0
  6. data/docs/help/elements/NAnt.Core.Task.html +29 -0
  7. data/docs/help/elements/NAnt.Core.TaskContainer.html +68 -0
  8. data/docs/help/elements/NAnt.Core.Tasks.ExternalProgramBase.html +132 -0
  9. data/docs/help/elements/NAnt.Core.Tasks.InElement.html +49 -0
  10. data/docs/help/elements/NAnt.Core.Types.Argument.html +121 -0
  11. data/docs/help/elements/NAnt.Core.Types.EnvironmentSet.html +65 -0
  12. data/docs/help/elements/NAnt.Core.Types.EnvironmentVariable.html +99 -0
  13. data/docs/help/elements/NAnt.Core.Types.FileSet.Exclude.html +63 -0
  14. data/docs/help/elements/NAnt.Core.Types.FileSet.ExcludesFile.html +63 -0
  15. data/docs/help/elements/NAnt.Core.Types.FileSet.Include.html +75 -0
  16. data/docs/help/elements/NAnt.Core.Types.FileSet.IncludesFile.html +75 -0
  17. data/docs/help/elements/NAnt.Core.Types.Formatter.html +69 -0
  18. data/docs/help/elements/NAnt.Core.Types.Option.html +68 -0
  19. data/docs/help/elements/NAnt.Core.Types.PathElement.html +74 -0
  20. data/docs/help/elements/NAnt.Core.Types.Pattern.html +63 -0
  21. data/docs/help/elements/NAnt.Core.Types.RawXml.html +33 -0
  22. data/docs/help/elements/NAnt.Core.Types.Token.html +68 -0
  23. data/docs/help/elements/NAnt.Core.Types.XmlNamespace.html +68 -0
  24. data/docs/help/elements/NAnt.Core.Types.XsltExtensionObject.html +74 -0
  25. data/docs/help/elements/NAnt.Core.Types.XsltParameter.html +74 -0
  26. data/docs/help/elements/NAnt.DotNet.Tasks.CompilerBase.html +337 -0
  27. data/docs/help/elements/NAnt.DotNet.Types.AssemblyAttribute.html +74 -0
  28. data/docs/help/elements/NAnt.DotNet.Types.CompilerWarning.html +62 -0
  29. data/docs/help/elements/NAnt.DotNet.Types.DataTypeCollectionBase.html +56 -0
  30. data/docs/help/elements/NAnt.DotNet.Types.EmbeddedResourceCollection.html +29 -0
  31. data/docs/help/elements/NAnt.DotNet.Types.LibDirectorySet.html +61 -0
  32. data/docs/help/elements/NAnt.DotNet.Types.Module.html +56 -0
  33. data/docs/help/elements/NAnt.DotNet.Types.NamespaceImport.html +69 -0
  34. data/docs/help/elements/NAnt.DotNet.Types.Package.html +62 -0
  35. data/docs/help/elements/NAnt.NUnit.Types.FormatterElement.html +70 -0
  36. data/docs/help/elements/NAnt.NUnit1.Types.NUnitTest.html +92 -0
  37. data/docs/help/elements/NAnt.NUnit2.Types.Category.html +62 -0
  38. data/docs/help/elements/NAnt.NUnit2.Types.NUnit2Test.html +111 -0
  39. data/docs/help/elements/NAnt.SourceControl.Tasks.AbstractCvsTask.html +239 -0
  40. data/docs/help/elements/NAnt.SourceControl.Tasks.AbstractSourceControlTask.html +167 -0
  41. data/docs/help/elements/NAnt.VSNet.Types.WebMap.html +74 -0
  42. data/docs/help/elements/NAnt.VisualCpp.Types.Library.html +62 -0
  43. data/docs/help/elements/NAnt.VisualCpp.Types.Symbol.html +62 -0
  44. data/docs/help/enums/NAnt.Compression.Types.DuplicateHandling.html +54 -0
  45. data/docs/help/enums/NAnt.Compression.Types.TarCompressionMethod.html +54 -0
  46. data/docs/help/enums/NAnt.Core.FrameworkTypes.html +74 -0
  47. data/docs/help/enums/NAnt.Core.Level.html +66 -0
  48. data/docs/help/enums/NAnt.Core.Tasks.AvailableTask.ResourceType.html +58 -0
  49. data/docs/help/enums/NAnt.Core.Tasks.LoopTask.LoopItem.html +63 -0
  50. data/docs/help/enums/NAnt.Core.Tasks.LoopTask.LoopTrim.html +59 -0
  51. data/docs/help/enums/NAnt.Core.Types.ManagedExecution.html +77 -0
  52. data/docs/help/enums/NAnt.DotNet.Tasks.AssemblyInfoTask.CodeLanguage.html +54 -0
  53. data/docs/help/enums/NAnt.DotNet.Tasks.RegsvcsTask.ActionType.html +54 -0
  54. data/docs/help/enums/NAnt.DotNet.Types.DebugOutput.html +84 -0
  55. data/docs/help/enums/NAnt.DotNet.Types.DelaySign.html +75 -0
  56. data/docs/help/enums/NAnt.MSNet.Tasks.ServiceControllerTask.ActionType.html +62 -0
  57. data/docs/help/enums/NAnt.NUnit.Types.FormatterType.html +50 -0
  58. data/docs/help/enums/NAnt.VisualCpp.Tasks.ClTask.PrecompiledHeaderMode.html +54 -0
  59. data/docs/help/enums/NAnt.VisualCpp.Types.CharacterSet.html +54 -0
  60. data/docs/help/filters/expandproperties.html +33 -0
  61. data/docs/help/filters/index.html +60 -0
  62. data/docs/help/filters/replacestring.html +92 -0
  63. data/docs/help/filters/replacetokens.html +110 -0
  64. data/docs/help/filters/tabstospaces.html +73 -0
  65. data/docs/help/functions/assembly.get-full-name(System.Reflection.Assembly).html +51 -0
  66. data/docs/help/functions/assembly.get-location(System.Reflection.Assembly).html +51 -0
  67. data/docs/help/functions/assembly.get-name(System.Reflection.Assembly).html +52 -0
  68. data/docs/help/functions/assembly.load(System.String).html +55 -0
  69. data/docs/help/functions/assembly.load-from-file(System.String).html +52 -0
  70. data/docs/help/functions/assemblyname.get-assembly-name(System.String).html +54 -0
  71. data/docs/help/functions/assemblyname.get-codebase(System.Reflection.AssemblyName).html +51 -0
  72. data/docs/help/functions/assemblyname.get-escaped-codebase(System.Reflection.AssemblyName).html +51 -0
  73. data/docs/help/functions/assemblyname.get-full-name(System.Reflection.AssemblyName).html +53 -0
  74. data/docs/help/functions/assemblyname.get-name(System.Reflection.AssemblyName).html +53 -0
  75. data/docs/help/functions/assemblyname.get-version(System.Reflection.AssemblyName).html +54 -0
  76. data/docs/help/functions/bool.parse(System.String).html +52 -0
  77. data/docs/help/functions/bool.to-string(System.Boolean).html +49 -0
  78. data/docs/help/functions/convert.to-boolean(System.Boolean).html +53 -0
  79. data/docs/help/functions/convert.to-datetime(System.DateTime).html +53 -0
  80. data/docs/help/functions/convert.to-double(System.Double).html +53 -0
  81. data/docs/help/functions/convert.to-int(System.Int32).html +53 -0
  82. data/docs/help/functions/convert.to-string(System.String).html +53 -0
  83. data/docs/help/functions/cygpath.get-dos-path(System.String).html +51 -0
  84. data/docs/help/functions/cygpath.get-unix-path(System.String).html +51 -0
  85. data/docs/help/functions/cygpath.get-windows-path(System.String).html +51 -0
  86. data/docs/help/functions/datetime.get-day(System.DateTime).html +49 -0
  87. data/docs/help/functions/datetime.get-day-of-week(System.DateTime).html +49 -0
  88. data/docs/help/functions/datetime.get-day-of-year(System.DateTime).html +49 -0
  89. data/docs/help/functions/datetime.get-days-in-month(System.Int32,System.Int32).html +56 -0
  90. data/docs/help/functions/datetime.get-hour(System.DateTime).html +49 -0
  91. data/docs/help/functions/datetime.get-millisecond(System.DateTime).html +49 -0
  92. data/docs/help/functions/datetime.get-minute(System.DateTime).html +49 -0
  93. data/docs/help/functions/datetime.get-month(System.DateTime).html +49 -0
  94. data/docs/help/functions/datetime.get-second(System.DateTime).html +49 -0
  95. data/docs/help/functions/datetime.get-ticks(System.DateTime).html +49 -0
  96. data/docs/help/functions/datetime.get-year(System.DateTime).html +49 -0
  97. data/docs/help/functions/datetime.is-leap-year(System.Int32).html +50 -0
  98. data/docs/help/functions/datetime.now().html +34 -0
  99. data/docs/help/functions/datetime.parse(System.String).html +51 -0
  100. data/docs/help/functions/datetime.to-string(System.DateTime).html +49 -0
  101. data/docs/help/functions/directory.exists(System.String).html +52 -0
  102. data/docs/help/functions/directory.get-creation-time(System.String).html +51 -0
  103. data/docs/help/functions/directory.get-current-directory().html +34 -0
  104. data/docs/help/functions/directory.get-directory-root(System.String).html +51 -0
  105. data/docs/help/functions/directory.get-last-access-time(System.String).html +51 -0
  106. data/docs/help/functions/directory.get-last-write-time(System.String).html +51 -0
  107. data/docs/help/functions/directory.get-parent-directory(System.String).html +55 -0
  108. data/docs/help/functions/dns.get-host-name().html +36 -0
  109. data/docs/help/functions/double.parse(System.String).html +51 -0
  110. data/docs/help/functions/double.to-string(System.Double).html +49 -0
  111. data/docs/help/functions/environment.get-folder-path(System.Environment.SpecialFolder).html +55 -0
  112. data/docs/help/functions/environment.get-machine-name().html +36 -0
  113. data/docs/help/functions/environment.get-operating-system().html +38 -0
  114. data/docs/help/functions/environment.get-user-name().html +40 -0
  115. data/docs/help/functions/environment.get-variable(System.String).html +51 -0
  116. data/docs/help/functions/environment.get-version().html +37 -0
  117. data/docs/help/functions/environment.newline().html +36 -0
  118. data/docs/help/functions/environment.variable-exists(System.String).html +54 -0
  119. data/docs/help/functions/file.exists(System.String).html +54 -0
  120. data/docs/help/functions/file.get-creation-time(System.String).html +51 -0
  121. data/docs/help/functions/file.get-last-access-time(System.String).html +51 -0
  122. data/docs/help/functions/file.get-last-write-time(System.String).html +51 -0
  123. data/docs/help/functions/file.get-length(System.String).html +51 -0
  124. data/docs/help/functions/file.is-assembly(System.String).html +51 -0
  125. data/docs/help/functions/file.up-to-date(System.String,System.String).html +57 -0
  126. data/docs/help/functions/fileversioninfo.get-company-name(System.Diagnostics.FileVersionInfo).html +51 -0
  127. data/docs/help/functions/fileversioninfo.get-file-version(System.Diagnostics.FileVersionInfo).html +52 -0
  128. data/docs/help/functions/fileversioninfo.get-product-name(System.Diagnostics.FileVersionInfo).html +51 -0
  129. data/docs/help/functions/fileversioninfo.get-product-version(System.Diagnostics.FileVersionInfo).html +52 -0
  130. data/docs/help/functions/fileversioninfo.get-version-info(System.String).html +52 -0
  131. data/docs/help/functions/framework.exists(System.String).html +50 -0
  132. data/docs/help/functions/framework.get-assembly-directory(System.String).html +51 -0
  133. data/docs/help/functions/framework.get-clr-version().html +35 -0
  134. data/docs/help/functions/framework.get-clr-version(System.String).html +52 -0
  135. data/docs/help/functions/framework.get-description().html +34 -0
  136. data/docs/help/functions/framework.get-description(System.String).html +51 -0
  137. data/docs/help/functions/framework.get-family(System.String).html +51 -0
  138. data/docs/help/functions/framework.get-framework-directory(System.String).html +51 -0
  139. data/docs/help/functions/framework.get-frameworks(NAnt.Core.FrameworkTypes).html +62 -0
  140. data/docs/help/functions/framework.get-runtime-engine(System.String).html +51 -0
  141. data/docs/help/functions/framework.get-runtime-framework().html +34 -0
  142. data/docs/help/functions/framework.get-sdk-directory(System.String).html +51 -0
  143. data/docs/help/functions/framework.get-target-framework().html +34 -0
  144. data/docs/help/functions/framework.get-tool-path(System.String).html +56 -0
  145. data/docs/help/functions/framework.get-version().html +35 -0
  146. data/docs/help/functions/framework.get-version(System.String).html +52 -0
  147. data/docs/help/functions/framework.sdk-exists(System.String).html +50 -0
  148. data/docs/help/functions/index.html +1328 -0
  149. data/docs/help/functions/int.parse(System.String).html +51 -0
  150. data/docs/help/functions/int.to-string(System.Int32).html +49 -0
  151. data/docs/help/functions/long.parse(System.String).html +51 -0
  152. data/docs/help/functions/long.to-string(System.Int64).html +49 -0
  153. data/docs/help/functions/math.abs(System.Double).html +50 -0
  154. data/docs/help/functions/math.ceiling(System.Double).html +49 -0
  155. data/docs/help/functions/math.floor(System.Double).html +49 -0
  156. data/docs/help/functions/math.round(System.Double).html +49 -0
  157. data/docs/help/functions/nant.get-assembly().html +35 -0
  158. data/docs/help/functions/nant.get-base-directory().html +34 -0
  159. data/docs/help/functions/operating-system.get-platform(System.OperatingSystem).html +53 -0
  160. data/docs/help/functions/operating-system.get-version(System.OperatingSystem).html +52 -0
  161. data/docs/help/functions/operating-system.to-string(System.OperatingSystem).html +54 -0
  162. data/docs/help/functions/path.change-extension(System.String,System.String).html +59 -0
  163. data/docs/help/functions/path.combine(System.String,System.String).html +56 -0
  164. data/docs/help/functions/path.get-directory-name(System.String).html +51 -0
  165. data/docs/help/functions/path.get-extension(System.String).html +51 -0
  166. data/docs/help/functions/path.get-file-name(System.String).html +54 -0
  167. data/docs/help/functions/path.get-file-name-without-extension(System.String).html +51 -0
  168. data/docs/help/functions/path.get-full-path(System.String).html +51 -0
  169. data/docs/help/functions/path.get-path-root(System.String).html +51 -0
  170. data/docs/help/functions/path.get-temp-file-name().html +34 -0
  171. data/docs/help/functions/path.get-temp-path().html +34 -0
  172. data/docs/help/functions/path.has-extension(System.String).html +52 -0
  173. data/docs/help/functions/path.is-path-rooted(System.String).html +52 -0
  174. data/docs/help/functions/pkg-config.exists(System.String).html +52 -0
  175. data/docs/help/functions/pkg-config.get-compile-flags(System.String).html +51 -0
  176. data/docs/help/functions/pkg-config.get-link-flags(System.String).html +51 -0
  177. data/docs/help/functions/pkg-config.get-mod-version(System.String).html +51 -0
  178. data/docs/help/functions/pkg-config.get-variable(System.String,System.String).html +56 -0
  179. data/docs/help/functions/pkg-config.is-atleast-version(System.String,System.String).html +57 -0
  180. data/docs/help/functions/pkg-config.is-between-version(System.String,System.String,System.String).html +62 -0
  181. data/docs/help/functions/pkg-config.is-exact-version(System.String,System.String).html +57 -0
  182. data/docs/help/functions/pkg-config.is-max-version(System.String,System.String).html +57 -0
  183. data/docs/help/functions/platform.get-name().html +34 -0
  184. data/docs/help/functions/platform.is-unix().html +35 -0
  185. data/docs/help/functions/platform.is-win32().html +38 -0
  186. data/docs/help/functions/platform.is-windows().html +35 -0
  187. data/docs/help/functions/project.get-base-directory().html +34 -0
  188. data/docs/help/functions/project.get-buildfile-path().html +34 -0
  189. data/docs/help/functions/project.get-buildfile-uri().html +34 -0
  190. data/docs/help/functions/project.get-default-target().html +34 -0
  191. data/docs/help/functions/project.get-name().html +34 -0
  192. data/docs/help/functions/property.exists(System.String).html +56 -0
  193. data/docs/help/functions/property.get-value(System.String).html +49 -0
  194. data/docs/help/functions/property.is-dynamic(System.String).html +52 -0
  195. data/docs/help/functions/property.is-readonly(System.String).html +52 -0
  196. data/docs/help/functions/string.contains(System.String,System.String).html +55 -0
  197. data/docs/help/functions/string.ends-with(System.String,System.String).html +55 -0
  198. data/docs/help/functions/string.get-length(System.String).html +49 -0
  199. data/docs/help/functions/string.index-of(System.String,System.String).html +57 -0
  200. data/docs/help/functions/string.last-index-of(System.String,System.String).html +57 -0
  201. data/docs/help/functions/string.pad-left(System.String,System.Int32,System.String).html +61 -0
  202. data/docs/help/functions/string.pad-right(System.String,System.Int32,System.String).html +61 -0
  203. data/docs/help/functions/string.replace(System.String,System.String,System.String).html +61 -0
  204. data/docs/help/functions/string.starts-with(System.String,System.String).html +55 -0
  205. data/docs/help/functions/string.substring(System.String,System.Int32,System.Int32).html +64 -0
  206. data/docs/help/functions/string.to-lower(System.String).html +49 -0
  207. data/docs/help/functions/string.to-upper(System.String).html +49 -0
  208. data/docs/help/functions/string.trim(System.String).html +49 -0
  209. data/docs/help/functions/string.trim-end(System.String).html +49 -0
  210. data/docs/help/functions/string.trim-start(System.String).html +49 -0
  211. data/docs/help/functions/target.exists(System.String).html +54 -0
  212. data/docs/help/functions/target.get-current-target().html +36 -0
  213. data/docs/help/functions/target.has-executed(System.String).html +52 -0
  214. data/docs/help/functions/task.exists(System.String).html +50 -0
  215. data/docs/help/functions/task.get-assembly(System.String).html +52 -0
  216. data/docs/help/functions/timespan.from-days(System.Double).html +49 -0
  217. data/docs/help/functions/timespan.from-hours(System.Double).html +49 -0
  218. data/docs/help/functions/timespan.from-milliseconds(System.Double).html +49 -0
  219. data/docs/help/functions/timespan.from-minutes(System.Double).html +49 -0
  220. data/docs/help/functions/timespan.from-seconds(System.Double).html +49 -0
  221. data/docs/help/functions/timespan.from-ticks(System.Int64).html +49 -0
  222. data/docs/help/functions/timespan.get-days(System.TimeSpan).html +55 -0
  223. data/docs/help/functions/timespan.get-hours(System.TimeSpan).html +49 -0
  224. data/docs/help/functions/timespan.get-milliseconds(System.TimeSpan).html +49 -0
  225. data/docs/help/functions/timespan.get-minutes(System.TimeSpan).html +49 -0
  226. data/docs/help/functions/timespan.get-seconds(System.TimeSpan).html +49 -0
  227. data/docs/help/functions/timespan.get-ticks(System.TimeSpan).html +49 -0
  228. data/docs/help/functions/timespan.get-total-days(System.TimeSpan).html +49 -0
  229. data/docs/help/functions/timespan.get-total-hours(System.TimeSpan).html +49 -0
  230. data/docs/help/functions/timespan.get-total-milliseconds(System.TimeSpan).html +49 -0
  231. data/docs/help/functions/timespan.get-total-minutes(System.TimeSpan).html +49 -0
  232. data/docs/help/functions/timespan.get-total-seconds(System.TimeSpan).html +49 -0
  233. data/docs/help/functions/timespan.parse(System.String).html +51 -0
  234. data/docs/help/functions/timespan.to-string(System.TimeSpan).html +49 -0
  235. data/docs/help/functions/version.get-build(System.Version).html +51 -0
  236. data/docs/help/functions/version.get-major(System.Version).html +51 -0
  237. data/docs/help/functions/version.get-minor(System.Version).html +51 -0
  238. data/docs/help/functions/version.get-revision(System.Version).html +51 -0
  239. data/docs/help/functions/version.parse(System.String).html +52 -0
  240. data/docs/help/functions/version.to-string(System.Version).html +51 -0
  241. data/docs/help/fundamentals/buildfiles.html +81 -0
  242. data/docs/help/fundamentals/expressions.html +2127 -0
  243. data/docs/help/fundamentals/functions.html +311 -0
  244. data/docs/help/fundamentals/index.html +35 -0
  245. data/docs/help/fundamentals/listeners.html +318 -0
  246. data/docs/help/fundamentals/projects.html +71 -0
  247. data/docs/help/fundamentals/properties.html +314 -0
  248. data/docs/help/fundamentals/running-nant.html +92 -0
  249. data/docs/help/fundamentals/targets.html +136 -0
  250. data/docs/help/fundamentals/tasks.html +277 -0
  251. data/docs/help/images/arrow.gif +0 -0
  252. data/docs/help/images/bullet.gif +0 -0
  253. data/docs/help/images/logo.gif +0 -0
  254. data/docs/help/index.html +61 -0
  255. data/docs/help/introduction/fog0000000006.html +42 -0
  256. data/docs/help/introduction/fog0000000041.html +39 -0
  257. data/docs/help/introduction/fog0000000042.html +32 -0
  258. data/docs/help/introduction/fog0000000079.html +32 -0
  259. data/docs/help/introduction/fog0000000081.html +35 -0
  260. data/docs/help/introduction/getting-started.gif +0 -0
  261. data/docs/help/introduction/index.html +35 -0
  262. data/docs/help/introduction/installation.html +164 -0
  263. data/docs/help/style.css +213 -0
  264. data/docs/help/tasks/al.html +325 -0
  265. data/docs/help/tasks/asminfo.html +159 -0
  266. data/docs/help/tasks/attrib.html +146 -0
  267. data/docs/help/tasks/available.html +153 -0
  268. data/docs/help/tasks/aximp.html +192 -0
  269. data/docs/help/tasks/call.html +160 -0
  270. data/docs/help/tasks/cl.html +266 -0
  271. data/docs/help/tasks/copy.html +191 -0
  272. data/docs/help/tasks/csc.html +467 -0
  273. data/docs/help/tasks/cvs-changelog.html +263 -0
  274. data/docs/help/tasks/cvs-checkout.html +304 -0
  275. data/docs/help/tasks/cvs-export.html +304 -0
  276. data/docs/help/tasks/cvs-pass.html +97 -0
  277. data/docs/help/tasks/cvs-rtag.html +307 -0
  278. data/docs/help/tasks/cvs-tag.html +307 -0
  279. data/docs/help/tasks/cvs-update.html +310 -0
  280. data/docs/help/tasks/cvs.html +257 -0
  281. data/docs/help/tasks/delay-sign.html +168 -0
  282. data/docs/help/tasks/delete.html +130 -0
  283. data/docs/help/tasks/description.html +77 -0
  284. data/docs/help/tasks/echo.html +148 -0
  285. data/docs/help/tasks/exec.html +247 -0
  286. data/docs/help/tasks/fail.html +97 -0
  287. data/docs/help/tasks/foreach.html +199 -0
  288. data/docs/help/tasks/get.html +168 -0
  289. data/docs/help/tasks/gunzip.html +89 -0
  290. data/docs/help/tasks/if.html +255 -0
  291. data/docs/help/tasks/ifnot.html +164 -0
  292. data/docs/help/tasks/ilasm.html +239 -0
  293. data/docs/help/tasks/ildasm.html +249 -0
  294. data/docs/help/tasks/include.html +92 -0
  295. data/docs/help/tasks/index.html +490 -0
  296. data/docs/help/tasks/jsc.html +315 -0
  297. data/docs/help/tasks/lib.html +201 -0
  298. data/docs/help/tasks/license.html +166 -0
  299. data/docs/help/tasks/link.html +244 -0
  300. data/docs/help/tasks/loadfile.html +135 -0
  301. data/docs/help/tasks/loadtasks.html +119 -0
  302. data/docs/help/tasks/mail.html +166 -0
  303. data/docs/help/tasks/mc.html +167 -0
  304. data/docs/help/tasks/midl.html +276 -0
  305. data/docs/help/tasks/mkdir.html +89 -0
  306. data/docs/help/tasks/move.html +190 -0
  307. data/docs/help/tasks/nant.html +164 -0
  308. data/docs/help/tasks/nantschema.html +96 -0
  309. data/docs/help/tasks/ndoc.html +172 -0
  310. data/docs/help/tasks/nunit.html +132 -0
  311. data/docs/help/tasks/nunit2.html +164 -0
  312. data/docs/help/tasks/property.html +136 -0
  313. data/docs/help/tasks/rc.html +189 -0
  314. data/docs/help/tasks/readregistry.html +111 -0
  315. data/docs/help/tasks/regasm.html +220 -0
  316. data/docs/help/tasks/regex.html +116 -0
  317. data/docs/help/tasks/regsvcs.html +221 -0
  318. data/docs/help/tasks/resgen.html +217 -0
  319. data/docs/help/tasks/script.html +268 -0
  320. data/docs/help/tasks/servicecontroller.html +109 -0
  321. data/docs/help/tasks/setenv.html +223 -0
  322. data/docs/help/tasks/sleep.html +107 -0
  323. data/docs/help/tasks/solution.html +237 -0
  324. data/docs/help/tasks/style.html +193 -0
  325. data/docs/help/tasks/sysinfo.html +193 -0
  326. data/docs/help/tasks/tar.html +119 -0
  327. data/docs/help/tasks/tlbexp.html +160 -0
  328. data/docs/help/tasks/tlbimp.html +249 -0
  329. data/docs/help/tasks/touch.html +120 -0
  330. data/docs/help/tasks/tstamp.html +159 -0
  331. data/docs/help/tasks/untar.html +104 -0
  332. data/docs/help/tasks/unzip.html +104 -0
  333. data/docs/help/tasks/uptodate.html +46 -0
  334. data/docs/help/tasks/vbc.html +478 -0
  335. data/docs/help/tasks/vjc.html +362 -0
  336. data/docs/help/tasks/xmlpeek.html +129 -0
  337. data/docs/help/tasks/xmlpoke.html +141 -0
  338. data/docs/help/tasks/zip.html +145 -0
  339. data/docs/help/types/assemblyfileset.html +280 -0
  340. data/docs/help/types/categories.html +102 -0
  341. data/docs/help/types/credential.html +86 -0
  342. data/docs/help/types/cvsfileset.html +193 -0
  343. data/docs/help/types/dirset.html +61 -0
  344. data/docs/help/types/fileset.html +305 -0
  345. data/docs/help/types/filterchain.html +109 -0
  346. data/docs/help/types/index.html +136 -0
  347. data/docs/help/types/moduleset.html +90 -0
  348. data/docs/help/types/namespaceimports.html +94 -0
  349. data/docs/help/types/path.html +95 -0
  350. data/docs/help/types/patternset.html +223 -0
  351. data/docs/help/types/proxy.html +99 -0
  352. data/docs/help/types/resourcefileset.html +199 -0
  353. data/docs/help/types/tarfileset.html +229 -0
  354. data/docs/help/types/warnaserror.html +102 -0
  355. data/docs/help/types/zipfileset.html +193 -0
  356. data/docs/license.html +81 -0
  357. data/docs/releasenotes.html +3961 -0
  358. data/docs/sdk/NAnt-SDK.chm +0 -0
  359. data/lib/COPYING.txt +340 -0
  360. data/lib/NAnt.CompressionTasks.dll +0 -0
  361. data/lib/NAnt.CompressionTasks.xml +711 -0
  362. data/lib/NAnt.Core.dll +0 -0
  363. data/lib/NAnt.Core.xml +16161 -0
  364. data/lib/NAnt.DotNetTasks.dll +0 -0
  365. data/lib/NAnt.DotNetTasks.xml +5334 -0
  366. data/lib/NAnt.MSNetTasks.dll +0 -0
  367. data/lib/NAnt.MSNetTasks.xml +579 -0
  368. data/lib/NAnt.NUnit.dll +0 -0
  369. data/lib/NAnt.NUnit.xml +353 -0
  370. data/lib/NAnt.NUnit1Tasks.dll +0 -0
  371. data/lib/NAnt.NUnit1Tasks.xml +538 -0
  372. data/lib/NAnt.NUnit2Tasks.dll +0 -0
  373. data/lib/NAnt.NUnit2Tasks.xml +584 -0
  374. data/lib/NAnt.SourceControlTasks.dll +0 -0
  375. data/lib/NAnt.SourceControlTasks.xml +1279 -0
  376. data/lib/NAnt.VSNetTasks.dll +0 -0
  377. data/lib/NAnt.VSNetTasks.xml +3961 -0
  378. data/lib/NAnt.VisualCppTasks.dll +0 -0
  379. data/lib/NAnt.VisualCppTasks.xml +1211 -0
  380. data/lib/NAnt.Win32Tasks.dll +0 -0
  381. data/lib/NAnt.Win32Tasks.xml +690 -0
  382. data/lib/NAnt.exe +0 -0
  383. data/lib/NAnt.exe.config +1996 -0
  384. data/lib/NAnt.xml +78 -0
  385. data/lib/NDoc.Documenter.NAnt.dll +0 -0
  386. data/lib/README.txt +158 -0
  387. data/lib/extensions/common/2.0/NAnt.MSBuild.dll +0 -0
  388. data/lib/extensions/common/2.0/NAnt.MSBuild.xml +36 -0
  389. data/lib/lib/common/1.1/nunit-console-runner.dll +0 -0
  390. data/lib/lib/common/1.1/nunit-console.exe +0 -0
  391. data/lib/lib/common/1.1/nunit.core.dll +0 -0
  392. data/lib/lib/common/1.1/nunit.framework.dll +0 -0
  393. data/lib/lib/common/1.1/nunit.util.dll +0 -0
  394. data/lib/lib/common/2.0/nunit-console-runner.dll +0 -0
  395. data/lib/lib/common/2.0/nunit-console.exe +0 -0
  396. data/lib/lib/common/2.0/nunit.core.dll +0 -0
  397. data/lib/lib/common/2.0/nunit.framework.dll +0 -0
  398. data/lib/lib/common/2.0/nunit.util.dll +0 -0
  399. data/lib/lib/common/neutral/ICSharpCode.SharpCvsLib.Console.dll +0 -0
  400. data/lib/lib/common/neutral/ICSharpCode.SharpCvsLib.dll +0 -0
  401. data/lib/lib/common/neutral/ICSharpCode.SharpZipLib.dll +0 -0
  402. data/lib/lib/common/neutral/NDoc.Core.dll +0 -0
  403. data/lib/lib/common/neutral/NDoc.Documenter.Msdn.dll +0 -0
  404. data/lib/lib/common/neutral/NDoc.ExtendedUI.dll +0 -0
  405. data/lib/lib/common/neutral/NUnitCore.dll +0 -0
  406. data/lib/lib/net/1.0/NDoc.Core.dll +0 -0
  407. data/lib/lib/net/1.0/NDoc.Documenter.Msdn.dll +0 -0
  408. data/lib/lib/net/1.0/NDoc.ExtendedUI.dll +0 -0
  409. data/lib/lib/net/1.0/nunit-console-runner.dll +0 -0
  410. data/lib/lib/net/1.0/nunit-console.exe +0 -0
  411. data/lib/lib/net/1.0/nunit.core.dll +0 -0
  412. data/lib/lib/net/1.0/nunit.framework.dll +0 -0
  413. data/lib/lib/net/1.0/nunit.util.dll +0 -0
  414. data/lib/log4net.dll +0 -0
  415. data/lib/scvs.exe +0 -0
  416. metadata +484 -0
@@ -0,0 +1,2127 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
2
+ <html xmlns="http://www.w3.org/1999/xhtml">
3
+ <head>
4
+ <meta http-equiv="Content-Language" content="en-ca" />
5
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
6
+ <meta name="description" content="Expressions" />
7
+ <link rel="stylesheet" type="text/css" href="../style.css" />
8
+ <title>NAnt - Expressions</title>
9
+ </head>
10
+ <body>
11
+ <table width="100%" border="0" cellspacing="0" cellpadding="2" class="NavBar">
12
+ <tr>
13
+ <td class="NavBar-Cell">
14
+ <a title="NAnt home page" href="http://nant.sourceforge.net"><b>NAnt</b></a> <img src="../images/arrow.gif" alt="-&gt;" width="13" height="9" />
15
+ <a href="../index.html">Help</a> <img alt="-&gt;" src="../images/arrow.gif" /> <a href="index.html">
16
+ Fundamentals</a> <img height="9" alt="-&gt;" src="../images/arrow.gif" width="13" />
17
+ Expressions
18
+ </td>
19
+ <td class="NavBar-Cell" align="right">
20
+ v0.90
21
+ </td>
22
+ </tr>
23
+ </table>
24
+ <h1>Expressions</h1>
25
+
26
+ <h2><a id="contents" />Contents</h2>
27
+ <div>
28
+ 1 <a href="#introduction">Introduction</a><br />
29
+ 2 <a href="#expression-syntax">Expression syntax</a><br />
30
+ 3 <a href="#datatypes">Data types</a><br />
31
+ 4 <a href="#operators">Operators</a>
32
+ <div style="margin-left: 20px;">
33
+ 4.1 <a href="#operator-precedence">Operator precedence</a><br/>
34
+ 4.2 <a href="#numeric-operators">Operators on Numeric Values</a>
35
+ <div style="margin-left: 20px;">
36
+ 4.2.1 <a href="#op-num-add">Add</a><br />
37
+ 4.2.2 <a href="#op-num-subtract">Subtract</a><br />
38
+ 4.2.3 <a href="#op-num-multiply">Multiply</a><br />
39
+ 4.2.4 <a href="#op-num-divide">Divide</a><br />
40
+ 4.2.5 <a href="#op-num-mod">Mod</a><br />
41
+ 4.2.6 <a href="#op-num-equal">Equal</a><br />
42
+ 4.2.7 <a href="#op-num-inequal">Inequal</a><br />
43
+ 4.2.8 <a href="#op-num-greater-than">Greater than</a><br />
44
+ 4.2.9 <a href="#op-num-greater-than-or-equal">Greater than or equal</a><br />
45
+ 4.2.10 <a href="#op-num-less-than">Less than</a><br />
46
+ 4.2.11 <a href="#op-num-less-than-or-equal">Less than or equal</a><br />
47
+ 4.2.12 <a href="#op-num-unary-plus">Unary plus</a><br />
48
+ 4.2.13 <a href="#op-num-unary-minus">Unary minus</a>
49
+ </div>
50
+ </div>
51
+ <div style="margin-left: 20px;">
52
+ 4.3 <a href="#boolean-operators">Operators on Boolean Values</a>
53
+ <div style="margin-left: 20px;">
54
+ 4.3.1 <a href="#op-boolean-equal">Equal</a><br />
55
+ 4.3.2 <a href="#op-boolean-inequal">Inequal</a><br />
56
+ 4.3.3 <a href="#op-boolean-greater-than">Greater than</a><br />
57
+ 4.3.4 <a href="#op-boolean-greater-than-or-equal">Greater than or equal</a><br />
58
+ 4.3.5 <a href="#op-boolean-less-than">Less than</a><br />
59
+ 4.3.6 <a href="#op-boolean-less-than-or-equal">Less than or equal</a><br />
60
+ 4.3.7 <a href="#op-boolean-logical-and">Logical and</a><br />
61
+ 4.3.8 <a href="#op-boolean-logical-or">Logical or</a><br />
62
+ </div>
63
+ </div>
64
+ <div style="margin-left: 20px;">
65
+ 4.4 <a href="#string-operators">Operators on String Values</a>
66
+ <div style="margin-left: 20px;">
67
+ 4.4.1 <a href="#op-string-concat">Concat</a><br />
68
+ 4.4.2 <a href="#op-string-equal">Equal</a><br />
69
+ 4.4.3 <a href="#op-string-inequal">Inequal</a><br />
70
+ 4.4.4 <a href="#op-string-greater-than">Greater than</a><br />
71
+ 4.4.5 <a href="#op-string-greater-than-or-equal">Greater than or equal</a><br />
72
+ 4.4.6 <a href="#op-string-less-than">Less than</a><br />
73
+ 4.4.7 <a href="#op-string-less-than-or-equal">Less than or equal</a><br />
74
+ </div>
75
+ </div>
76
+ <div style="margin-left: 20px;">
77
+ 4.5 <a href="#datetime-operators">Operators on TimeSpan and DateTime Values</a>
78
+ <div style="margin-left: 20px;">
79
+ 4.5.1 <a href="#op-datetime-add">Add</a><br />
80
+ 4.5.2 <a href="#op-datetime-subtract">Subtract</a><br />
81
+ 4.5.3 <a href="#op-datetime-equal">Equal</a><br />
82
+ 4.5.4 <a href="#op-datetime-inequal">Inequal</a><br />
83
+ 4.5.5 <a href="#op-datetime-greater-than">Greater than</a><br />
84
+ 4.5.6 <a href="#op-datetime-greater-than-or-equal">Greater than or equal</a><br />
85
+ 4.5.7 <a href="#op-datetime-less-than">Less than</a><br />
86
+ 4.5.8 <a href="#op-datetime-less-than-or-equal">Less than or equal</a><br />
87
+ </div>
88
+ </div>
89
+ <div style="margin-left: 20px;">
90
+ 4.6 <a href="#version-operators">Operators on Version Values</a>
91
+ <div style="margin-left: 20px;">
92
+ 4.6.1 <a href="#op-version-equal">Equal</a><br />
93
+ 4.6.2 <a href="#op-version-inequal">Inequal</a><br />
94
+ 4.6.3 <a href="#op-version-greater-than">Greater than</a><br />
95
+ 4.6.4 <a href="#op-version-greater-than-or-equal">Greater than or equal</a><br />
96
+ 4.6.5 <a href="#op-version-less-than">Less than</a><br />
97
+ 4.6.6 <a href="#op-version-less-than-or-equal">Less than or equal</a><br />
98
+ </div>
99
+ </div>
100
+ </div>
101
+ <h2><a id="introduction" />1 Introduction</h2>
102
+ <p>Expressions are simple, yet powerful mechanism that allows you to write advanced
103
+ formulas to be used in task arguments and conditions that direct the build
104
+ process. Expressions can access project <a href="properties.html">properties</a>
105
+ and call builtin or user-defined <a href="../functions/index.html">functions</a>.</p>
106
+ <p>
107
+ NAnt provides a rich set of bulitin functions, that allow you to:</p>
108
+ <ul>
109
+ <li>
110
+ manipulate strings</li>
111
+ <li>
112
+ manipulate date/time values</li>
113
+ <li>
114
+ manipulate path names</li>
115
+ <li>
116
+ read the properties of files/directories</li>
117
+ <li>
118
+ access current build information and more</li>
119
+ <li>
120
+ and more</li>
121
+ </ul>
122
+ <p>For a full list of supported functions, click <a href="../functions/index.html">here</a>.</p>
123
+ <h2><a id="expression-syntax" />2 Expression Syntax</h2>
124
+ <p>Expressions can be used in all task arguments, by using <code>${...}</code> notation.
125
+ You may use standard syntax for arithmetical (addition, subtraction,
126
+ multiplication, division, modulus), logical (negation, conjunction,
127
+ alternative) and relational operators (equality, inequality). To call
128
+ functions, use <code>prefix::function-name(argument1, ..., argumentN)</code> syntax.
129
+ To access properties, you simply use their names without any prefix or suffix.
130
+ See the examples section below for more information.</p>
131
+ <p><b>NOTE</b>: Expressions are often used in XML attributes. The grammar specified in this
132
+ section applies to the attribute value after XML 1.0 normalization. So, for
133
+ example, if the grammar uses the character <code>&lt;</code>, this must not
134
+ appear in the XML source as <code>&lt;</code> but must be quoted according to
135
+ XML 1.0 rules by, for example, entering it as <code>&amp;lt;</code>.
136
+ </p>
137
+ <h3>Examples:</h3>
138
+ <ol>
139
+ <li>
140
+ Accessing a property:
141
+ <p>
142
+ <code>&lt;property name="build.version" value="3" /&gt;</code><br />
143
+ <code>&lt;echo message="The current date is:
144
+ <span class="expression">${build.version}</span>" /&gt;</code>
145
+ </p>
146
+ <p>This will output the current value of <code>build.version</code> property.</p>
147
+ </li>
148
+ <li>
149
+ Calling a function
150
+ <p>
151
+ <code>&lt;echo message="The current date is:
152
+ <span class="expression">${<a href="../functions/datetime.now.html">datetime::now</a>()}</span>"
153
+ /&gt;</code>
154
+ </p>
155
+ <p>This will output the current date and time.</p>
156
+ </li>
157
+ <li>
158
+ Storing the result of an expression
159
+ <p>To store the result of an expression in a property, use the <code>&lt;property&gt;</code>
160
+ task:</p>
161
+ <p>
162
+ <code>&lt;property name="autoexec-present" value="<span class="expression">${<a href="../functions/file.exists.html">file::exists</a>('c:\autoexec.bat')}</span>"
163
+ /&gt;</code>
164
+ </p>
165
+ <p>This will set the property <code>autoexec-present</code> to either <b>true</b>
166
+ or <b>false</b> depending on whether the specified file exists or not.</p>
167
+ </li>
168
+ <li>
169
+ Real-life expression use
170
+ <p>
171
+ <code>&lt;property name="myprj.basedir" value="c:\" /&gt;<br />
172
+ &lt;property name="filename" value="<span class="expression">${<a href="../functions/path.combine.html">path::combine</a>(myprj.basedir,'version.txt')}</span>"
173
+ /&gt;<br />
174
+ <br />
175
+ &lt;if test="<span class="expression">${not <a href="../functions/file.exists.html">file::exists</a>(filename) or <a href="../functions/file.get-length.html">file::get-length</a>(filename) = 0}</span>"&gt;<br />
176
+ &nbsp;&nbsp;&nbsp;&nbsp;&lt;echo message="The version file
177
+ <span class="expression">${filename}</span>
178
+ doesn't exist or is empty!" /&gt;<br />
179
+ &lt;/if&gt;<br/> </code>
180
+ </p>
181
+ <p>This will check for the existence of a file <i>version.txt</i>
182
+ in a directory specified by myprj.basedir. Note that this makes use of the
183
+ short-circuit evaluation supported by NAnt, so you can test for the existence
184
+ of the file and check its length in the same expression. ( ie like C, NAnt will
185
+ not evaluate the second part of an 'or' expression if the first evaluates to
186
+ <b>true</b> )
187
+ </p>
188
+ </li>
189
+ <li>
190
+ Using expressions to conditionally execute tasks
191
+ <p>All tasks support <code>if</code> and <code>unless</code> attributes.
192
+ Expressions can be used there to control which tasks get executed:</p>
193
+ <p>
194
+ <code>&lt;property name="myprj.basedir" value="c:\" unless="<a href="../functions/property.exists.html">property::exists</a>('myprj.basedir')"
195
+ /&gt;<br />
196
+ &lt;csc target="library" output="out.dll" ...
197
+ <br />
198
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if="<span class="expression">${<a href="../functions/datetime.now.html">datetime::now</a>() - <a href="../functions/file.get-last-write-time.html">file::get-last-write-time</a>('out.dll')) &gt; <a href="../functions/timespan.from-hours.html">timespan::from-hours</a>(1)}</span>"&gt;<br />
199
+ ...<br />
200
+ &lt;/csc&gt;<br />
201
+ </code>
202
+ </p>
203
+ <p>
204
+ This will rebuild the C# library only if it was last rebuilt more than an hour
205
+ ago.
206
+ </p>
207
+ </li>
208
+ </ol>
209
+ <h2><a id="datatypes" />3 Data types</h2>
210
+ <p>Expressions can access, pass and return values of the following types:</p>
211
+ <div class="table">
212
+ <table>
213
+ <tr>
214
+ <th>
215
+ Type</th>
216
+ <th>
217
+ Allowed values</th>
218
+ </tr>
219
+ <tr>
220
+ <td>int</td>
221
+ <td>32-bit signed integer value</td>
222
+ </tr>
223
+ <tr>
224
+ <td>long</td>
225
+ <td>64-bit signed integer value</td>
226
+ </tr>
227
+ <tr>
228
+ <td>double</td>
229
+ <td>64-bit signed double precision floating point value</td>
230
+ </tr>
231
+ <tr>
232
+ <td>boolean</td>
233
+ <td><b>true</b> or <b>false</b></td>
234
+ </tr>
235
+ <tr>
236
+ <td>string</td>
237
+ <td>strings of characters of any length.</td>
238
+ </tr>
239
+ <tr>
240
+ <td>datetime</td>
241
+ <td>values represeting date &amp; time (range is from 00:00:00, January 1, 1 AD to
242
+ 23:59:59, December 31, 9999 AD)</td>
243
+ </tr>
244
+ <tr>
245
+ <td>timespan</td>
246
+ <td>represents a time interval.</td>
247
+ </tr>
248
+ <tr>
249
+ <td>version</td>
250
+ <td>represents a version number consisting of two to four components.</td>
251
+ </tr>
252
+ </table>
253
+ </div>
254
+ <p>In addition, the expression evaluation engine allows you to return and pass
255
+ values of any CLI type through the use of <a href="functions.html#custom">custom
256
+ functions</a>. Note that there's no support for implicit type conversions.</p>
257
+ <h2><a id="operators" />4 Operators</h2>
258
+ <h3><a id="operator-precedence" />4.1 Operator precedence</h3>
259
+ <p>NAnt expressions support standard ( c style ) operator precedence, that we're
260
+ accustomed to:</p>
261
+ <ul>
262
+ <li>
263
+ <code>and</code> is evaluated before <code>or</code>, left to right. For
264
+ example <code>false or true and true and false</code> evaluates as <code>false or
265
+ ((true and true) and false)</code></li>
266
+ <li>
267
+ multiplication,division and modulus are evaluated before addition and
268
+ subtraction, left to right. For example <code>1 + 2 * 3 / 4</code> evaluates as <code>
269
+ 1 + ((2 * 3) / 4)</code></li>
270
+ <li>
271
+ parentheses can be used to override the default operator precedence. For
272
+ example <code>(1 + 2) * 3</code> evaluates as written, even though the
273
+ multiplication has precedence over addition</li>
274
+ </ul>
275
+ <p><b>NOTE</b>: Because NAnt supports properties whose names can contain dashes,
276
+ there's a possible ambiguity between the subtraction of two properties and
277
+ accessing a single property with a name containing a dash:</p>
278
+ <p>
279
+ <code>aaa-bbb</code> - this is ambiguous. It could either be <span style="text-decoration: underline;">property <code>aaa</code>
280
+ MINUS property <code>bbb</code></span> or <span style="text-decoration: underline;">property <code>aaa-bbb</code></span>.</p>
281
+ <p>To avoid confusion, it's recommended to surround the subtraction operator (or
282
+ even better, all binary operators) with spaces. The expression <code>aaa - bbb</code>
283
+ always evaluates as a subtraction.</p>
284
+ <h3><a id="numeric-operators" />4.2 Operators on Numeric Values</h3>
285
+ <p>The following operators are supported on numeric values:</p>
286
+ <ul>
287
+ <li>
288
+ + operator
289
+ </li>
290
+ <li>
291
+ - operator
292
+ </li>
293
+ <li>
294
+ * operator
295
+ </li>
296
+ <li>
297
+ / operator
298
+ </li>
299
+ <li>
300
+ % operator
301
+ </li>
302
+ <li>
303
+ == operator
304
+ </li>
305
+ <li>
306
+ != operator
307
+ </li>
308
+ <li>
309
+ > operator
310
+ </li>
311
+ <li>
312
+ >= operator
313
+ </li>
314
+ <li>
315
+ &lt; operator
316
+ </li>
317
+ <li>
318
+ &lt;= operator
319
+ </li>
320
+ <li>
321
+ unary plus
322
+ </li>
323
+ <li>
324
+ unary minus (negation)
325
+ </li>
326
+ </ul>
327
+ <h4><a id="op-num-add" />4.2.1 Add</h4>
328
+ <h5>Summary</h5>
329
+ <p>
330
+ Returns the arithmetic sum of its operands.
331
+ </p>
332
+ <h5>Operands</h5>
333
+ <div class="table">
334
+ <table>
335
+ <colgroup>
336
+ <col />
337
+ <col />
338
+ <col />
339
+ </colgroup>
340
+ <tr>
341
+ <th>
342
+ Left Operand</th>
343
+ <th>
344
+ Right Operand</th>
345
+ <th>
346
+ Example</th>
347
+ </tr>
348
+ <tr>
349
+ <td>int</td>
350
+ <td>int</td>
351
+ <td>
352
+ <code>1 + 5</code> evaluates to <code>6</code>
353
+ </td>
354
+ </tr>
355
+ <tr>
356
+ <td>int</td>
357
+ <td>long</td>
358
+ <td>
359
+ <code>1 + 6666666667</code> evaluates to <code>6666666668</code>
360
+ </td>
361
+ </tr>
362
+ <tr>
363
+ <td>int</td>
364
+ <td>double</td>
365
+ <td>
366
+ <code>1 + 5.0</code> evaluates to <code>6.0</code>
367
+ </td>
368
+ </tr>
369
+ <tr>
370
+ <td>long</td>
371
+ <td>long</td>
372
+ <td>
373
+ <code>6666666667 + 11111111111</code> evaluates to <code>17777777778</code>
374
+ </td>
375
+ </tr>
376
+ <tr>
377
+ <td>long</td>
378
+ <td>int</td>
379
+ <td>
380
+ <code>6666666667 + 1</code> evaluates to <code>6666666668</code>
381
+ </td>
382
+ </tr>
383
+ <tr>
384
+ <td>long</td>
385
+ <td>double</td>
386
+ <td>
387
+ <code>6666666667 + 1.5</code> evaluates to <code>6666666668.5</code>
388
+ </td>
389
+ </tr>
390
+ <tr>
391
+ <td>double</td>
392
+ <td>double</td>
393
+ <td>
394
+ <code>1.5 + 5.0</code> evaluates to <code>6.5</code>
395
+ </td>
396
+ </tr>
397
+ <tr>
398
+ <td>double</td>
399
+ <td>int</td>
400
+ <td>
401
+ <code>1.0 + 5</code> evaluates to <code>6.0</code>
402
+ </td>
403
+ </tr>
404
+ <tr>
405
+ <td>double</td>
406
+ <td>long</td>
407
+ <td>
408
+ <code>1.5 + 6666666667</code> evaluates to <code>6666666668.5</code>
409
+ </td>
410
+ </tr>
411
+ </table>
412
+ </div>
413
+ <h4><a id="op-num-subtract" />4.2.2 Subtract</h4>
414
+ <h5>Summary</h5>
415
+ <p>
416
+ Returns the arithmetic difference of its operands.
417
+ </p>
418
+ <h5>Operands</h5>
419
+ <div class="table">
420
+ <table>
421
+ <colgroup>
422
+ <col />
423
+ <col />
424
+ <col />
425
+ </colgroup>
426
+ <tr>
427
+ <th>
428
+ Left Operand</th>
429
+ <th>
430
+ Right Operand</th>
431
+ <th>
432
+ Example</th>
433
+ </tr>
434
+ <tr>
435
+ <td>int</td>
436
+ <td>int</td>
437
+ <td>
438
+ <code>5 - 1</code> evaluates to <code>4</code>
439
+ </td>
440
+ </tr>
441
+ <tr>
442
+ <td>int</td>
443
+ <td>long</td>
444
+ <td>
445
+ <code>5 - 6666666667</code> evaluates to <code>-6666666662</code>
446
+ </td>
447
+ </tr>
448
+ <tr>
449
+ <td>int</td>
450
+ <td>double</td>
451
+ <td>
452
+ <code>5.0 - 1</code> evaluates to <code>4.0</code>
453
+ </td>
454
+ </tr>
455
+ <tr>
456
+ <td>long</td>
457
+ <td>long</td>
458
+ <td>
459
+ <code>11111111111 - 6666666667</code> evaluates to <code>4444444444</code>
460
+ </td>
461
+ </tr>
462
+ <tr>
463
+ <td>long</td>
464
+ <td>int</td>
465
+ <td>
466
+ <code>6666666667 - 5</code> evaluates to <code>6666666662</code>
467
+ </td>
468
+ </tr>
469
+ <tr>
470
+ <td>long</td>
471
+ <td>double</td>
472
+ <td>
473
+ <code>6666666667 - 1.5</code> evaluates to <code>6666666665.5</code>
474
+ </td>
475
+ </tr>
476
+ <tr>
477
+ <td>double</td>
478
+ <td>double</td>
479
+ <td>
480
+ <code>5.0 - 1.0</code> evaluates to <code>4.0</code>
481
+ </td>
482
+ </tr>
483
+ <tr>
484
+ <td>double</td>
485
+ <td>int</td>
486
+ <td>
487
+ <code>5.0 - 1</code> evaluates to <code>4.0</code>
488
+ </td>
489
+ </tr>
490
+ <tr>
491
+ <td>double</td>
492
+ <td>long</td>
493
+ <td>
494
+ <code>1.5 - 6666666667</code> evaluates to <code>-6666666665.5</code>
495
+ </td>
496
+ </tr>
497
+ </table>
498
+ </div>
499
+ <h4><a id="op-num-multiply" />4.2.3 Multiply</h4>
500
+ <h5>Summary</h5>
501
+ <p>
502
+ Returns the arithmetic product of its operands.
503
+ </p>
504
+ <h5>Operands</h5>
505
+ <div class="table">
506
+ <table>
507
+ <colgroup>
508
+ <col />
509
+ <col />
510
+ <col />
511
+ </colgroup>
512
+ <tr>
513
+ <th>
514
+ Left Operand</th>
515
+ <th>
516
+ Right Operand</th>
517
+ <th>
518
+ Example</th>
519
+ </tr>
520
+ <tr>
521
+ <td>int</td>
522
+ <td>int</td>
523
+ <td>
524
+ <code>5 * 2</code> evaluates to <code>10</code>
525
+ </td>
526
+ </tr>
527
+ <tr>
528
+ <td>int</td>
529
+ <td>long</td>
530
+ <td>
531
+ <code>2 * 6666666667</code> evaluates to <code>13333333334</code>
532
+ </td>
533
+ </tr>
534
+ <tr>
535
+ <td>int</td>
536
+ <td>double</td>
537
+ <td>
538
+ <code>5 * 2.0</code> evaluates to <code>10.0</code>
539
+ </td>
540
+ </tr>
541
+ <tr>
542
+ <td>long</td>
543
+ <td>long</td>
544
+ <td>
545
+ <code>6666666667 * long::parse('2')</code> evaluates to <code>13333333334</code>
546
+ </td>
547
+ </tr>
548
+ <tr>
549
+ <td>long</td>
550
+ <td>int</td>
551
+ <td>
552
+ <code>6666666667 * 2</code> evaluates to <code>13333333334</code>
553
+ </td>
554
+ </tr>
555
+ <tr>
556
+ <td>long</td>
557
+ <td>double</td>
558
+ <td>
559
+ <code>6666666667 * 1.7</code> evaluates to <code>11333333333.9</code>
560
+ </td>
561
+ </tr>
562
+ <tr>
563
+ <td>double</td>
564
+ <td>double</td>
565
+ <td>
566
+ <code>5.0 * 2.0</code> evaluates to <code>10.0</code>
567
+ </td>
568
+ </tr>
569
+ <tr>
570
+ <td>double</td>
571
+ <td>int</td>
572
+ <td>
573
+ <code>5.0 * 2</code> evaluates to <code>10.0</code>
574
+ </td>
575
+ </tr>
576
+ <tr>
577
+ <td>double</td>
578
+ <td>long</td>
579
+ <td>
580
+ <code>1.7 * 6666666667</code> evaluates to <code>11333333333.9</code>
581
+ </td>
582
+ </tr>
583
+ </table>
584
+ </div>
585
+ <h4><a id="op-num-divide" />4.2.4 Divide</h4>
586
+ <h5>Summary</h5>
587
+ <p>
588
+ Returns the arithmetic quotient of its operands.
589
+ </p>
590
+ <h5>Operands</h5>
591
+ <div class="table">
592
+ <table>
593
+ <colgroup>
594
+ <col />
595
+ <col />
596
+ <col />
597
+ </colgroup>
598
+ <tr>
599
+ <th>
600
+ Left Operand</th>
601
+ <th>
602
+ Right Operand</th>
603
+ <th>
604
+ Example</th>
605
+ </tr>
606
+ <tr>
607
+ <td>int</td>
608
+ <td>int</td>
609
+ <td>
610
+ <code>10 / 2</code> evaluates to <code>5</code>
611
+ </td>
612
+ </tr>
613
+ <tr>
614
+ <td>int</td>
615
+ <td>long</td>
616
+ <td>
617
+ <code>10 / 10000000000</code> evaluates to <code>0.000000001</code>
618
+ </td>
619
+ </tr>
620
+ <tr>
621
+ <td>int</td>
622
+ <td>double</td>
623
+ <td>
624
+ <code>8 / 2.0</code> evaluates to <code>4.0</code>
625
+ </td>
626
+ </tr>
627
+ <tr>
628
+ <td>long</td>
629
+ <td>long</td>
630
+ <td>
631
+ <code>13333333334 / 6666666667</code> evaluates to <code>2</code>
632
+ </td>
633
+ </tr>
634
+ <tr>
635
+ <td>long</td>
636
+ <td>int</td>
637
+ <td>
638
+ <code>13333333334 / 2</code> evaluates to <code>6666666667</code>
639
+ </td>
640
+ </tr>
641
+ <tr>
642
+ <td>long</td>
643
+ <td>double</td>
644
+ <td>
645
+ <code>13333333334 / 2.0</code> evaluates to <code>6666666667.0</code>
646
+ </td>
647
+ </tr>
648
+ <tr>
649
+ <td>double</td>
650
+ <td>double</td>
651
+ <td>
652
+ <code>9.0 / 2.0</code> evaluates to <code>4.5</code>
653
+ </td>
654
+ </tr>
655
+ <tr>
656
+ <td>double</td>
657
+ <td>int</td>
658
+ <td>
659
+ <code>6.0 / 3</code> evaluates to <code>2.0</code>
660
+ </td>
661
+ </tr>
662
+ <tr>
663
+ <td>double</td>
664
+ <td>long</td>
665
+ <td>
666
+ <code>20000000000.0 / 10000000000</code> evaluates to <code>2.0</code>
667
+ </td>
668
+ </tr>
669
+ </table>
670
+ </div>
671
+ <h5>Remarks</h5>
672
+ <p>
673
+ If the divisor is zero, then an error is raised.
674
+ </p>
675
+ <h4><a id="op-num-mod" />4.2.5 Mod</h4>
676
+ <h5>Summary</h5>
677
+ <p>
678
+ Returns the remainder after dividing its first operand by its second.
679
+ </p>
680
+ <h5>Operands</h5>
681
+ <div class="table">
682
+ <table>
683
+ <colgroup>
684
+ <col />
685
+ <col />
686
+ <col />
687
+ </colgroup>
688
+ <tr>
689
+ <th>
690
+ Left Operand</th>
691
+ <th>
692
+ Right Operand</th>
693
+ <th>
694
+ Example</th>
695
+ </tr>
696
+ <tr>
697
+ <td>int</td>
698
+ <td>int</td>
699
+ <td>
700
+ <code>5 % 3</code> evaluates to <code>2</code>
701
+ </td>
702
+ </tr>
703
+ <tr>
704
+ <td>int</td>
705
+ <td>long</td>
706
+ <td>
707
+ <code>10 % 6666666667</code> evaluates to <code>10</code>
708
+ </td>
709
+ </tr>
710
+ <tr>
711
+ <td>int</td>
712
+ <td>double</td>
713
+ <td>
714
+ <code>5 % 3.5</code> evaluates to <code>1.5</code>
715
+ </td>
716
+ </tr>
717
+ <tr>
718
+ <td>long</td>
719
+ <td>long</td>
720
+ <td>
721
+ <code>13333333334 % 6666666667</code> evaluates to <code>0</code>
722
+ </td>
723
+ </tr>
724
+ <tr>
725
+ <td>long</td>
726
+ <td>int</td>
727
+ <td>
728
+ <code>6666666667 % 10</code> evaluates to <code>7</code>
729
+ </td>
730
+ </tr>
731
+ <tr>
732
+ <td>long</td>
733
+ <td>double</td>
734
+ <td>
735
+ <code>6666666667 % 3.5</code> evaluates to <code>3.0</code>
736
+ </td>
737
+ </tr>
738
+ <tr>
739
+ <td>double</td>
740
+ <td>double</td>
741
+ <td>
742
+ <code>9.0 % 4.7</code> evaluates to <code>4.3</code>
743
+ </td>
744
+ </tr>
745
+ <tr>
746
+ <td>double</td>
747
+ <td>int</td>
748
+ <td>
749
+ <code>8.5 % 2</code> evaluates to <code>0.5</code>
750
+ </td>
751
+ </tr>
752
+ <tr>
753
+ <td>double</td>
754
+ <td>long</td>
755
+ <td>
756
+ <code>20000000000.0 % 6666666667</code> evaluates to <code>6666666666.0</code>
757
+ </td>
758
+ </tr>
759
+ </table>
760
+ </div>
761
+ <h5>Remarks</h5>
762
+ <p>
763
+ If the divisor is zero, then an error is raised.
764
+ </p>
765
+ <h4><a id="op-num-equal" />4.2.6 Equal</h4>
766
+ <h5>Summary</h5>
767
+ <p>
768
+ Returns <b>true</b> if and only if the value of the first operand is equal to the
769
+ value of the second operand.
770
+ </p>
771
+ <h5>Operands</h5>
772
+ <div class="table">
773
+ <table>
774
+ <colgroup>
775
+ <col />
776
+ <col />
777
+ <col />
778
+ </colgroup>
779
+ <tr>
780
+ <th>
781
+ Left Operand</th>
782
+ <th>
783
+ Right Operand</th>
784
+ <th>
785
+ Example</th>
786
+ </tr>
787
+ <tr>
788
+ <td>int</td>
789
+ <td>int</td>
790
+ <td>
791
+ <code>5 == 3</code> evaluates to <b>false</b>
792
+ </td>
793
+ </tr>
794
+ <tr>
795
+ <td>int</td>
796
+ <td>long</td>
797
+ <td>
798
+ <code>5 == 6666666667</code> evaluates to <b>false</b>
799
+ </td>
800
+ </tr>
801
+ <tr>
802
+ <td>int</td>
803
+ <td>double</td>
804
+ <td>
805
+ <code>6 == 6.0</code> evaluates to <b>true</b>
806
+ </td>
807
+ </tr>
808
+ <tr>
809
+ <td>long</td>
810
+ <td>long</td>
811
+ <td>
812
+ <code>6666666667 == 6666666667</code> evaluates to <b>true</b>
813
+ </td>
814
+ </tr>
815
+ <tr>
816
+ <td>long</td>
817
+ <td>int</td>
818
+ <td>
819
+ <code>6666666667 == 665</code> evaluates to <b>false</b>
820
+ </td>
821
+ </tr>
822
+ <tr>
823
+ <td>long</td>
824
+ <td>double</td>
825
+ <td>
826
+ <code>6666666667 == 6666666667.0</code> evaluates to <b>true</b>
827
+ </td>
828
+ </tr>
829
+ <tr>
830
+ <td>double</td>
831
+ <td>double</td>
832
+ <td>
833
+ <code>9.5 == 6.7</code> evaluates to <b>false</b>
834
+ </td>
835
+ </tr>
836
+ <tr>
837
+ <td>double</td>
838
+ <td>int</td>
839
+ <td>
840
+ <code>8.5 == 8</code> evaluates to <b>false</b>
841
+ </td>
842
+ </tr>
843
+ <tr>
844
+ <td>double</td>
845
+ <td>long</td>
846
+ <td>
847
+ <code>8.5 == 6666666667</code> evaluates to <b>false</b>
848
+ </td>
849
+ </tr>
850
+ </table>
851
+ </div>
852
+ <h4><a id="op-num-inequal" />4.2.7 Inequal</h4>
853
+ <h5>Summary</h5>
854
+ <p>
855
+ Returns <b>true</b> if and only if the value of the first operand is not equal to the
856
+ value of the second operand.
857
+ </p>
858
+ <h5>Operands</h5>
859
+ <div class="table">
860
+ <table>
861
+ <colgroup>
862
+ <col />
863
+ <col />
864
+ <col />
865
+ </colgroup>
866
+ <tr>
867
+ <th>
868
+ Left Operand</th>
869
+ <th>
870
+ Right Operand</th>
871
+ <th>
872
+ Example</th>
873
+ </tr>
874
+ <tr>
875
+ <td>int</td>
876
+ <td>int</td>
877
+ <td>
878
+ <code>5 != 3</code> evaluates to <b>true</b>
879
+ </td>
880
+ </tr>
881
+ <tr>
882
+ <td>int</td>
883
+ <td>long</td>
884
+ <td>
885
+ <code>5 != 6666666667</code> evaluates to <b>true</b>
886
+ </td>
887
+ </tr>
888
+ <tr>
889
+ <td>int</td>
890
+ <td>double</td>
891
+ <td>
892
+ <code>6 != 6.0</code> evaluates to <b>false</b>
893
+ </td>
894
+ </tr>
895
+ <tr>
896
+ <td>long</td>
897
+ <td>long</td>
898
+ <td>
899
+ <code>6666666667 != 6666666667</code> evaluates to <b>false</b>
900
+ </td>
901
+ </tr>
902
+ <tr>
903
+ <td>long</td>
904
+ <td>int</td>
905
+ <td>
906
+ <code>6666666667 != 665</code> evaluates to <b>true</b>
907
+ </td>
908
+ </tr>
909
+ <tr>
910
+ <td>long</td>
911
+ <td>double</td>
912
+ <td>
913
+ <code>6666666667 != 6666666667.0</code> evaluates to <b>false</b>
914
+ </td>
915
+ </tr>
916
+ <tr>
917
+ <td>double</td>
918
+ <td>double</td>
919
+ <td>
920
+ <code>9.5 != 6.7</code> evaluates to <b>true</b>
921
+ </td>
922
+ </tr>
923
+ <tr>
924
+ <td>double</td>
925
+ <td>int</td>
926
+ <td>
927
+ <code>8.5 != 8</code> evaluates to <b>true</b>
928
+ </td>
929
+ </tr>
930
+ <tr>
931
+ <td>double</td>
932
+ <td>long</td>
933
+ <td>
934
+ <code>8.5 != 6666666667</code> evaluates to <b>true</b>
935
+ </td>
936
+ </tr>
937
+ </table>
938
+ </div>
939
+ <h4><a id="op-num-greater-than" />4.2.8 Greater than</h4>
940
+ <h5>Summary</h5>
941
+ <p>
942
+ Returns <b>true</b> if and only if the first operand is greater than the
943
+ second operand.
944
+ </p>
945
+ <h5>Operands</h5>
946
+ <div class="table">
947
+ <table>
948
+ <colgroup>
949
+ <col />
950
+ <col />
951
+ <col />
952
+ </colgroup>
953
+ <tr>
954
+ <th>
955
+ Left Operand</th>
956
+ <th>
957
+ Right Operand</th>
958
+ <th>
959
+ Example</th>
960
+ </tr>
961
+ <tr>
962
+ <td>int</td>
963
+ <td>int</td>
964
+ <td>
965
+ <code>5 > 3</code> evaluates to <b>false</b>
966
+ </td>
967
+ </tr>
968
+ <tr>
969
+ <td>int</td>
970
+ <td>long</td>
971
+ <td>
972
+ <code>5 > 6666666667</code> evaluates to <b>false</b>
973
+ </td>
974
+ </tr>
975
+ <tr>
976
+ <td>int</td>
977
+ <td>double</td>
978
+ <td>
979
+ <code>6 > 4.0</code> evaluates to <b>true</b>
980
+ </td>
981
+ </tr>
982
+ <tr>
983
+ <td>long</td>
984
+ <td>long</td>
985
+ <td>
986
+ <code>6666666667 > 6666666667</code> evaluates to <b>false</b>
987
+ </td>
988
+ </tr>
989
+ <tr>
990
+ <td>long</td>
991
+ <td>int</td>
992
+ <td>
993
+ <code>6666666667 > 665</code> evaluates to <b>true</b>
994
+ </td>
995
+ </tr>
996
+ <tr>
997
+ <td>long</td>
998
+ <td>double</td>
999
+ <td>
1000
+ <code>6666666667 > 6666666667.0</code> evaluates to <b>false</b>
1001
+ </td>
1002
+ </tr>
1003
+ <tr>
1004
+ <td>double</td>
1005
+ <td>double</td>
1006
+ <td>
1007
+ <code>9.5 > 9.5</code> evaluates to <b>false</b>
1008
+ </td>
1009
+ </tr>
1010
+ <tr>
1011
+ <td>double</td>
1012
+ <td>int</td>
1013
+ <td>
1014
+ <code>8.3 > 9</code> evaluates to <b>false</b>
1015
+ </td>
1016
+ </tr>
1017
+ <tr>
1018
+ <td>double</td>
1019
+ <td>long</td>
1020
+ <td>
1021
+ <code>8.5 > 6666666667</code> evaluates to <b>false</b>
1022
+ </td>
1023
+ </tr>
1024
+ </table>
1025
+ </div>
1026
+ <h4><a id="op-num-greater-than-or-equal" />4.2.9 Greater than or equal</h4>
1027
+ <h5>Summary</h5>
1028
+ <p>
1029
+ Returns <b>true</b> if and only if the first operand is greater than or
1030
+ equal to second operand.
1031
+ </p>
1032
+ <h5>Operands</h5>
1033
+ <div class="table">
1034
+ <table>
1035
+ <colgroup>
1036
+ <col />
1037
+ <col />
1038
+ <col />
1039
+ </colgroup>
1040
+ <tr>
1041
+ <th>
1042
+ Left Operand</th>
1043
+ <th>
1044
+ Right Operand</th>
1045
+ <th>
1046
+ Example</th>
1047
+ </tr>
1048
+ <tr>
1049
+ <td>int</td>
1050
+ <td>int</td>
1051
+ <td>
1052
+ <code>5 >= 3</code> evaluates to <b>false</b>
1053
+ </td>
1054
+ </tr>
1055
+ <tr>
1056
+ <td>int</td>
1057
+ <td>long</td>
1058
+ <td>
1059
+ <code>5 >= 6666666667</code> evaluates to <b>false</b>
1060
+ </td>
1061
+ </tr>
1062
+ <tr>
1063
+ <td>int</td>
1064
+ <td>double</td>
1065
+ <td>
1066
+ <code>6 >= 4.0</code> evaluates to <b>true</b>
1067
+ </td>
1068
+ </tr>
1069
+ <tr>
1070
+ <td>long</td>
1071
+ <td>long</td>
1072
+ <td>
1073
+ <code>6666666667 >= 6666666667</code> evaluates to <b>true</b>
1074
+ </td>
1075
+ </tr>
1076
+ <tr>
1077
+ <td>long</td>
1078
+ <td>int</td>
1079
+ <td>
1080
+ <code>6666666667 >= 665</code> evaluates to <b>true</b>
1081
+ </td>
1082
+ </tr>
1083
+ <tr>
1084
+ <td>long</td>
1085
+ <td>double</td>
1086
+ <td>
1087
+ <code>6666666667 >= 6666666667.0</code> evaluates to <b>true</b>
1088
+ </td>
1089
+ </tr>
1090
+ <tr>
1091
+ <td>double</td>
1092
+ <td>double</td>
1093
+ <td>
1094
+ <code>9.5 >= 9.5</code> evaluates to <b>true</b>
1095
+ </td>
1096
+ </tr>
1097
+ <tr>
1098
+ <td>double</td>
1099
+ <td>int</td>
1100
+ <td>
1101
+ <code>8.3 >= 9</code> evaluates to <b>false</b>
1102
+ </td>
1103
+ </tr>
1104
+ <tr>
1105
+ <td>double</td>
1106
+ <td>long</td>
1107
+ <td>
1108
+ <code>8.5 >= 6666666667</code> evaluates to <b>false</b>
1109
+ </td>
1110
+ </tr>
1111
+ </table>
1112
+ </div>
1113
+ <h4><a id="op-num-less-than" />4.2.10 Less than</h4>
1114
+ <h5>Summary</h5>
1115
+ <p>
1116
+ Returns <b>true</b> if and only if the first operand is less than the
1117
+ second operand.
1118
+ </p>
1119
+ <h5>Operands</h5>
1120
+ <div class="table">
1121
+ <table>
1122
+ <colgroup>
1123
+ <col />
1124
+ <col />
1125
+ <col />
1126
+ </colgroup>
1127
+ <tr>
1128
+ <th>
1129
+ Left Operand</th>
1130
+ <th>
1131
+ Right Operand</th>
1132
+ <th>
1133
+ Example</th>
1134
+ </tr>
1135
+ <tr>
1136
+ <td>int</td>
1137
+ <td>int</td>
1138
+ <td>
1139
+ <code>5 &lt; 3</code> evaluates to <b>false</b>
1140
+ </td>
1141
+ </tr>
1142
+ <tr>
1143
+ <td>int</td>
1144
+ <td>long</td>
1145
+ <td>
1146
+ <code>5 &lt; 6666666667</code> evaluates to <b>true</b>
1147
+ </td>
1148
+ </tr>
1149
+ <tr>
1150
+ <td>int</td>
1151
+ <td>double</td>
1152
+ <td>
1153
+ <code>6 &lt; 7.0</code> evaluates to <b>true</b>
1154
+ </td>
1155
+ </tr>
1156
+ <tr>
1157
+ <td>long</td>
1158
+ <td>long</td>
1159
+ <td>
1160
+ <code>6666666667 &lt; 6666666667</code> evaluates to <b>false</b>
1161
+ </td>
1162
+ </tr>
1163
+ <tr>
1164
+ <td>long</td>
1165
+ <td>int</td>
1166
+ <td>
1167
+ <code>6666666667 &lt; 665</code> evaluates to <b>false</b>
1168
+ </td>
1169
+ </tr>
1170
+ <tr>
1171
+ <td>long</td>
1172
+ <td>double</td>
1173
+ <td>
1174
+ <code>6666666667 &lt; 6666666667.0</code> evaluates to <b>false</b>
1175
+ </td>
1176
+ </tr>
1177
+ <tr>
1178
+ <td>double</td>
1179
+ <td>double</td>
1180
+ <td>
1181
+ <code>9.5 &lt; 9.5</code> evaluates to <b>false</b>
1182
+ </td>
1183
+ </tr>
1184
+ <tr>
1185
+ <td>double</td>
1186
+ <td>int</td>
1187
+ <td>
1188
+ <code>8.3 &lt; 9</code> evaluates to <b>true</b>
1189
+ </td>
1190
+ </tr>
1191
+ <tr>
1192
+ <td>double</td>
1193
+ <td>long</td>
1194
+ <td>
1195
+ <code>8.5 &lt; 6666666667</code> evaluates to <b>true</b>
1196
+ </td>
1197
+ </tr>
1198
+ </table>
1199
+ </div>
1200
+ <h4><a id="op-num-less-than-or-equal" />4.2.11 Less than or equal</h4>
1201
+ <h5>Summary</h5>
1202
+ <p>
1203
+ Returns <b>true</b> if and only if the first operand is less than or
1204
+ equal to second operand.
1205
+ </p>
1206
+ <h5>Operands</h5>
1207
+ <div class="table">
1208
+ <table>
1209
+ <colgroup>
1210
+ <col />
1211
+ <col />
1212
+ <col />
1213
+ </colgroup>
1214
+ <tr>
1215
+ <th>
1216
+ Left Operand</th>
1217
+ <th>
1218
+ Right Operand</th>
1219
+ <th>
1220
+ Example</th>
1221
+ </tr>
1222
+ <tr>
1223
+ <td>int</td>
1224
+ <td>int</td>
1225
+ <td>
1226
+ <code>5 &lt;= 3</code> evaluates to <b>false</b>
1227
+ </td>
1228
+ </tr>
1229
+ <tr>
1230
+ <td>int</td>
1231
+ <td>long</td>
1232
+ <td>
1233
+ <code>5 &lt;= 6666666667</code> evaluates to <b>true</b>
1234
+ </td>
1235
+ </tr>
1236
+ <tr>
1237
+ <td>int</td>
1238
+ <td>double</td>
1239
+ <td>
1240
+ <code>6 &lt;= 7.0</code> evaluates to <b>true</b>
1241
+ </td>
1242
+ </tr>
1243
+ <tr>
1244
+ <td>long</td>
1245
+ <td>long</td>
1246
+ <td>
1247
+ <code>6666666667 &lt;= 6666666667</code> evaluates to <b>true</b>
1248
+ </td>
1249
+ </tr>
1250
+ <tr>
1251
+ <td>long</td>
1252
+ <td>int</td>
1253
+ <td>
1254
+ <code>6666666667 &lt;= 665</code> evaluates to <b>false</b>
1255
+ </td>
1256
+ </tr>
1257
+ <tr>
1258
+ <td>long</td>
1259
+ <td>double</td>
1260
+ <td>
1261
+ <code>6666666667 &lt;= 6666666667.0</code> evaluates to <b>true</b>
1262
+ </td>
1263
+ </tr>
1264
+ <tr>
1265
+ <td>double</td>
1266
+ <td>double</td>
1267
+ <td>
1268
+ <code>9.5 &lt;= 9.5</code> evaluates to <b>true</b>
1269
+ </td>
1270
+ </tr>
1271
+ <tr>
1272
+ <td>double</td>
1273
+ <td>int</td>
1274
+ <td>
1275
+ <code>8.3 &lt;= 9</code> evaluates to <b>true</b>
1276
+ </td>
1277
+ </tr>
1278
+ <tr>
1279
+ <td>double</td>
1280
+ <td>long</td>
1281
+ <td>
1282
+ <code>8.5 &lt;= 6666666667</code> evaluates to <b>true</b>
1283
+ </td>
1284
+ </tr>
1285
+ </table>
1286
+ </div>
1287
+ <h4><a id="op-num-unary-plus" />4.2.12 Unary plus</h4>
1288
+ <h5>Summary</h5>
1289
+ <p>
1290
+ Returns its operand with the sign unchanged. Semantically, this operation
1291
+ performs no operation.
1292
+ </p>
1293
+ <h5>Operands</h5>
1294
+ <div class="table">
1295
+ <table>
1296
+ <colgroup>
1297
+ <col />
1298
+ <col />
1299
+ <col />
1300
+ </colgroup>
1301
+ <tr>
1302
+ <th>
1303
+ Operand</th>
1304
+ <th>
1305
+ Example</th>
1306
+ </tr>
1307
+ <tr>
1308
+ <td>int</td>
1309
+ <td>
1310
+ <code>(+1)</code> evaluates to <code>1</code>
1311
+ </td>
1312
+ </tr>
1313
+ <tr>
1314
+ <td>long</td>
1315
+ <td>
1316
+ <code>(+6666666667)</code> evaluates to <code>6666666667</code>
1317
+ </td>
1318
+ </tr>
1319
+ <tr>
1320
+ <td>double</td>
1321
+ <td>
1322
+ <code>(+1.5)</code> evaluates to <code>1.5</code>
1323
+ </td>
1324
+ </tr>
1325
+ </table>
1326
+ </div>
1327
+ <h4><a id="op-num-unary-minus" />4.2.13 Unary minus</h4>
1328
+ <h5>Summary</h5>
1329
+ <p>
1330
+ Returns its operand with the sign reversed.
1331
+ </p>
1332
+ <p>
1333
+ If the operand is positive, its negative is returned; if it is negative, its
1334
+ positive is returned.
1335
+ </p>
1336
+ <h5>Operands</h5>
1337
+ <div class="table">
1338
+ <table>
1339
+ <colgroup>
1340
+ <col />
1341
+ <col />
1342
+ <col />
1343
+ </colgroup>
1344
+ <tr>
1345
+ <th>
1346
+ Operand</th>
1347
+ <th>
1348
+ Example</th>
1349
+ </tr>
1350
+ <tr>
1351
+ <td>int</td>
1352
+ <td>
1353
+ <code>(-1)</code> evaluates to <code>-1</code>
1354
+ </td>
1355
+ </tr>
1356
+ <tr>
1357
+ <td>long</td>
1358
+ <td>
1359
+ <code>(-6666666667)</code> evaluates to <code>-6666666667</code>
1360
+ </td>
1361
+ </tr>
1362
+ <tr>
1363
+ <td>double</td>
1364
+ <td>
1365
+ <code>(-9.6)</code> evaluates to <code>-9.6</code>
1366
+ </td>
1367
+ </tr>
1368
+ </table>
1369
+ </div>
1370
+ <h3><a id="boolean-operators" />4.3 Operators on Boolean Values</h3>
1371
+ <p>The following operators are supported on boolean values:</p>
1372
+ <ul>
1373
+ <li>
1374
+ == operator
1375
+ </li>
1376
+ <li>
1377
+ != operator
1378
+ </li>
1379
+ <li>
1380
+ > operator
1381
+ </li>
1382
+ <li>
1383
+ >= operator
1384
+ </li>
1385
+ <li>
1386
+ &lt; operator
1387
+ </li>
1388
+ <li>
1389
+ &lt;= operator
1390
+ </li>
1391
+ <li>
1392
+ and operator
1393
+ </li>
1394
+ <li>
1395
+ or operator
1396
+ </li>
1397
+ </ul>
1398
+ <h4><a id="op-boolean-equal" />4.3.1 Equal</h4>
1399
+ <h5>Summary</h5>
1400
+ <p>
1401
+ Returns <b>true</b> if both operands are <b>true</b> or if both
1402
+ operands are <b>false</b>.
1403
+ </p>
1404
+ <h5>Examples</h5>
1405
+ <h4><a id="op-boolean-inequal" />4.3.2 Inequal</h4>
1406
+ <h5>Summary</h5>
1407
+ <p>
1408
+ Returns <b>true</b> if the first operand is <b>true</b> and the
1409
+ second operand is <b>false</b>, or the first operand is <b>false</b>
1410
+ and the second operand is <b>true</b>.
1411
+ </p>
1412
+ <h5>Examples</h5>
1413
+ <h4><a id="op-boolean-greater-than" />4.3.3 Greater than</h4>
1414
+ <h5>Summary</h5>
1415
+ <p>
1416
+ Returns <b>true</b> if the first operand is <b>true</b> and the
1417
+ second operand is <b>false</b>; otherwise, returns <b>false</b>.
1418
+ </p>
1419
+ <h5>Examples</h5>
1420
+ <h4><a id="op-boolean-greater-than-or-equal" />4.3.4 Greater than or equal</h4>
1421
+ <h5>Summary</h5>
1422
+ <p>
1423
+ Returns <b>true</b> if the first operand is <b>true</b> and the
1424
+ second operand is <b>false</b>, or both operands are either <b>true</b>
1425
+ or <b>false</b>.
1426
+ </p>
1427
+ <h5>Examples</h5>
1428
+ <h4><a id="op-boolean-less-than" />4.3.5 Less than</h4>
1429
+ <h5>Summary</h5>
1430
+ <p>
1431
+ Returns <b>true</b> if the first operand is <b>false</b> and the
1432
+ second operand is <b>true</b>; otherwise, returns <b>false</b>.
1433
+ </p>
1434
+ <h5>Examples</h5>
1435
+ <h4><a id="op-boolean-less-than-or-equal" />4.3.6 Less than or equal</h4>
1436
+ <h5>Summary</h5>
1437
+ <p>
1438
+ Returns <b>true</b> if the first operand is <b>false</b> and the
1439
+ second operand is <b>true</b>, or both operands are either <b>true</b>
1440
+ or <b>false</b>.
1441
+ </p>
1442
+ <h5>Examples</h5>
1443
+ <h4><a id="op-boolean-logical-and" />4.3.7 Logical and</h4>
1444
+ <h5>Summary</h5>
1445
+ <p>
1446
+ Returns <b>true</b> if both operands are <b>true</b>,
1447
+ otherwise returns <b>false</b>.
1448
+ </p>
1449
+ <h5>Examples</h5>
1450
+ <p>
1451
+ <code>&lt;if test=&quot;${A and B}&quot;&gt;</code>
1452
+
1453
+ </p>
1454
+ <h4><a id="op-boolean-logical-or" />4.3.8 Logical or</h4>
1455
+ <h5>Summary</h5>
1456
+ <p>
1457
+ Returns <b>true</b> if either operand is <b>true</b>,
1458
+ otherwise returns <b>false</b>.
1459
+ </p>
1460
+ <h5>Examples</h5>
1461
+ <p>
1462
+ <code>&lt;if test=&quot;${A or B}&quot;&gt;</code>
1463
+ </p>
1464
+ <h3><a id="string-operators" />4.4 Operators on String Values</h3>
1465
+ <p>The following operators are supported on string values:</p>
1466
+ <ul>
1467
+ <li>
1468
+ + operator
1469
+ </li>
1470
+ <li>
1471
+ == operator
1472
+ </li>
1473
+ <li>
1474
+ != operator
1475
+ </li>
1476
+ <li>
1477
+ > operator
1478
+ </li>
1479
+ <li>
1480
+ >= operator
1481
+ </li>
1482
+ <li>
1483
+ &lt; operator
1484
+ </li>
1485
+ <li>
1486
+ &lt;= operator
1487
+ </li>
1488
+ </ul>
1489
+ <h4><a id="op-string-concat" />4.4.1 Concat</h4>
1490
+ <h5>Summary</h5>
1491
+ <p>
1492
+ Returns the concatenation of both string operands.
1493
+ </p>
1494
+ <h5>Examples</h5>
1495
+ <h4><a id="op-string-equal" />4.4.2 Equal</h4>
1496
+ <h5>Summary</h5>
1497
+ <p>
1498
+ Returns <b>true</b> if the value of the left operand is the same as the
1499
+ value of the right operand.
1500
+ </p>
1501
+ <h5>Remarks</h5>
1502
+ <p>
1503
+ The comparison is case-sensitive and culture-insensitive.
1504
+ </p>
1505
+ <h4><a id="op-string-inequal" />4.4.3 Inequal</h4>
1506
+ <h5>Summary</h5>
1507
+ <p>
1508
+ Returns <b>true</b> if the value of the first operand is not the same as
1509
+ the value of the second operand.
1510
+ </p>
1511
+ <h5>Remarks</h5>
1512
+ <p>
1513
+ The comparison is case-sensitive and culture-insensitive.
1514
+ </p>
1515
+ <h4><a id="op-string-greater-than" />4.4.4 Greater than</h4>
1516
+ <h5>Summary</h5>
1517
+ <p>
1518
+ Returns <b>true</b> if the first operand is greater than the seconds
1519
+ operand.
1520
+ </p>
1521
+ <h5>Remarks</h5>
1522
+ <p>
1523
+ The comparison is case-sensitive and culture-insensitive.
1524
+ </p>
1525
+ <h4><a id="op-string-greater-than-or-equal" />4.4.5 Greater than or equal</h4>
1526
+ <h5>Summary</h5>
1527
+ <p>
1528
+ Returns <b>true</b> if the first operand is greater than or equal to the
1529
+ seconds operand.
1530
+ </p>
1531
+ <h5>Remarks</h5>
1532
+ <p>
1533
+ The comparison is case-sensitive and culture-insensitive.
1534
+ </p>
1535
+ <h4><a id="op-string-less-than" />4.4.6 Less than</h4>
1536
+ <h5>Summary</h5>
1537
+ <p>
1538
+ Returns <b>true</b> if the first operand is less than the seconds
1539
+ operand.
1540
+ </p>
1541
+ <h5>Remarks</h5>
1542
+ <p>
1543
+ The comparison is case-sensitive and culture-insensitive.
1544
+ </p>
1545
+ <h4><a id="op-string-less-than-or-equal" />4.4.7 Less than or equal</h4>
1546
+ <h5>Summary</h5>
1547
+ <p>
1548
+ Returns <b>true</b> if the first operand is less than or equal to the
1549
+ seconds operand.
1550
+ </p>
1551
+ <h5>Remarks</h5>
1552
+ <p>
1553
+ The comparison is case-sensitive and culture-insensitive.
1554
+ </p>
1555
+ <h3><a id="datetime-operators" />4.5 Operators on TimeSpan and DateTime Values</h3>
1556
+ <p>The following operators are supported on timespan and datetime values:</p>
1557
+ <ul>
1558
+ <li>
1559
+ + operator
1560
+ </li>
1561
+ <li>
1562
+ - operator
1563
+ </li>
1564
+ <li>
1565
+ == operator
1566
+ </li>
1567
+ <li>
1568
+ != operator
1569
+ </li>
1570
+ <li>
1571
+ > operator
1572
+ </li>
1573
+ <li>
1574
+ >= operator
1575
+ </li>
1576
+ <li>
1577
+ &lt; operator
1578
+ </li>
1579
+ <li>
1580
+ &lt;= operator
1581
+ </li>
1582
+ </ul>
1583
+ <h4><a id="op-datetime-add" />4.5.1 Add</h4>
1584
+ <h5>Summary</h5>
1585
+ <p>
1586
+ Returns the result of adding the value of the left operand to the value of the
1587
+ right operand.
1588
+ </p>
1589
+ <h5>Operands</h5>
1590
+ <div class="table">
1591
+ <table>
1592
+ <colgroup>
1593
+ <col />
1594
+ <col />
1595
+ <col />
1596
+ </colgroup>
1597
+ <tr>
1598
+ <th>
1599
+ Left Operand</th>
1600
+ <th>
1601
+ Right Operand</th>
1602
+ <th>
1603
+ Example</th>
1604
+ </tr>
1605
+ <tr>
1606
+ <td>datetime</td>
1607
+ <td>timespan</td>
1608
+ <td>
1609
+ <code>datetime::now() + timespan::from-days(10)</code>
1610
+ evaluates to a datetime 10 days in the future
1611
+ </td>
1612
+ </tr>
1613
+ <tr>
1614
+ <td>timespan</td>
1615
+ <td>timespan</td>
1616
+ <td>
1617
+ <code>timespan::from-seconds(30) + timespan::from-minutes(10)</code>
1618
+ evaluates to a timespan representing a duratio of 10 minutes and 30
1619
+ seconds
1620
+ </td>
1621
+ </tr>
1622
+ </table>
1623
+ </div>
1624
+ <h4><a id="op-datetime-subtract" />4.5.2 Subtract</h4>
1625
+ <h5>Summary</h5>
1626
+ <p>
1627
+ Returns the result of subtracting the value of the right operand
1628
+ from the value of the left operand.
1629
+ </p>
1630
+ <h5>Operands</h5>
1631
+ <div class="table">
1632
+ <table>
1633
+ <colgroup>
1634
+ <col />
1635
+ <col />
1636
+ <col />
1637
+ </colgroup>
1638
+ <tr>
1639
+ <th>
1640
+ Left Operand</th>
1641
+ <th>
1642
+ Right Operand</th>
1643
+ <th>
1644
+ Example</th>
1645
+ </tr>
1646
+ <tr>
1647
+ <td>datetime</td>
1648
+ <td>datetime</td>
1649
+ <td>
1650
+ <code>(datetime::now() + timespan::from-days(10)) - datetime::now</code>
1651
+ evaluates to a timespan representing a duration of 10 days
1652
+ </td>
1653
+ </tr>
1654
+ <tr>
1655
+ <td>datetime</td>
1656
+ <td>timespan</td>
1657
+ <td>
1658
+ <code>datetime::now() - timespan::from-days(3)</code> evaluates
1659
+ to a datetime 3 days in the past
1660
+ </td>
1661
+ </tr>
1662
+ <tr>
1663
+ <td>timespan</td>
1664
+ <td>timespan</td>
1665
+ <td>
1666
+ <code>timespan::from-minutes(15) - timespan::from-minutes(10)</code> evaluates
1667
+ to a timespan representing 5 minutes
1668
+ </td>
1669
+ </tr>
1670
+ </table>
1671
+ </div>
1672
+ <h4><a id="op-datetime-equal" />4.5.3 Equal</h4>
1673
+ <h5>Summary</h5>
1674
+ <p>
1675
+ Returns <b>true</b> if the value of the left operand is the same as the
1676
+ value of the right operand.
1677
+ </p>
1678
+ <h5>Operands</h5>
1679
+ <div class="table">
1680
+ <table>
1681
+ <colgroup>
1682
+ <col />
1683
+ <col />
1684
+ <col />
1685
+ </colgroup>
1686
+ <tr>
1687
+ <th>
1688
+ Left Operand</th>
1689
+ <th>
1690
+ Right Operand</th>
1691
+ <th>
1692
+ Example</th>
1693
+ </tr>
1694
+ <tr>
1695
+ <td>datetime</td>
1696
+ <td>datetime</td>
1697
+ <td>
1698
+ <code>datetime::now() == (datetime::now() + timespan::from-days(10))</code> evaluates
1699
+ to <b>false</b>
1700
+ </td>
1701
+ </tr>
1702
+ <tr>
1703
+ <td>timespan</td>
1704
+ <td>timespan</td>
1705
+ <td>
1706
+ <code>timespan::from-seconds(30) == timespan::from-seconds(30)</code> evaluates
1707
+ to <b>true</b>
1708
+ </td>
1709
+ </tr>
1710
+ </table>
1711
+ </div>
1712
+ <h4><a id="op-datetime-inequal" />4.5.4 Inequal</h4>
1713
+ <h5>Summary</h5>
1714
+ <p>
1715
+ Returns <b>true</b> if the value of the left operand is not the same as
1716
+ the value of the right operand.
1717
+ </p>
1718
+ <h5>Operands</h5>
1719
+ <div class="table">
1720
+ <table>
1721
+ <colgroup>
1722
+ <col />
1723
+ <col />
1724
+ <col />
1725
+ </colgroup>
1726
+ <tr>
1727
+ <th>
1728
+ Left Operand</th>
1729
+ <th>
1730
+ Right Operand</th>
1731
+ <th>
1732
+ Example</th>
1733
+ </tr>
1734
+ <tr>
1735
+ <td>datetime</td>
1736
+ <td>datetime</td>
1737
+ <td>
1738
+ <code>datetime::now() != (datetime::now() + timespan::from-days(10))</code> evaluates
1739
+ to <b>true</b>
1740
+ </td>
1741
+ </tr>
1742
+ <tr>
1743
+ <td>timespan</td>
1744
+ <td>timespan</td>
1745
+ <td>
1746
+ <code>timespan::from-seconds(30) != timespan::from-seconds(30)</code> evaluates
1747
+ to <b>false</b>
1748
+ </td>
1749
+ </tr>
1750
+ </table>
1751
+ </div>
1752
+ <h4><a id="op-datetime-greater-than" />4.5.5 Greater than</h4>
1753
+ <h5>Summary</h5>
1754
+ <p>
1755
+ Returns <b>true</b> if the value of the left operand is greater than the
1756
+ value of the right operand.
1757
+ </p>
1758
+ <h5>Operands</h5>
1759
+ <div class="table">
1760
+ <table>
1761
+ <colgroup>
1762
+ <col />
1763
+ <col />
1764
+ <col />
1765
+ </colgroup>
1766
+ <tr>
1767
+ <th>
1768
+ Left Operand</th>
1769
+ <th>
1770
+ Right Operand</th>
1771
+ <th>
1772
+ Example</th>
1773
+ </tr>
1774
+ <tr>
1775
+ <td>datetime</td>
1776
+ <td>datetime</td>
1777
+ <td>
1778
+ <code>datetime::now() > (datetime::now() + timespan::from-days(10))</code> evaluates
1779
+ to <b>false</b>
1780
+ </td>
1781
+ </tr>
1782
+ <tr>
1783
+ <td>timespan</td>
1784
+ <td>timespan</td>
1785
+ <td>
1786
+ <code>timespan::from-seconds(30) > timespan::from-seconds(30)</code> evaluates
1787
+ to <b>false</b>
1788
+ </td>
1789
+ </tr>
1790
+ </table>
1791
+ </div>
1792
+ <h4><a id="op-datetime-greater-than-or-equal" />4.5.6 Greater than or equal</h4>
1793
+ <h5>Summary</h5>
1794
+ <p>
1795
+ Returns <b>true</b> if the value of the left operand is greater than or
1796
+ equal to the value of the right operand.
1797
+ </p>
1798
+ <h5>Operands</h5>
1799
+ <div class="table">
1800
+ <table>
1801
+ <colgroup>
1802
+ <col />
1803
+ <col />
1804
+ <col />
1805
+ </colgroup>
1806
+ <tr>
1807
+ <th>
1808
+ Left Operand</th>
1809
+ <th>
1810
+ Right Operand</th>
1811
+ <th>
1812
+ Example</th>
1813
+ </tr>
1814
+ <tr>
1815
+ <td>datetime</td>
1816
+ <td>datetime</td>
1817
+ <td>
1818
+ <code>datetime::now() >= (datetime::now() + timespan::from-days(10))</code> evaluates
1819
+ to <b>false</b>
1820
+ </td>
1821
+ </tr>
1822
+ <tr>
1823
+ <td>timespan</td>
1824
+ <td>timespan</td>
1825
+ <td>
1826
+ <code>timespan::from-seconds(30) >= timespan::from-seconds(30)</code> evaluates
1827
+ to <b>true</b>
1828
+ </td>
1829
+ </tr>
1830
+ </table>
1831
+ </div>
1832
+ <h4><a id="op-datetime-less-than" />4.5.7 Less than</h4>
1833
+ <h5>Summary</h5>
1834
+ <p>
1835
+ Returns <b>true</b> if the value of the left operand is less than the
1836
+ value of the right operand.
1837
+ </p>
1838
+ <h5>Operands</h5>
1839
+ <div class="table">
1840
+ <table>
1841
+ <colgroup>
1842
+ <col />
1843
+ <col />
1844
+ <col />
1845
+ </colgroup>
1846
+ <tr>
1847
+ <th>
1848
+ Left Operand</th>
1849
+ <th>
1850
+ Right Operand</th>
1851
+ <th>
1852
+ Example</th>
1853
+ </tr>
1854
+ <tr>
1855
+ <td>datetime</td>
1856
+ <td>datetime</td>
1857
+ <td>
1858
+ <code>datetime::now() &lt; (datetime::now() + timespan::from-days(10))</code> evaluates
1859
+ to <b>true</b>
1860
+ </td>
1861
+ </tr>
1862
+ <tr>
1863
+ <td>timespan</td>
1864
+ <td>timespan</td>
1865
+ <td>
1866
+ <code>timespan::from-seconds(30) &lt; timespan::from-seconds(30)</code> evaluates
1867
+ to <b>false</b>
1868
+ </td>
1869
+ </tr>
1870
+ </table>
1871
+ </div>
1872
+ <h4><a id="op-datetime-less-than-or-equal" />4.5.8 Less than or equal</h4>
1873
+ <h5>Summary</h5>
1874
+ <p>
1875
+ Returns <b>true</b> if the value of the left operand is less than the
1876
+ value of the right operand.
1877
+ </p>
1878
+ <h5>Operands</h5>
1879
+ <div class="table">
1880
+ <table>
1881
+ <colgroup>
1882
+ <col />
1883
+ <col />
1884
+ <col />
1885
+ </colgroup>
1886
+ <tr>
1887
+ <th>
1888
+ Left Operand</th>
1889
+ <th>
1890
+ Right Operand</th>
1891
+ <th>
1892
+ Example</th>
1893
+ </tr>
1894
+ <tr>
1895
+ <td>datetime</td>
1896
+ <td>datetime</td>
1897
+ <td>
1898
+ <code>datetime::now() &lt;= (datetime::now() + timespan::from-days(10))</code> evaluates
1899
+ to <b>true</b>
1900
+ </td>
1901
+ </tr>
1902
+ <tr>
1903
+ <td>timespan</td>
1904
+ <td>timespan</td>
1905
+ <td>
1906
+ <code>timespan::from-seconds(30) &lt;= timespan::from-seconds(30)</code> evaluates
1907
+ to <b>true</b>
1908
+ </td>
1909
+ </tr>
1910
+ </table>
1911
+ </div>
1912
+ <h3><a id="version-operators" />4.6 Operators on Version Values</h3>
1913
+ <p>The following operators are supported on version values:</p>
1914
+ <ul>
1915
+ <li>
1916
+ == operator
1917
+ </li>
1918
+ <li>
1919
+ != operator
1920
+ </li>
1921
+ <li>
1922
+ > operator
1923
+ </li>
1924
+ <li>
1925
+ >= operator
1926
+ </li>
1927
+ <li>
1928
+ &lt; operator
1929
+ </li>
1930
+ <li>
1931
+ &lt;= operator
1932
+ </li>
1933
+ </ul>
1934
+ <h4><a id="op-version-equal" />4.6.1 Equal</h4>
1935
+ <h5>Summary</h5>
1936
+ <p>
1937
+ Returns <b>true</b> if the value of the left operand is the same as the
1938
+ value of the right operand.
1939
+ </p>
1940
+ <h5>Operands</h5>
1941
+ <div class="table">
1942
+ <table>
1943
+ <colgroup>
1944
+ <col />
1945
+ <col />
1946
+ <col />
1947
+ </colgroup>
1948
+ <tr>
1949
+ <th>
1950
+ Left Operand</th>
1951
+ <th>
1952
+ Right Operand</th>
1953
+ <th>
1954
+ Example</th>
1955
+ </tr>
1956
+ <tr>
1957
+ <td>version</td>
1958
+ <td>version</td>
1959
+ <td>
1960
+ <code>version::parse('1.2') == version::parse('1.2')</code> evaluates
1961
+ to <b>true</b>
1962
+ </td>
1963
+ </tr>
1964
+ </table>
1965
+ </div>
1966
+ <h4><a id="op-version-inequal" />4.6.2 Inequal</h4>
1967
+ <h5>Summary</h5>
1968
+ <p>
1969
+ Returns <b>true</b> if the value of the left operand is not the same as
1970
+ the value of the right operand.
1971
+ </p>
1972
+ <h5>Operands</h5>
1973
+ <div class="table">
1974
+ <table>
1975
+ <colgroup>
1976
+ <col />
1977
+ <col />
1978
+ <col />
1979
+ </colgroup>
1980
+ <tr>
1981
+ <th>
1982
+ Left Operand</th>
1983
+ <th>
1984
+ Right Operand</th>
1985
+ <th>
1986
+ Example</th>
1987
+ </tr>
1988
+ <tr>
1989
+ <td>version</td>
1990
+ <td>version</td>
1991
+ <td>
1992
+ <code>version::parse('1.2') != version::parse('1.3.1')</code> evaluates
1993
+ to <b>true</b>
1994
+ </td>
1995
+ </tr>
1996
+ </table>
1997
+ </div>
1998
+ <h4><a id="op-version-greather-than" />4.6.3 Greater than</h4>
1999
+ <h5>Summary</h5>
2000
+ <p>
2001
+ Returns <b>true</b> if the value of the left operand is greater than the
2002
+ value of the right operand.
2003
+ </p>
2004
+ <h5>Operands</h5>
2005
+ <div class="table">
2006
+ <table>
2007
+ <colgroup>
2008
+ <col />
2009
+ <col />
2010
+ <col />
2011
+ </colgroup>
2012
+ <tr>
2013
+ <th>
2014
+ Left Operand</th>
2015
+ <th>
2016
+ Right Operand</th>
2017
+ <th>
2018
+ Example</th>
2019
+ </tr>
2020
+ <tr>
2021
+ <td>version</td>
2022
+ <td>version</td>
2023
+ <td>
2024
+ <code>version::parse('1.2') > version::parse('1.3.1')</code> evaluates
2025
+ to <b>false</b>
2026
+ </td>
2027
+ </tr>
2028
+ </table>
2029
+ </div>
2030
+ <h4><a id="op-version-greater-than-or-equal" />4.6.4 Greater than or equal</h4>
2031
+ <h5>Summary</h5>
2032
+ <p>
2033
+ Returns <b>true</b> if the value of the left operand is greater than or
2034
+ equal to the value of the right operand.
2035
+ </p>
2036
+ <h5>Operands</h5>
2037
+ <div class="table">
2038
+ <table>
2039
+ <colgroup>
2040
+ <col />
2041
+ <col />
2042
+ <col />
2043
+ </colgroup>
2044
+ <tr>
2045
+ <th>
2046
+ Left Operand</th>
2047
+ <th>
2048
+ Right Operand</th>
2049
+ <th>
2050
+ Example</th>
2051
+ </tr>
2052
+ <tr>
2053
+ <td>version</td>
2054
+ <td>version</td>
2055
+ <td>
2056
+ <code>version::parse('1.2') >= version::parse('1.2')</code> evaluates
2057
+ to <b>true</b>
2058
+ </td>
2059
+ </tr>
2060
+ </table>
2061
+ </div>
2062
+ <h4><a id="op-version-less-than" />4.6.5 Less than</h4>
2063
+ <h5>Summary</h5>
2064
+ <p>
2065
+ Returns <b>true</b> if the value of the left operand is less than the
2066
+ value of the right operand.
2067
+ </p>
2068
+ <h5>Operands</h5>
2069
+ <div class="table">
2070
+ <table>
2071
+ <colgroup>
2072
+ <col />
2073
+ <col />
2074
+ <col />
2075
+ </colgroup>
2076
+ <tr>
2077
+ <th>
2078
+ Left Operand</th>
2079
+ <th>
2080
+ Right Operand</th>
2081
+ <th>
2082
+ Example</th>
2083
+ </tr>
2084
+ <tr>
2085
+ <td>version</td>
2086
+ <td>version</td>
2087
+ <td>
2088
+ <code>version::parse('1.2') &lt; version::parse('1.3.1')</code> evaluates
2089
+ to <b>true</b>
2090
+ </td>
2091
+ </tr>
2092
+ </table>
2093
+ </div>
2094
+ <h4><a id="op-version-less-than-or-equal" />4.6.6 Less than or equal</h4>
2095
+ <h5>Summary</h5>
2096
+ <p>
2097
+ Returns <b>true</b> if the value of the left operand is less than or
2098
+ equal to the value of the right operand.
2099
+ </p>
2100
+ <h5>Operands</h5>
2101
+ <div class="table">
2102
+ <table>
2103
+ <colgroup>
2104
+ <col />
2105
+ <col />
2106
+ <col />
2107
+ </colgroup>
2108
+ <tr>
2109
+ <th>
2110
+ Left Operand</th>
2111
+ <th>
2112
+ Right Operand</th>
2113
+ <th>
2114
+ Example</th>
2115
+ </tr>
2116
+ <tr>
2117
+ <td>version</td>
2118
+ <td>version</td>
2119
+ <td>
2120
+ <code>version::parse('1.2') &lt;= version::parse('1.2')</code> evaluates
2121
+ to <b>true</b>
2122
+ </td>
2123
+ </tr>
2124
+ </table>
2125
+ </div>
2126
+ </body>
2127
+ </html>