user_manager.alc 1.1 KB

123456789101112131415161718192021222324252627282930313233
  1. include "io.alh"
  2. include "primitives.alh"
  3. Void function user_management():
  4. String username
  5. Element user_root
  6. Element user_frame
  7. Element output_value
  8. Element input_value
  9. while (True):
  10. username = input()
  11. if (bool_not(dict_in(read_root(), username))):
  12. user_root = create_node()
  13. user_frame = create_node()
  14. output_value = create_node()
  15. input_value = create_node()
  16. dict_add(user_root, "frame", user_frame)
  17. dict_add(user_root, "globals", create_node())
  18. dict_add(user_root, "output", output_value)
  19. dict_add(user_root, "last_output", output_value)
  20. dict_add(user_root, "input", input_value)
  21. dict_add(user_root, "last_input", input_value)
  22. dict_add(user_frame, "evalstack", create_node())
  23. dict_add(user_frame, "returnvalue", create_node())
  24. dict_add(user_frame, "phase", "init")
  25. dict_add(user_frame, "IP", dict_read(dict_read(read_root(), "__hierarchy"), "__IP"))
  26. dict_add(user_frame, "symbols", create_node())
  27. //Add this only at the end, as otherwise the user will already be detected
  28. dict_add(read_root(), username, user_root)
  29. return!