summaryrefslogtreecommitdiff
path: root/filter-by-rule-shape
diff options
context:
space:
mode:
authorPatrick Simianer <p@simianer.de>2016-07-05 11:01:46 +0200
committerPatrick Simianer <p@simianer.de>2016-07-05 11:01:46 +0200
commit2b1d7f881c19c4d4b5afae194e02d3300c7675d0 (patch)
tree5a06ee7de98640a39244b57bb369697176b44ebf /filter-by-rule-shape
parent69949dda35c3ea21d8e926e5f0a596a0a0f61c6a (diff)
mv
Diffstat (limited to 'filter-by-rule-shape')
-rwxr-xr-xfilter-by-rule-shape32
1 files changed, 32 insertions, 0 deletions
diff --git a/filter-by-rule-shape b/filter-by-rule-shape
new file mode 100755
index 0000000..695edec
--- /dev/null
+++ b/filter-by-rule-shape
@@ -0,0 +1,32 @@
+#!/usr/bin/env ruby
+
+STDIN.set_encoding 'utf-8'
+STDOUT.set_encoding 'utf-8'
+
+def shape s
+ res = []
+ in_t = false
+ s.split.each { |i|
+ if i.match /\A\[X,\d\]\z/
+ if in_t
+ in_t = false
+ end
+ res << "NT"
+ next
+ else
+ res << "T" if not in_t
+ in_t = true
+ end
+ }
+ return res
+end
+
+while line = STDIN.gets
+ line.strip!
+ parts = line.split ' ||| '
+ f_shape = shape(parts[1])
+ e_shape = shape(parts[2])
+ next if f_shape[0]=='NT'||f_shape[-1]=='NT'||e_shape[0]=='NT'||e_shape[-1]=='NT'
+ puts line
+end
+