home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 018.lha / docs / appendix3 < prev    next >
Text File  |  1986-10-19  |  10KB  |  529 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. _C_l_a_s_s _D_e_s_c_r_i_p_t_i_o_n
  8.  
  9.      ellipsewid = 1.3i arrow A: ellipse "class heading"  arc
  10.      -> cw arc ellipse "instance variables" arc -> arc cw B:
  11.      ellipse "protocol" arrow arrow from A.e to B.w
  12.  
  13. _C_l_a_s_s _H_e_a_d_i_n_g
  14.  
  15.      arrow circle "CCCCllllaaaassssssss"  arrow  ellipse  "variable"  arrow
  16.      right  3i  move  left  3i move right 0.1i arc -> cw arc
  17.      ellipse "colon variable" arc -> arc cw
  18.  
  19.      vvvvaaaarrrriiiiaaaabbbblllleeee defines the class name,  must  begin  with  an
  20.      upper case letter.
  21.      ccccoooolllloooonnnn vvvvaaaarrrriiiiaaaabbbblllleeee defines the superclass name,  superclass
  22.      is OOOObbbbjjjjeeeecccctttt if not given.
  23.  
  24. _I_n_s_t_a_n_c_e _V_a_r_i_a_b_l_e_s
  25.  
  26.      arrow circle "|" arrow A: ellipse "variable" arc ->  cw
  27.      arc  cw arrow left 1.3i arc cw arc cw move to A.e arrow
  28.      circle "|" arrow
  29.  
  30.      Instance variables must begin with a lower case letter.
  31.  
  32. _P_r_o_t_o_c_o_l
  33.  
  34.      arrow circle "[" arrow A: ellipse "method"  arc  ->  cw
  35.      line  down 0.2i arc cw arrow left 0.4i circle "|" arrow
  36.      left 0.4i arc cw line up 0.2i arc cw move to A.e  arrow
  37.      circle "]" arrow
  38.  
  39.      Vertical bar  separating  methods  mmmmuuuusssstttt  be  placed  in
  40.      column 1.
  41.  
  42. _M_e_t_h_o_d
  43.  
  44.      arrow A: ellipse "method pattern" arc -> cw arc ellipse
  45.      "temporary  variables" arc -> arc cw C: ellipse "state-
  46.      ments" arrow arrow from A.e to C.w
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.                      September 19, 1986
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73. _M_e_t_h_o_d _P_a_t_t_e_r_n
  74.  
  75.      A: arrow ellipse "unary selector" arrow right  3i  move
  76.      to  A  arc  -> cw line down 0.1i B: arc ellipse "binary
  77.      selector" arrow ellipse "argument variable" arc -> line
  78.      up 0.1i arc -> cw move to start of B line down 0.6i arc
  79.      ellipse "keyword selector" arrow C:  ellipse  "argument
  80.      variable"  arc line up 0.6i move to C.e right arc -> cw
  81.      arc cw arrow left 3.1i arc -> cw arc cw
  82.  
  83.      Argument variables must begin with a lower case letter,
  84.      and must be distinct from instance variables.
  85.  
  86. _T_e_m_p_o_r_a_r_y _V_a_r_i_a_b_l_e_s
  87.  
  88.      arrow circle "|" arrow A: ellipse "variable" arc ->  cw
  89.      arc  cw arrow left 1.3i arc cw arc cw move to A.e arrow
  90.      circle "|" arrow
  91.  
  92.      temporary variables must begin with lower case letters,
  93.      and  must  be  distinct from both instance and argument
  94.      variables.
  95.  
  96. _S_t_a_t_e_m_e_n_t_s
  97.  
  98.      arrow A: line right 1.5i move to start of A arc  ->  cw
  99.      arc  circle  "|^"  arc -> arc cw B: ellipse "expression"
  100.      arrow right 2.5i move to B.e move right 0.5i arc ->  cw
  101.      arc circle "." arc -> arc cw move to B.e arc -> cw line
  102.      down 0.4i arc -> cw circle "." arrow left 2.5i  arc  cw
  103.      arrow up 0.4i arc cw
  104.  
  105. _E_x_p_r_e_s_s_i_o_n
  106.  
  107.      A: arrow right 3.3i move to start of A arc  ->  cw  arc
  108.      ellipse  "variable"  arrow B: circle "<-" arc -> arc cw
  109.      C: ellipse "cascaded expression" arrow move to B.e  arc
  110.      -> cw arc cw arrow left 2.3i arc -> cw arc cw
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.                      September 19, 1986
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139. _C_a_s_c_a_d_e_d _E_x_p_r_e_s_s_i_o_n
  140.  
  141.      arrow ellipse "simple expression" arrow right 3.5i move
  142.      left  0.5i  right  arc  ->  cw  arc cw circle ";" arrow
  143.      ellipse "continuation" arc -> cw arc cw
  144.  
  145. _S_i_m_p_l_e _E_x_p_r_e_s_s_i_o_n
  146.  
  147.      arrow A: ellipse "binary" arrow move to A.e arc  ->  cw
  148.      line  down 0.2i arc cw ellipse "keyword" arc -> cw line
  149.      up 0.2i arc cw
  150.  
  151. _B_i_n_a_r_y
  152.  
  153.      arrow A: ellipse "unary" arrow move to A.e arc -> cw B:
  154.      line  down 0.2i arc cw ellipse "binary selector" arc ->
  155.      cw line up 0.2i arc cw
  156.  
  157. _U_n_a_r_y
  158.  
  159.      arrow A: ellipse "primary" B: line right 2i arc  ->  cw
  160.      arc  cw  ellipse "unary selector" arc -> cw arc cw move
  161.      to B.e arrow right
  162.  
  163. _P_r_i_m_i_t_i_v_e
  164.  
  165.      arrow right 0.2i circle  "<primitive"  wid  0.7i  arrow
  166.      right  0.2i  ellipse  "unsigned  integer" A: line right
  167.      1.7i arc -> cw arc cw ellipse "primary" arc ->  cw  arc
  168.      cw move to A.e arrow right circle ">" arrow right
  169.  
  170.      Unsigned integer must be a number in the range 0-255.
  171.  
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.  
  196.                      September 19, 1986
  197.  
  198.  
  199.  
  200.  
  201.  
  202.  
  203.  
  204.  
  205. _P_r_i_m_a_r_y
  206.  
  207.      A: arrow right 2i ellipse  "variable"  arrow  right  2i
  208.      move  to  start  of A move right 0.5i arc -> cw B: line
  209.      down 0.1i arc arrow right 1i  ellipse  "literal"  arrow
  210.      right 1i arc -> line up 0.1i arc cw move to end of B C:
  211.      arrow down 0.6i arc  arrow  right  1i  ellipse  "block"
  212.      arrow  right 1i arc -> line up 0.6i move to end of C Z:
  213.      arrow down 0.6i arc arrow right 1i ellipse  "primitive"
  214.      arrow  right  1i  arc  -> line up 0.6i move to end of Z
  215.      arrow down 0.6i arc circle "(" arrow ellipse  "cascaded
  216.      expression" arrow circle ")" arc -> line up 0.6i
  217.  
  218.      If variable begins with an upper case letter  it  is  a
  219.      class  name, otherwise variable must be instance, argu-
  220.      ment or temporary variable or pseudo variable name.
  221.  
  222. _C_o_n_t_i_n_u_a_t_i_o_n
  223.  
  224.      A: arrow arrow right 1.5i ellipse "unary  selector"  Z:
  225.      line  right  1.5i arrow right 0.5i move to end of Z arc
  226.      -> cw arrow down 2i arc -> cw arrow left 4.5i arc -> cw
  227.      arrow  up  2i  arc  -> cw move to end of A arc -> cw C:
  228.      arrow down 0.4i arc  ellipse  "binary  selector"  arrow
  229.      ellipse  "unary" arc -> line up 0.4i arc cw move to end
  230.      of C arrow down 0.6i arc  ellipse  "keyword"  arrow  D:
  231.      ellipse  "binary" arc -> line up 0.6i move to D.e right
  232.      arc -> cw arc cw arrow left 3.1i arc cw arc -> cw
  233.  
  234.  
  235.  
  236.  
  237.  
  238.  
  239.  
  240.  
  241.  
  242.  
  243.  
  244.  
  245.  
  246.  
  247.  
  248.  
  249.  
  250.  
  251.  
  252.  
  253.  
  254.  
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  
  261.  
  262.                      September 19, 1986
  263.  
  264.  
  265.  
  266.  
  267.  
  268.  
  269.  
  270.  
  271. _B_l_o_c_k
  272.  
  273.      arrow A: circle "[" arrow right  2.2i  ellipse  "state-
  274.      ments" arrow circle "]" arrow move to A.e arc -> cw arc
  275.      ellipse "block arguments" width 1.2i arc -> arc cw
  276.  
  277.      The last statement cannot be followed by a period.
  278.  
  279. _B_l_o_c_k _A_r_g_u_m_e_n_t_s
  280.  
  281.      arrow A: ellipse  "colon  variable"  arrow  circle  "|"
  282.      arrow  move to A.e arc -> cw arc cw arrow left 1.3i arc
  283.      cw arc cw
  284.  
  285. _L_i_t_e_r_a_l
  286.  
  287.      arrow right 1i A: arrow ellipse  "number"  arrow  right
  288.      1.5i move to start of A arc -> cw B: line down 0.1i arc
  289.      ellipse "symbol" arc -> line up 0.1i arc cw move to end
  290.      of  B  C:  arrow  down 0.6i arc ellipse "string" arc ->
  291.      line up 0.6i move to end of C D: arrow  down  0.6i  arc
  292.      ellipse  "character  constant" arc -> line up 0.6i move
  293.      to end of D H: arrow down 0.6i arc ellipse  "bytearray"
  294.      arc -> line up 0.6i move to end of H E: arrow down 0.6i
  295.      arc ellipse "array constant" arc -> line up 0.6i
  296.  
  297.  
  298.  
  299.  
  300.  
  301.  
  302.  
  303.  
  304.  
  305.  
  306.  
  307.  
  308.  
  309.  
  310.  
  311.  
  312.  
  313.  
  314.  
  315.  
  316.  
  317.  
  318.  
  319.  
  320.  
  321.  
  322.  
  323.  
  324.  
  325.  
  326.  
  327.  
  328.                      September 19, 1986
  329.  
  330.  
  331.  
  332.  
  333.  
  334.  
  335.  
  336.  
  337. _N_u_m_b_e_r
  338.  
  339.      A: arrow right 3.6i move to start of A arc  ->  cw  arc
  340.      ellipse  "base"  width 0.8i arc -> arc cw arc -> cw arc
  341.      ellipse  "sign"  width  0.8i  arc  ->  arc  cw  ellipse
  342.      "unsigned number" arrow
  343.  
  344. _B_a_s_e
  345.  
  346.      arrow ellipse "unsigned integer" arrow circle "r" arrow
  347.  
  348. _S_i_g_n
  349.  
  350.      A: arrow arrow right 3i move to end of A B: arc cw  arc
  351.      circle  "+" arc arc cw move to end of B arrow down 0.6i
  352.      arc circle "-" arc arrow up 0.6i
  353.  
  354. _U_n_s_i_g_n_e_d _N_u_m_b_e_r
  355.  
  356.      arrow A: ellipse "unsigned fraction" arc -> cw arc cir-
  357.      cle  "e"  arrow  right  0.25i ellipse "sign" width 0.8i
  358.      arrow right 0.25i ellipse "unsigned integer" arc -> arc
  359.      cw move to A.e arrow right 4.2i
  360.  
  361. _U_n_s_i_g_n_e_d _F_r_a_c_t_i_o_n
  362.  
  363.      arrow A: ellipse "unsigned integer" arc -> cw arc  cir-
  364.      cle  "." arrow ellipse "unsigned integer" arc -> arc cw
  365.      move to A.e arrow right 4i
  366.  
  367. _U_n_s_i_g_n_e_d _I_n_t_e_g_e_r
  368.  
  369.      arrow A: circle "digit" arrow move to A.e arc -> cw arc
  370.      cw arrow left 0.5i arc -> cw arc cw
  371.  
  372.  
  373.  
  374.  
  375.  
  376.  
  377.  
  378.  
  379.  
  380.  
  381.  
  382.  
  383.  
  384.  
  385.  
  386.  
  387.  
  388.  
  389.  
  390.  
  391.  
  392.  
  393.  
  394.                      September 19, 1986
  395.  
  396.  
  397.  
  398.  
  399.  
  400.  
  401.  
  402.  
  403. _S_y_m_b_o_l
  404.  
  405.      arrow circle "#" arrow A: circle "char" arrow  move  to
  406.      A.e arc cw arc cw arrow left 0.5i arc cw arc cw
  407.  
  408.      char is any non-space character  that  is  not  one  of
  409.      period, parenthesis or square braces.
  410.  
  411. _S_t_r_i_n_g
  412.  
  413.      arrow circle "'" arrow A: circle  "char"  arrow  circle
  414.      "'" arrow move to A.e arc cw arc cw arrow left 0.5i arc
  415.      cw arc cw
  416.  
  417.      To include a quote mark in a string, use  two  adjacent
  418.      quote marks.
  419.  
  420. _C_h_a_r_a_c_t_e_r _C_o_n_s_t_a_n_t
  421.  
  422.      arrow circle "$" arrow circle "char" arrow
  423.  
  424. _B_y_t_e_a_r_r_a_y
  425.  
  426.      arrow circle "#" arrow  circle  "["  arrow  A:  ellipse
  427.      "unsigned  integer"  arrow circle "]" arrow move to A.e
  428.      arc -> cw arc cw line left 1.3i arc -> cw arc cw
  429.  
  430.      Integer must be in the range 0 through 255.
  431.  
  432. _A_r_r_a_y _C_o_n_s_t_a_n_t
  433.  
  434.      arrow circle "#" arrow ellipse "array" arrow
  435.  
  436.  
  437.  
  438.  
  439.  
  440.  
  441.  
  442.  
  443.  
  444.  
  445.  
  446.  
  447.  
  448.  
  449.  
  450.  
  451.  
  452.  
  453.  
  454.  
  455.  
  456.  
  457.  
  458.  
  459.  
  460.                      September 19, 1986
  461.  
  462.  
  463.  
  464.  
  465.  
  466.  
  467.  
  468.  
  469. _A_r_r_a_y
  470.  
  471.      arrow circle  "("  arrow  A:  arc  ->  cw  arc  ellipse
  472.      "number"  arc  -> arc cw B: arrow circle ")" arrow move
  473.      to start of A arrow right 2.5i move  to  end  of  A  C:
  474.      arrow  down  0.6i  arc ellipse "symbol" arc -> arrow up
  475.      0.6i move to end of C D: arrow down  0.6i  arc  ellipse
  476.      "string" arc -> arrow up 0.6i move to end of D E: arrow
  477.      down 0.6i arc ellipse "character constant" arc -> arrow
  478.      up  0.6i  move  to end of E arrow down 0.6i arc ellipse
  479.      "array" arc -> arrow up 0.6i move to start of  B  right
  480.      arc  ->  cw arrow down 3i arc -> cw arrow left 2.4i arc
  481.      -> cw arrow up 3i arc -> cw
  482.  
  483.      The leading sharp sign can be omitted  in  symbols  and
  484.      arrays inside of an array list.  Binary selectors, key-
  485.      words, and other strings are treated as Symbols  inside
  486.      of arrays.
  487.  
  488.  
  489.  
  490.  
  491.  
  492.  
  493.  
  494.  
  495.  
  496.  
  497.  
  498.  
  499.  
  500.  
  501.  
  502.  
  503.  
  504.  
  505.  
  506.  
  507.  
  508.  
  509.  
  510.  
  511.  
  512.  
  513.  
  514.  
  515.  
  516.  
  517.  
  518.  
  519.  
  520.  
  521.  
  522.  
  523.  
  524.  
  525.  
  526.                      September 19, 1986
  527.  
  528.  
  529.