Added x86only

This commit is contained in:
Dmitry Boulytchev 2018-11-01 15:12:45 +03:00 committed by danyaberezun
parent 66de3dd1f9
commit fce5623721
5 changed files with 46 additions and 0 deletions

View file

@ -1,3 +1,4 @@
make check
pushd expressions && make check && popd
pushd deep-expressions && make check && popd
pushd x86only && make check && popd

View file

@ -0,0 +1,13 @@
TESTS=$(basename $(wildcard test*.expr))
RC=../../src/rc.opt
.PHONY: check $(TESTS)
check: $(TESTS)
$(TESTS): %: %.expr
@RC_RUNTIME=../../runtime $(RC) $< && cat $@.input | ./$@ > $@.log && diff $@.log orig/$@.log
clean:
rm -f test*.log *.s *~ $(TESTS)

View file

@ -0,0 +1,12 @@
`Empty
`Node (0, `Empty, `Empty)
`Node (0, `Empty, `Node (1, `Empty, `Empty))
`Node (0, `Empty, `Node (1, `Empty, `Node (2, `Empty, `Empty)))
`Node (0, `Empty, `Node (1, `Empty, `Node (2, `Empty, `Node (3, `Empty, `Empty))))
`Node (0, `Empty, `Node (1, `Empty, `Node (2, `Empty, `Node (3, `Empty, `Node (4, `Empty, `Empty)))))
`Node (0, `Empty, `Node (1, `Empty, `Node (2, `Empty, `Node (3, `Empty, `Node (4, `Empty, `Node (5, `Empty, `Empty))))))
`Node (0, `Empty, `Node (1, `Empty, `Node (2, `Empty, `Node (3, `Empty, `Node (4, `Empty, `Node (5, `Empty, `Node (6, `Empty, `Empty)))))))
`Node (0, `Empty, `Node (1, `Empty, `Node (2, `Empty, `Node (3, `Empty, `Node (4, `Empty, `Node (5, `Empty, `Node (6, `Empty, `Node (7, `Empty, `Empty))))))))
`Node (0, `Empty, `Node (1, `Empty, `Node (2, `Empty, `Node (3, `Empty, `Node (4, `Empty, `Node (5, `Empty, `Node (6, `Empty, `Node (7, `Empty, `Node (8, `Empty, `Empty)))))))))
`Node (0, `Empty, `Node (1, `Empty, `Node (2, `Empty, `Node (3, `Empty, `Node (4, `Empty, `Node (5, `Empty, `Node (6, `Empty, `Node (7, `Empty, `Node (8, `Empty, `Node (9, `Empty, `Empty))))))))))
`Node (0, `Empty, `Node (1, `Empty, `Node (2, `Empty, `Node (3, `Empty, `Node (4, `Empty, `Node (5, `Empty, `Node (6, `Empty, `Node (7, `Empty, `Node (8, `Empty, `Node (9, `Empty, `Node (10, `Empty, `Empty)))))))))))

View file

@ -0,0 +1,19 @@
fun insert (tree, value) {
case tree of
`Empty -> return `Node (value, `Empty, `Empty)
| `Node (x, left, right) ->
if x > value
then return `Node (x, insert (left, value), right)
else return `Node (x, left, insert (right, value))
fi
esac
}
tree := `Empty;
for i := 0, i <= 10, i := i+1 do
printf ("%s\n", tree.string);
tree := insert (tree, i)
od;
printf ("%s\n", tree.string)

View file

@ -0,0 +1 @@