Data update
This commit is contained in:
parent
5150844a7d
commit
4bb20c9b71
7735 changed files with 38060 additions and 199180 deletions
|
|
@ -1,73 +0,0 @@
|
|||
class markovparser
|
||||
|
||||
dim aRules
|
||||
public property let ruleset( sBlock )
|
||||
dim i
|
||||
aRules = split( sBlock, vbNewLine )
|
||||
'~ remove blank lines from end of array
|
||||
do while aRules( ubound( aRules ) ) = vbnullstring
|
||||
redim preserve aRules( ubound( aRules ) - 1 )
|
||||
loop
|
||||
'~ parse array
|
||||
for i = lbound( aRules ) to ubound( aRules )
|
||||
if left( aRules( i ), 1 ) = "#" then
|
||||
aRules( i ) = Array( vbnullstring, aRules(i))
|
||||
else
|
||||
aRules( i ) = Split( aRules( i ), " -> ", 2 )
|
||||
end if
|
||||
next
|
||||
end property
|
||||
|
||||
public function apply( sArg )
|
||||
dim ruleapplied
|
||||
dim terminator
|
||||
dim was
|
||||
dim i
|
||||
dim repl
|
||||
dim changes
|
||||
|
||||
ruleapplied = true
|
||||
terminator = false
|
||||
|
||||
do while ruleapplied and (not terminator)
|
||||
changes = 0
|
||||
was = sArg
|
||||
for i = lbound( aRules ) to ubound( aRules )
|
||||
repl = aRules(i)(1)
|
||||
if left( repl, 1 ) = "." then
|
||||
terminator = true
|
||||
repl = mid( repl, 2 )
|
||||
end if
|
||||
sArg = replace( sArg, aRules(i)(0), repl)
|
||||
if was <> sArg then
|
||||
changes = changes + 1
|
||||
if changes = 1 then
|
||||
exit for
|
||||
end if
|
||||
end if
|
||||
if terminator then
|
||||
exit for
|
||||
end if
|
||||
next
|
||||
if changes = 0 then
|
||||
ruleapplied = false
|
||||
end if
|
||||
loop
|
||||
apply = sArg
|
||||
end function
|
||||
|
||||
sub dump
|
||||
dim i
|
||||
for i = lbound( aRules ) to ubound( aRules )
|
||||
wscript.echo eef(aRules(i)(0)=vbnullstring,aRules(i)(1),aRules(i)(0)& " -> " & aRules(i)(1)) & eef( left( aRules(i)(1), 1 ) = ".", " #terminator", "" )
|
||||
next
|
||||
end sub
|
||||
|
||||
private function eef( bCond, sExp1, sExp2 )
|
||||
if bCond then
|
||||
eef = sExp1
|
||||
else
|
||||
eef = sExp2
|
||||
end if
|
||||
end function
|
||||
end class
|
||||
|
|
@ -1,60 +0,0 @@
|
|||
dim m1
|
||||
set m1 = new markovparser
|
||||
m1.ruleset = "# This rules file is extracted from Wikipedia:" & vbNewLine & _
|
||||
"# http://en.wikipedia.org/wiki/Markov_Algorithm" & vbNewLine & _
|
||||
"A -> apple" & vbNewLine & _
|
||||
"B -> bag" & vbNewLine & _
|
||||
"S -> shop" & vbNewLine & _
|
||||
"T -> the" & vbNewLine & _
|
||||
"the shop -> my brother" & vbNewLine & _
|
||||
"a never used -> .terminating rule"
|
||||
wscript.echo m1.apply( "I bought a B of As from T S.")
|
||||
|
||||
dim m2
|
||||
set m2 = new markovparser
|
||||
m2.ruleset = replace( "# Slightly modified from the rules on Wikipedia\nA -> apple\nB -> bag\nS -> .shop\nT -> the\nthe shop -> my brother\na never used -> .terminating rule", "\n", vbNewLine )
|
||||
'~ m1.dump
|
||||
wscript.echo m2.apply( "I bought a B of As from T S.")
|
||||
|
||||
dim m3
|
||||
set m3 = new markovparser
|
||||
m3.ruleset = replace("# BNF Syntax testing rules\nA -> apple\nWWWW -> with\nBgage -> ->.*\nB -> bag" & vbNewLine & _
|
||||
"->.* -> money\nW -> WW\nS -> .shop\nT -> the\nthe shop -> my brother\na never used -> .terminating rule", "\n", vbNewLine )
|
||||
wscript.echo m3.apply("I bought a B of As W my Bgage from T S.")
|
||||
|
||||
set m4 = new markovparser
|
||||
m4.ruleset = "### Unary Multiplication Engine, for testing Markov Algorithm implementations" & vbNewLine & _
|
||||
"### By Donal Fellows." & vbNewLine & _
|
||||
"# Unary addition engine" & vbNewLine & _
|
||||
"_+1 -> _1+" & vbNewLine & _
|
||||
"1+1 -> 11+" & vbNewLine & _
|
||||
"# Pass for converting from the splitting of multiplication into ordinary" & vbNewLine & _
|
||||
"# addition" & vbNewLine & _
|
||||
"1! -> !1" & vbNewLine & _
|
||||
",! -> !+" & vbNewLine & _
|
||||
"_! -> _" & vbNewLine & _
|
||||
"# Unary multiplication by duplicating left side, right side times" & vbNewLine & _
|
||||
"1*1 -> x,@y" & vbNewLine & _
|
||||
"1x -> xX" & vbNewLine & _
|
||||
"X, -> 1,1" & vbNewLine & _
|
||||
"X1 -> 1X" & vbNewLine & _
|
||||
"_x -> _X" & vbNewLine & _
|
||||
",x -> ,X" & vbNewLine & _
|
||||
"y1 -> 1y" & vbNewLine & _
|
||||
"y_ -> _" & vbNewLine & _
|
||||
"# Next phase of applying" & vbNewLine & _
|
||||
"1@1 -> x,@y" & vbNewLine & _
|
||||
"1@_ -> @_" & vbNewLine & _
|
||||
",@_ -> !_" & vbNewLine & _
|
||||
"++ -> +" & vbNewLine & _
|
||||
"# Termination cleanup for addition" & vbNewLine & _
|
||||
"_1 -> 1" & vbNewLine & _
|
||||
"1+_ -> 1" & vbNewLine & _
|
||||
"_+_ -> "
|
||||
'~ m4.dump
|
||||
wscript.echo m4.apply( "_1111*11111_")
|
||||
|
||||
set fso = createobject("scripting.filesystemobject")
|
||||
set m5 = new markovparser
|
||||
m5.ruleset = fso.opentextfile("busybeaver.tur").readall
|
||||
wscript.echo m5.apply("000000A000000")
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
I bought a bag of apples from my brother.
|
||||
I bought a bag of apples from T shop.
|
||||
I bought a bag of apples with my money from T shop.
|
||||
11111111111111111111
|
||||
00011H1111000
|
||||
Loading…
Add table
Add a link
Reference in a new issue