|
@@ -134,8 +134,6 @@ Action function construct_unknown():
|
|
|
construct_model()
|
|
|
log("Constructed model")
|
|
|
return construct_unknown()
|
|
|
- elif (elem == "fundef"):
|
|
|
- return construct_funcdef()
|
|
|
else:
|
|
|
log("ERROR: did not understand command " + cast_e2s(elem))
|
|
|
|
|
@@ -265,48 +263,6 @@ Action function construct_deref():
|
|
|
dict_add(this_element, "node", import_node(input()))
|
|
|
return this_element
|
|
|
|
|
|
-Action function construct_funcdef():
|
|
|
- Action assign
|
|
|
- Action resolve
|
|
|
- Action constant
|
|
|
- Action func
|
|
|
- Element params
|
|
|
-
|
|
|
- assign = create_value(!assign)
|
|
|
- resolve = create_value(!resolve)
|
|
|
- constant = create_value(!constant)
|
|
|
- func = create_node()
|
|
|
- params = create_node()
|
|
|
- dict_add(assign, "var", resolve)
|
|
|
- dict_add(assign, "value", constant)
|
|
|
- dict_add(resolve, "var", input())
|
|
|
- dict_add(constant, "node", func)
|
|
|
- dict_add(func, "params", params)
|
|
|
-
|
|
|
- Integer nrParams
|
|
|
- nrParams = input()
|
|
|
- Integer counter
|
|
|
- counter = 0
|
|
|
- Element param
|
|
|
-
|
|
|
- String arg_names_decl
|
|
|
- arg_names_decl = "abcdefghijklmnopqrstuvwxyz"
|
|
|
-
|
|
|
- while (counter < nrParams):
|
|
|
- param = create_node()
|
|
|
- dict_add(params, string_get(arg_names_decl, counter), param)
|
|
|
- output(param)
|
|
|
- // Output each parameter in turn
|
|
|
- counter = counter + 1
|
|
|
-
|
|
|
- // Now add the body
|
|
|
- dict_add(func, "body", construct_unknown())
|
|
|
-
|
|
|
- if (input()):
|
|
|
- dict_add(assign, "next", construct_unknown())
|
|
|
-
|
|
|
- return assign
|
|
|
-
|
|
|
Action function construct_break():
|
|
|
Action this_element
|
|
|
this_element = create_value(!break)
|