Yentl Van Tendeloo 9 роки тому
батько
коміт
8a2ab02c74
2 змінених файлів з 52 додано та 3 видалено
  1. 24 0
      integration/test_constructors_models.py
  2. 28 3
      scripts/prompt.py

+ 24 - 0
integration/test_constructors_models.py

@@ -133,6 +133,30 @@ action_language = [
         '"instantiate_link"', 1, '"Association"', '"call_last_param"', '"call"', '"param"',
         '"instantiate_attribute"', 1, '"call_last_param"', '"name"', '"last_param"',
 
+        '"instantiate_link"', 1, '"Inheritance"', '""', '"statement_next"', '"dict_link"',
+        '"instantiate_link"', 1, '"Inheritance"', '""', '"if_cond"', '"dict_link"',
+        '"instantiate_link"', 1, '"Inheritance"', '""', '"if_then"', '"dict_link"',
+        '"instantiate_link"', 1, '"Inheritance"', '""', '"if_else"', '"dict_link"',
+        '"instantiate_link"', 1, '"Inheritance"', '""', '"while_cond"', '"dict_link"',
+        '"instantiate_link"', 1, '"Inheritance"', '""', '"while_body"', '"dict_link"',
+        '"instantiate_link"', 1, '"Inheritance"', '""', '"assign_var"', '"dict_link"',
+        '"instantiate_link"', 1, '"Inheritance"', '""', '"assign_value"', '"dict_link"',
+        '"instantiate_link"', 1, '"Inheritance"', '""', '"break_while"', '"dict_link"',
+        '"instantiate_link"', 1, '"Inheritance"', '""', '"continue_while"', '"dict_link"',
+        '"instantiate_link"', 1, '"Inheritance"', '""', '"return_value"', '"dict_link"',
+        '"instantiate_link"', 1, '"Inheritance"', '""', '"resolve_var"', '"dict_link"',
+        '"instantiate_link"', 1, '"Inheritance"', '""', '"access_var"', '"dict_link"',
+        '"instantiate_link"', 1, '"Inheritance"', '""', '"constant_node"', '"dict_link"',
+        '"instantiate_link"', 1, '"Inheritance"', '""', '"output_node"', '"dict_link"',
+        '"instantiate_link"', 1, '"Inheritance"', '""', '"global_var"', '"dict_link"',
+        '"instantiate_link"', 1, '"Inheritance"', '""', '"param_name"', '"dict_link"',
+        '"instantiate_link"', 1, '"Inheritance"', '""', '"param_value"', '"dict_link"',
+        '"instantiate_link"', 1, '"Inheritance"', '""', '"param_next_param"', '"dict_link"',
+        '"instantiate_link"', 1, '"Inheritance"', '""', '"funcdef_body"', '"dict_link"',
+        '"instantiate_link"', 1, '"Inheritance"', '""', '"call_func"', '"dict_link"',
+        '"instantiate_link"', 1, '"Inheritance"', '""', '"call_params"', '"dict_link"',
+        '"instantiate_link"', 1, '"Inheritance"', '""', '"call_last_param"', '"dict_link"',
+
         '"instantiate_link"', 1, '"Association"', '"constraint"', '"Class"', '"funcdef"',
         '"instantiate_attribute"', 1, '"constraint"', '"name"', '"constraint"',
         '"exit"',

+ 28 - 3
scripts/prompt.py

@@ -93,10 +93,35 @@ while 1:
 
     if command.startswith("$"):
         # Invoke the HUTN parser
-        with open("__constraint.al", 'w') as f:
+        tmp_file = "__constraint.al"
+        with open(tmp_file, 'w') as f:
             f.write("Element function constraint(model : Element, element_name : String):\n")
-        commands = hutn_compile(tmp_file, grammar_file, "CS")
-        send_data(commands, address)
+        local_print("Entering HUTN coding environment.")
+        local_print("There is no nice editor right now, so please just modify the file '__constraint.al' in this folder.")
+        while 1:
+            local_print("When you are done, press <return> to continue.")
+            raw_input()
+            local_print("File contents:")
+            with open(tmp_file, 'r') as f:
+                local_print(f.read())
+            local_print("Sending file through parser!")
+
+            try:
+                commands = hutn_compile(tmp_file, grammar_file, "CS")
+                local_print("Compilation succesfully terminated!")
+                local_print("Upload this file? [Y/n]")
+                i = raw_input()
+                if i == "n\n":
+                    continue
+                send_data(commands, address)
+            except:
+                local_print("Error during compilation!")
+                local_print("Do you want to try again? [Y/n]")
+                i = raw_input()
+                if i == "n\n":
+                    break
+
+            local_print("HUTN input finished, going back to regular prompt!")
     else:
         # Just send a normal request
         if command.startswith("\\"):