/src/tools/semantics/code/builders/liberty_builder_tools.e

http://github.com/tybor/Liberty · Specman e · 77 lines · 64 code · 13 blank · 0 comment · 0 complexity · d01b29a70f19c994c0bdf3d8228f06ac MD5 · raw file

  1. deferred class LIBERTY_BUILDER_TOOLS
  2. insert
  3. LIBERTY_AST_HANDLER
  4. LIBERTY_ERROR_LEVELS
  5. LOGGING
  6. feature {}
  7. errors: LIBERTY_ERRORS
  8. torch: LIBERTY_ENLIGHTENING_THE_WORLD
  9. type_lookup: LIBERTY_TYPE_LOOKUP
  10. universe: LIBERTY_UNIVERSE is
  11. deferred
  12. end
  13. effective_generic_parameters: DICTIONARY[LIBERTY_ACTUAL_TYPE, FIXED_STRING]
  14. ast: LIBERTY_AST_NON_TERMINAL_NODE is
  15. deferred
  16. ensure
  17. Result /= Void
  18. end
  19. file: FIXED_STRING is
  20. deferred
  21. ensure
  22. Result /= Void
  23. end
  24. feature {}
  25. decoded_string (string_image: LIBERTY_AST_STRING): STRING is
  26. require
  27. {TYPED_EIFFEL_IMAGE[STRING]} ?:= string_image.image
  28. local
  29. s: TYPED_EIFFEL_IMAGE[STRING]
  30. do
  31. s ::= string_image.image
  32. Result := s.decoded
  33. end
  34. feature {}
  35. semantics_position_at (a_node: EIFFEL_NODE): LIBERTY_POSITION is
  36. require
  37. {LIBERTY_AST_TERMINAL_NODE} ?:= a_node
  38. local
  39. node: LIBERTY_AST_TERMINAL_NODE
  40. do
  41. node ::= a_node
  42. Result := image_semantics_position_at(node.image)
  43. end
  44. image_semantics_position_at (a_image: EIFFEL_IMAGE): LIBERTY_POSITION is
  45. do
  46. Result := errors.semantics_position(a_image.index, ast, file)
  47. end
  48. semantics_position_after (a_node: EIFFEL_NODE): LIBERTY_POSITION is
  49. require
  50. {LIBERTY_AST_TERMINAL_NODE} ?:= a_node
  51. local
  52. node: LIBERTY_AST_TERMINAL_NODE
  53. do
  54. node ::= a_node
  55. Result := image_semantics_position_after(node.image)
  56. end
  57. image_semantics_position_after (a_image: EIFFEL_IMAGE): LIBERTY_POSITION is
  58. do
  59. Result := errors.semantics_position(a_image.index + a_image.image.count, ast, file)
  60. end
  61. invariant
  62. universe /= Void
  63. effective_generic_parameters /= Void
  64. end -- class LIBERTY_BUILDER_TOOLS