aboutsummaryrefslogtreecommitdiff
path: root/challenge-250/deadmarshal/modula-3/ch2/src
diff options
context:
space:
mode:
authordeadmarshal <adeadmarshal@gmail.com>2024-01-02 02:29:50 -0500
committerdeadmarshal <adeadmarshal@gmail.com>2024-01-02 02:29:50 -0500
commit754a0f9cce2dc07a97609f2b8bc642dfee61930f (patch)
tree7bd79339617fc14720b3bc79d52453563b6e06e9 /challenge-250/deadmarshal/modula-3/ch2/src
parent5f38c976cae9103ec02e413224d047d8b149956d (diff)
downloadperlweeklychallenge-club-754a0f9cce2dc07a97609f2b8bc642dfee61930f.tar.gz
perlweeklychallenge-club-754a0f9cce2dc07a97609f2b8bc642dfee61930f.tar.bz2
perlweeklychallenge-club-754a0f9cce2dc07a97609f2b8bc642dfee61930f.zip
TWC250
Diffstat (limited to 'challenge-250/deadmarshal/modula-3/ch2/src')
-rw-r--r--challenge-250/deadmarshal/modula-3/ch2/src/Ch2.m333
-rw-r--r--challenge-250/deadmarshal/modula-3/ch2/src/m3makefile4
2 files changed, 37 insertions, 0 deletions
diff --git a/challenge-250/deadmarshal/modula-3/ch2/src/Ch2.m3 b/challenge-250/deadmarshal/modula-3/ch2/src/Ch2.m3
new file mode 100644
index 0000000000..a56c7abe42
--- /dev/null
+++ b/challenge-250/deadmarshal/modula-3/ch2/src/Ch2.m3
@@ -0,0 +1,33 @@
+MODULE Ch2 EXPORTS Main;
+
+IMPORT IO,Text,Scan;
+
+VAR
+ A1 := ARRAY[0..4] OF TEXT{"perl","2","000","python","r4ku"};
+ A2 := ARRAY[0..3] OF TEXT{"001","1","000","0001"};
+
+PROCEDURE IsNumeric(VAR t:TEXT):BOOLEAN =
+ BEGIN
+ FOR I := 0 TO Text.Length(t)-1 DO
+ IF NOT Text.GetChar(t,I) IN SET OF CHAR{'0'..'9'} THEN RETURN FALSE END
+ END;
+ RETURN TRUE
+ END IsNumeric;
+
+PROCEDURE AlphanumericStringValue(VAR A:ARRAY OF TEXT):CARDINAL =
+ VAR Max,N:CARDINAL := 0;
+ BEGIN
+ FOR I := FIRST(A) TO LAST(A) DO
+ IF IsNumeric(A[I]) THEN N := Scan.Unsigned(A[I],10)
+ ELSE N := Text.Length(A[I])
+ END;
+ IF N > Max THEN Max := N END
+ END;
+ RETURN Max
+ END AlphanumericStringValue;
+
+BEGIN
+ IO.PutInt(AlphanumericStringValue(A1)); IO.Put("\n");
+ IO.PutInt(AlphanumericStringValue(A2)); IO.Put("\n");
+END Ch2.
+
diff --git a/challenge-250/deadmarshal/modula-3/ch2/src/m3makefile b/challenge-250/deadmarshal/modula-3/ch2/src/m3makefile
new file mode 100644
index 0000000000..5c32bbc4bb
--- /dev/null
+++ b/challenge-250/deadmarshal/modula-3/ch2/src/m3makefile
@@ -0,0 +1,4 @@
+import("libm3")
+implementation("Ch2")
+program("ch2")
+