typeclas.syn 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. \begin{diagram}{Class types}{classtype}
  2. \begin{mysyntdiag}
  3. \[ \lit*{packed} \]
  4. \lit*{class}
  5. \[ heritage \]
  6. \[
  7. \begin{rep}[b]
  8. \synt{component\ list} \\
  9. \synt{class\ visibility\ specifier}
  10. \end{rep} \lit*{end}
  11. \]
  12. \end{mysyntdiag}
  13. \begin{mysyntdiag}
  14. \synt{heritage} \lit*( \synt{class\ type\ identifier} \lit* )
  15. \end{mysyntdiag}
  16. \begin{mysyntdiag}
  17. \synt{component\ list}
  18. \[ \<[b] \synt{field\ definition} \\ \> \]
  19. \[
  20. \<[b]
  21. \(
  22. \synt{method\ definition} \\
  23. \synt{property\ definition}
  24. \) \\
  25. \>
  26. \]
  27. \end{mysyntdiag}
  28. \begin{mysyntdiag}
  29. \synt{field\ definition} \synt{identifier\ list} \lit*: \synt{type} \lit*;
  30. \end{mysyntdiag}
  31. \begin{mysyntdiag}
  32. \synt{method\ definition}
  33. \(
  34. \[
  35. \lit*{class}
  36. \]
  37. \(
  38. \synt{function\ header} \\
  39. \synt{procedure\ header}
  40. \) \\
  41. \synt{constructor\ header} \\
  42. \synt{desctuctor\ header}
  43. \)
  44. \lit*;
  45. \[
  46. \( \lit*{virtual} \[ \lit*; \lit*{abstract} \] \\
  47. \lit*{override} \\
  48. \lit*{message}
  49. \( \synt{integer\ constant} \\
  50. \synt{string\ constant} \)
  51. \)
  52. \lit*;
  53. \]
  54. \[ \synt{call\ modifiers} \lit*; \]
  55. \end{mysyntdiag}
  56. \begin{mysyntdiag}
  57. \synt{class\ visibility\ specifier}
  58. \(
  59. \lit*{private}\\
  60. \lit*{protected}\\
  61. \lit*{public}\\
  62. \lit*{published}
  63. \)
  64. \end{mysyntdiag}
  65. \end{diagram}