aboutsummaryrefslogtreecommitdiff
path: root/challenge-110/abigail/lua
diff options
context:
space:
mode:
Diffstat (limited to 'challenge-110/abigail/lua')
-rw-r--r--challenge-110/abigail/lua/ch-1.lua24
-rw-r--r--challenge-110/abigail/lua/ch-2.lua32
2 files changed, 56 insertions, 0 deletions
diff --git a/challenge-110/abigail/lua/ch-1.lua b/challenge-110/abigail/lua/ch-1.lua
new file mode 100644
index 0000000000..a118074744
--- /dev/null
+++ b/challenge-110/abigail/lua/ch-1.lua
@@ -0,0 +1,24 @@
+#!/opt/local/bin/lua
+
+--
+-- See ../README.md
+--
+
+--
+-- Run as: lua ch-1.lua < input-file
+--
+
+for line in io . lines () do
+ local number = line : gsub (" ", "") -- Remove spaces
+ if -- nnnn nnnnnnnnnn
+ number : find ("^[0-9][0-9][0-9][0-9][0-9][0-9][0-9]" ..
+ "[0-9][0-9][0-9][0-9][0-9][0-9][0-9]$") or
+ -- +nn nnnnnnnnnn
+ number : find ("^%+[0-9][0-9][0-9][0-9][0-9]" ..
+ "[0-9][0-9][0-9][0-9][0-9][0-9][0-9]$") or
+ -- (nn) nnnnnnnnnn
+ number : find ("^%([0-9][0-9]%)[0-9][0-9][0-9]" ..
+ "[0-9][0-9][0-9][0-9][0-9][0-9][0-9]$")
+ then print (line)
+ end
+end
diff --git a/challenge-110/abigail/lua/ch-2.lua b/challenge-110/abigail/lua/ch-2.lua
new file mode 100644
index 0000000000..627fb8176a
--- /dev/null
+++ b/challenge-110/abigail/lua/ch-2.lua
@@ -0,0 +1,32 @@
+#!/opt/local/bin/lua
+
+--
+-- See ../README.md
+--
+
+--
+-- Run as: lua ch-2.lua < input-file
+--
+
+--
+-- Read in the input, split each line on commas, and create
+-- the ouput strings from the split field.
+--
+local output = {}
+for line in io . lines () do
+ local i = 1
+ for field in line : gmatch ("[^,\n]+")
+ do if output [i] == nil
+ then output [i] = ""
+ end
+ output [i] = output [i] .. field .. ","
+ i = i + 1
+ end
+end
+
+--
+-- Print the output
+--
+for _, line in ipairs (output)
+do print (line : sub (1, -2))
+end