diff options
author | Kartik K. Agaram <vc@akkartik.com> | 2015-02-17 12:26:17 -0800 |
---|---|---|
committer | Kartik K. Agaram <vc@akkartik.com> | 2015-02-17 12:26:17 -0800 |
commit | 4a753480074e3a3dda4d4414fe9a60e9704b799d (patch) | |
tree | fcad3a42bcde17b843908b20c4e469da27a2c2fb /cpp/002main.test.cc | |
parent | f1e1cac414c34449113ca7196ceb82cbcbb2517f (diff) | |
download | mu-4a753480074e3a3dda4d4414fe9a60e9704b799d.tar.gz |
769 - first recipe/instruction parsed
Diffstat (limited to 'cpp/002main.test.cc')
-rw-r--r-- | cpp/002main.test.cc | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/cpp/002main.test.cc b/cpp/002main.test.cc index 8608d724..77d0ee38 100644 --- a/cpp/002main.test.cc +++ b/cpp/002main.test.cc @@ -1,8 +1,24 @@ -void test_compile() { +void test_parse() { compile("recipe main [\n" " 1:integer <- copy 23:literal\n" +//? " 1:integer, 2:integer <- copy 23:literal\n" "]\n"); CHECK(Recipe_number.find("main") != Recipe_number.end()); + recipe r = Recipe[Recipe_number["main"]]; + vector<instruction>::iterator i = r.step.begin(); + CHECK_EQ(i->is_label, false); + CHECK_EQ(i->label, ""); + CHECK_EQ(i->operation, Recipe_number["copy"]); + CHECK_EQ(i->ingredients.size(), 1); + CHECK_EQ(i->ingredients[0].name, string("23")); + CHECK_EQ(i->ingredients[0].types.size(), 1); + CHECK_EQ(i->ingredients[0].types[0], Type_number["literal"]); + CHECK_EQ(i->ingredients[0].properties.size(), 0); + CHECK_EQ(i->products.size(), 1); + CHECK_EQ(i->products[0].name, string("1")); + CHECK_EQ(i->products[0].types.size(), 1); + CHECK_EQ(i->products[0].types[0], Type_number["integer"]); + CHECK_EQ(i->products[0].properties.size(), 0); } void test_literal() { |