summaryrefslogtreecommitdiff
path: root/rule-shapes
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 /rule-shapes
parent69949dda35c3ea21d8e926e5f0a596a0a0f61c6a (diff)
mv
Diffstat (limited to 'rule-shapes')
-rwxr-xr-xrule-shapes29
1 files changed, 29 insertions, 0 deletions
diff --git a/rule-shapes b/rule-shapes
new file mode 100755
index 0000000..589a670
--- /dev/null
+++ b/rule-shapes
@@ -0,0 +1,29 @@
+#!/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
+ f, e = line.split(/\t/)
+ f.strip!; e.strip!
+ puts shape(f).join('_')+"-"+shape(e).join('_')
+end
+