GreatSyntacticShift: Parser test data fixed

This commit is contained in:
Andrey Breslav
2011-12-21 10:57:09 +02:00
parent 6bad4830c3
commit 91d10790b4
84 changed files with 797 additions and 901 deletions
+16 -16
View File
@@ -28,9 +28,9 @@ class BinaryTree<T> : IMutableSet<T> {
fun contains(node : TreeNode, item : T) : Boolean {
if (node == null) return false
when(compare(item, node.value)) {
EQ => true
LS => contains(node.left, item)
GT => contains(node.right, item)
EQ -> true
LS -> contains(node.left, item)
GT -> contains(node.right, item)
}
}
}
@@ -51,9 +51,9 @@ class BinaryTree<T> : IMutableSet<T> {
return true
}
when (compare(item, node.value)) {
EQ => false
LS => add(ref node.left, node)
GT => add(ref node.right, node)
EQ -> false
LS -> add(ref node.left, node)
GT -> add(ref node.right, node)
}
}
@@ -64,13 +64,13 @@ class BinaryTree<T> : IMutableSet<T> {
return true
}
when (compare(item, node.value)) {
EQ => return false
LS =>
EQ -> return false
LS ->
if (node.left == null) {
node.left = TreeNode(item, node)
return true
} else return add(node.left)
GT =>
GT ->
if (node.right == null) {
node.right = TreeNode(item, node)
return true
@@ -90,19 +90,19 @@ class BinaryTree<T> : IMutableSet<T> {
fun find(node : TreeNode) : TreeNode {
if (node == null) return null
when (compare(item, node.value)) {
EQ => node
LS => find(node.left)
GT => find(node.right)
EQ -> node
LS -> find(node.left)
GT -> find(node.right)
}
}
}
private fun remove(node : TreeNode) {
when (node) {
is TreeNode @ (null, null) => replace(node, null)
is TreeNode @ (null, right) => replace(node, right)
is TreeNode @ (left, null) => replace(node, left)
is TreeNode @ (left, right) => {
is TreeNode #(null, null) -> replace(node, null)
is TreeNode #(null, right) -> replace(node, right)
is TreeNode #(left, null) -> replace(node, left)
is TreeNode #(left, right) -> {
val min = min(node.right)
node.value = min.value
remove(min)