aboutsummaryrefslogtreecommitdiff
path: root/pkg/utilities/nttools/tjoin/isnumber.x
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/utilities/nttools/tjoin/isnumber.x')
-rw-r--r--pkg/utilities/nttools/tjoin/isnumber.x35
1 files changed, 35 insertions, 0 deletions
diff --git a/pkg/utilities/nttools/tjoin/isnumber.x b/pkg/utilities/nttools/tjoin/isnumber.x
new file mode 100644
index 00000000..3efb0dba
--- /dev/null
+++ b/pkg/utilities/nttools/tjoin/isnumber.x
@@ -0,0 +1,35 @@
+include <ctype.h>
+include <lexnum.h>
+
+# B.Simon 16-Apr-99 first code
+
+# IS_NUMBER -- Test string to see if it represents a number
+
+bool procedure is_number (str)
+
+char str[ARB] # i: String to be tested
+#--
+int ic, nc, type
+int lexnum()
+
+begin
+ # Use lexnum to determine string type
+
+ ic = 1
+ type = lexnum (str, ic, nc)
+
+ # Any non-white characters after the number
+ # indicate this is not a number
+
+ ic = ic + nc
+ while (str[ic] != EOS) {
+ if (! IS_WHITE(str[ic]))
+ return (false)
+
+ ic = ic + 1
+ }
+
+ # Test for numeric types and return result of test
+
+ return (type == LEX_OCTAL || type == LEX_DECIMAL || type == LEX_REAL)
+end