typeobj.syn 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. \begin{diagram}{object types}{objecttype}
  2. \begin{mysyntdiag}
  3. \begin{stack}\\ \lit*{packed} \end{stack}
  4. \lit*{object}
  5. \begin{stack}\\ heritage \end{stack}
  6. \begin{stack}\\
  7. \begin{rep}[b]
  8. \synt{component\ list} \\
  9. \synt{object\ visibility\ specifier}
  10. \end{rep}
  11. \end{stack}
  12. \lit*{end}
  13. \end{mysyntdiag}
  14. \begin{mysyntdiag}
  15. \synt{heritage} \lit*( \synt{object\ type\ identifier} \lit* )
  16. \end{mysyntdiag}
  17. \begin{mysyntdiag}
  18. \synt{component\ list}
  19. \begin{stack}\\ \begin{rep}[b] \synt{field\ definition} \\ \end{rep} \end{stack}
  20. \begin{stack}\\ \begin{rep}[b] \synt{method\ definition} \\ \end{rep} \end{stack}
  21. \end{mysyntdiag}
  22. \begin{mysyntdiag}
  23. \synt{field\ definition} \synt{identifier\ list} \lit*: \synt{type} \lit*;
  24. \end{mysyntdiag}
  25. \begin{mysyntdiag}
  26. \synt{method\ definition}
  27. \begin{stack}
  28. \synt{function\ header} \\
  29. \synt{procedure\ header} \\
  30. \synt{constructor\ header} \\
  31. \synt{desctuctor\ header}
  32. \end{stack}
  33. \lit*{;} \synt{method\ directives}
  34. \end{mysyntdiag}
  35. \begin{mysyntdiag}
  36. \synt{method\ directives}
  37. \begin{stack}\\ \lit*{virtual} \lit*{;} \end{stack}
  38. \begin{stack}\\ \lit*{abstract} \lit*{;} \end{stack}
  39. \begin{stack}\\ \synt{call\ modifiers} \lit*{;} \end{stack}
  40. \end{mysyntdiag}
  41. \begin{mysyntdiag}
  42. \synt{object\ visibility\ specifier}
  43. \begin{stack}
  44. \lit*{private} \\
  45. \lit*{protected} \\
  46. \lit*{public}
  47. \end{stack}
  48. \end{mysyntdiag}
  49. \end{diagram}