summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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
+