|
@@ -17,22 +17,44 @@ int main() {
|
|
|
exit(EXIT_FAILURE);
|
|
|
}
|
|
|
|
|
|
- af_Code *bt1 = makeLiteralCode("data", "func", ',', 0, "Unknow");
|
|
|
- af_Code *bt2 = makeVariableCode("object", 0, 1, NULL);
|
|
|
+ { // 正常程序
|
|
|
+ af_Code *bt1 = makeLiteralCode("data", "func", ',', 0, "Unknow");
|
|
|
+ af_Code *bt2 = makeVariableCode("object", 0, 1, NULL);
|
|
|
|
|
|
- af_Code *bt3 = makeLiteralCode("data2", "func", 0, 0, NULL);
|
|
|
- af_Code *bt4 = makeVariableCode("global", 0, 1, NULL);
|
|
|
- af_Code *bt6 = makeVariableCode("object", 0, 1, NULL);
|
|
|
+ af_Code *bt3 = makeLiteralCode("data2", "func", 0, 0, NULL);
|
|
|
+ af_Code *bt4 = makeVariableCode("global", 0, 1, NULL);
|
|
|
+ af_Code *bt6 = makeVariableCode("object", 0, 1, NULL);
|
|
|
|
|
|
- connectCode(&bt1, bt2);
|
|
|
- connectCode(&bt3, bt4);
|
|
|
- connectCode(&bt4, bt6);
|
|
|
+ connectCode(&bt1, bt2);
|
|
|
+ connectCode(&bt3, bt4);
|
|
|
+ connectCode(&bt4, bt6);
|
|
|
|
|
|
- af_Code *bt5 = makeBlockCode(curly, bt3, 0, 1, NULL, NULL);
|
|
|
- connectCode(&bt2, bt5);
|
|
|
+ af_Code *bt5 = makeBlockCode(curly, bt3, 0, 1, NULL, NULL);
|
|
|
+ connectCode(&bt2, bt5);
|
|
|
+
|
|
|
+ iterCode(bt1, env);
|
|
|
+ freeAllCode(bt1);
|
|
|
+ }
|
|
|
+
|
|
|
+ { // 测试错误 (object2 Var not found)
|
|
|
+ af_Code *bt1 = makeLiteralCode("data", "func", ',', 0, "Unknow");
|
|
|
+ af_Code *bt2 = makeVariableCode("object2", 0, 1, NULL);
|
|
|
+
|
|
|
+ af_Code *bt3 = makeLiteralCode("data2", "func", 0, 0, NULL);
|
|
|
+ af_Code *bt4 = makeVariableCode("global", 0, 1, NULL);
|
|
|
+ af_Code *bt6 = makeVariableCode("object", 0, 1, NULL);
|
|
|
+
|
|
|
+ connectCode(&bt1, bt2);
|
|
|
+ connectCode(&bt3, bt4);
|
|
|
+ connectCode(&bt4, bt6);
|
|
|
+
|
|
|
+ af_Code *bt5 = makeBlockCode(curly, bt3, 0, 1, NULL, NULL);
|
|
|
+ connectCode(&bt2, bt5);
|
|
|
+
|
|
|
+ iterCode(bt1, env);
|
|
|
+ freeAllCode(bt1);
|
|
|
+ }
|
|
|
|
|
|
- iterCode(bt1, env);
|
|
|
- freeAllCode(bt1);
|
|
|
freeEnvironment(env);
|
|
|
return 0;
|
|
|
}
|