nant 0.9.0

Sign up to get free protection for your applications and to get access to all the features.
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>