Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
|
|
@ -0,0 +1,42 @@
|
|||
import "/ioutil" for FileUtil, File
|
||||
import "/pattern" for Pattern
|
||||
|
||||
var lb = FileUtil.lineBreak
|
||||
|
||||
/* rulesets assumed to be separated by a blank line in file */
|
||||
var readRules = Fn.new { |path|
|
||||
return File.read(path).trimEnd().split("%(lb)%(lb)").map { |rs| rs.split(lb) }.toList
|
||||
}
|
||||
|
||||
/* tests assumed to be on consecutive lines */
|
||||
var readTests = Fn.new { |path| File.read(path).trimEnd().split(lb) }
|
||||
|
||||
var rules = readRules.call("markov_rules.txt")
|
||||
var tests = readTests.call("markov_tests.txt")
|
||||
var pattern = Pattern.new("+0/s[~.][+0/z]", Pattern.start)
|
||||
var ix = 0
|
||||
for (origTest in tests) {
|
||||
var captures = []
|
||||
for (rule in rules[ix]) {
|
||||
if (rule.startsWith("#")) continue
|
||||
var splits = rule.split(" -> ")
|
||||
var m = pattern.find(splits[1])
|
||||
if (m) captures.add([splits[0].trimEnd()] + m.capsText)
|
||||
}
|
||||
var test = origTest
|
||||
while (true) {
|
||||
var copy = test
|
||||
var redo = false
|
||||
for (c in captures) {
|
||||
test = test.replace(c[0], c[2])
|
||||
if (c[1] == ".") break
|
||||
if (test != copy) {
|
||||
redo = true
|
||||
break
|
||||
}
|
||||
}
|
||||
if (!redo) break
|
||||
}
|
||||
System.print("%(origTest)\n%(test)\n")
|
||||
ix = ix + 1
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue