summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Simianer <p@simianer.de>2014-03-16 17:19:21 +0100
committerPatrick Simianer <p@simianer.de>2014-03-16 17:19:21 +0100
commit369c3495975ebb21a15aa08063987416e22f6c0c (patch)
tree337e4c2f676fdbb0026d8dedebe953db3fb11b52
parentffe67192a0d67207c97a3424c0c89e805f28e651 (diff)
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
+