Some more bugfixes, got regex working as well as the cpp version. (leaks memory like craaazy)
This commit is contained in:
@@ -1,2 +1,42 @@
|
||||
concat
|
||||
2
|
||||
-1
|
||||
repitition
|
||||
2
|
||||
18
|
||||
26
|
||||
-1
|
||||
-1
|
||||
-1
|
||||
alternation
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
-1
|
||||
perens!
|
||||
1
|
||||
1
|
||||
2
|
||||
2
|
||||
2
|
||||
12
|
||||
0
|
||||
optional!
|
||||
-1
|
||||
1
|
||||
2
|
||||
Old Contributed
|
||||
1
|
||||
2
|
||||
4
|
||||
0
|
||||
2
|
||||
4
|
||||
-1
|
||||
1
|
||||
5
|
||||
0
|
||||
6
|
||||
9
|
||||
|
||||
@@ -2,11 +2,12 @@ import io:*
|
||||
import regex:*
|
||||
|
||||
fun main():int {
|
||||
println("concat")
|
||||
var reg = regex("ab")
|
||||
println(reg.long_match("abab"))
|
||||
println(reg.long_match("aab"))
|
||||
|
||||
println("second")
|
||||
println("repitition")
|
||||
|
||||
reg = regex("a*b+c")
|
||||
println(reg.long_match("bc"))
|
||||
@@ -15,5 +16,54 @@ fun main():int {
|
||||
println(reg.long_match("aaaaaaaaaaaaaaaa"))
|
||||
println(reg.long_match("aaaaaaaaaaaaaaaac"))
|
||||
println(reg.long_match("aaaaaaaaaaaaaaaab"))
|
||||
|
||||
println("alternation")
|
||||
|
||||
reg = regex("a|b")
|
||||
println(reg.long_match("a"))
|
||||
println(reg.long_match("b"))
|
||||
println(reg.long_match("aa"))
|
||||
println(reg.long_match("bb"))
|
||||
println(reg.long_match("ab"))
|
||||
println(reg.long_match("c"))
|
||||
|
||||
println("perens!")
|
||||
reg = regex("(a|b)*")
|
||||
println(reg.long_match("a"))
|
||||
println(reg.long_match("b"))
|
||||
println(reg.long_match("aa"))
|
||||
println(reg.long_match("bb"))
|
||||
println(reg.long_match("ab"))
|
||||
println(reg.long_match("abbbaaababab"))
|
||||
println(reg.long_match("c"))
|
||||
|
||||
println("optional!")
|
||||
reg = regex("a?b")
|
||||
println(reg.long_match("a"))
|
||||
println(reg.long_match("b"))
|
||||
println(reg.long_match("ab"))
|
||||
|
||||
println("Old Contributed")
|
||||
var re = regex("a*");
|
||||
println(re.long_match("a"));
|
||||
println(re.long_match("aa"));
|
||||
println(re.long_match("aaaab"));
|
||||
println(re.long_match("b"));
|
||||
|
||||
re = regex("a+");
|
||||
println(re.long_match("aa"));
|
||||
println(re.long_match("aaaab"));
|
||||
println(re.long_match("b"));
|
||||
|
||||
re = regex("a(bc)?");
|
||||
println(re.long_match("ab"));
|
||||
|
||||
re = regex("((ab)|c)*");
|
||||
println(re.long_match("ababc"));
|
||||
println(re.long_match("ad"));
|
||||
println(re.long_match("ababccd"));
|
||||
|
||||
re = regex("bbb((bba+)|(ba+))*a*((a+b)|(a+bb)|(a+))*bbb") ;
|
||||
println(re.long_match("bbbababbbaaaaaaaaaaaaaaaaaaabbb"));
|
||||
return 0
|
||||
}
|
||||
|
||||
@@ -2,14 +2,16 @@ import io:*
|
||||
import mem:*
|
||||
import vector:*
|
||||
|
||||
obj pair<T, U> {
|
||||
// pair2 because we actually have a pair now
|
||||
|
||||
obj pair2<T, U> {
|
||||
var first: T
|
||||
var second: U
|
||||
}
|
||||
|
||||
fun id<T>(in: T): T { return in; }
|
||||
fun idVec<T>(in: vector<T>): T { return in.get(0); }
|
||||
fun pairFun<T>(in: pair<T, int>, another:double): T {
|
||||
fun pairFun<T>(in: pair2<T, int>, another:double): T {
|
||||
println(in.second)
|
||||
println(another)
|
||||
return in.first;
|
||||
@@ -21,7 +23,7 @@ fun main():int {
|
||||
aVec.addEnd(12)
|
||||
println(fromTemplateFun)
|
||||
println(idVec(aVec))
|
||||
var testPair: pair<char*, int>
|
||||
var testPair: pair2<char*, int>
|
||||
testPair.first = "test string"
|
||||
testPair.second = 9
|
||||
var someFloat = 13.88
|
||||
|
||||
@@ -16,5 +16,10 @@ hayyy
|
||||
first
|
||||
first
|
||||
second
|
||||
full: 1234
|
||||
middle: 23
|
||||
all but first: 234
|
||||
all but last: 123
|
||||
just some: 2
|
||||
done
|
||||
Destroyed: 0
|
||||
|
||||
@@ -85,6 +85,26 @@ fun main(): int {
|
||||
println(assignTest[0])
|
||||
println(assignTest[1])
|
||||
|
||||
var sliceTest = vector(1)
|
||||
sliceTest.add(2)
|
||||
sliceTest.add(3)
|
||||
sliceTest.add(4)
|
||||
print("full: ")
|
||||
sliceTest.do(fun(it:int):void print(it);)
|
||||
println()
|
||||
print("middle: ")
|
||||
sliceTest.slice(1,-2).do(fun(it:int):void print(it);)
|
||||
println()
|
||||
print("all but first: ")
|
||||
sliceTest.slice(1,-1).do(fun(it:int):void print(it);)
|
||||
println()
|
||||
print("all but last: ")
|
||||
sliceTest.slice(0,-2).do(fun(it:int):void print(it);)
|
||||
println()
|
||||
print("just some: ")
|
||||
sliceTest.slice(1,2).do(fun(it:int):void print(it);)
|
||||
println()
|
||||
|
||||
println("done")
|
||||
|
||||
return 0;
|
||||
|
||||
Reference in New Issue
Block a user