; POPSYM
;---------------------------------------------------------------
;! Describes the symbols used in POPS
;# INFORMATION POPS
;-----------------------------------------------------------------------
;;  Copyright (C) 1995, 2000, 2008
;;  Associated Universities, Inc. Washington DC, USA.
;;
;;  This program is free software; you can redistribute it and/or
;;  modify it under the terms of the GNU General Public License as
;;  published by the Free Software Foundation; either version 2 of
;;  the License, or (at your option) any later version.
;;
;;  This program is distributed in the hope that it will be useful,
;;  but WITHOUT ANY WARRANTY; without even the implied warranty of
;;  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;;  GNU General Public License for more details.
;;
;;  You should have received a copy of the GNU General Public
;;  License along with this program; if not, write to the Free
;;  Software Foundation, Inc., 675 Massachusetts Ave, Cambridge,
;;  MA 02139, USA.
;;
;;  Correspondence concerning AIPS should be addressed as follows:
;;         Internet email: aipsmail@nrao.edu.
;;         Postal address: AIPS Project Office
;;                         National Radio Astronomy Observatory
;;                         520 Edgemont Road
;;                         Charlottesville, VA 22903-2475 USA
;-----------------------------------------------------------------------
POPSYM    LLLLLLLLLLLLUUUUUUUUUUUU CCCCCCCCCCCCCCCCCCCCCCCCCCCCC
----------------------------------------------------------------
POPSYM
Type:  Symbols used in the POPS interpretive language

    VERB      USE        COMMENTS

                   ----Arithmetic expressions

     +       A + B       Add the expression A to B
     -       A - B       Subtract the expression B from A
     *       A * B       Multiply the expression A with B
     /       A / B       Divide the expression A by B
     **      A ** B      Calculate A to the power B
     ( )     (A+B)*C     Grouping expressions as desired
     =       A = B       Store the value of B into A
     ,       A = 3,5,4   Separator of elements in an array
     ~       A(i) ~ 1,2,3  Store values in A(i),A(i+1)...
                         (change only as many as on RHS)
     :       TO          Equivalent to the verb TO
     ;                   Separator between AIPS statements

                   ----Logical expressions

     >       A > B       A greater than B
     <       A < B       A less than B
     =       A = B       A equal B (numeric or string)
     >=      A >= B      A equal to or greater than B
     <=      A <= B      A equal to or less than B
     <>      A <> B      A not equal to B (numeric or string)
     !       A ! B       A or B
     &       A & B       A and B
     ^       ^ A         not A

                   ----String expressions

  !!       A !! B        string = string A followed by string B
  SUBSTR   SUBSTR(A,i,j) string = chars i through j of string A
  LENGTH   LENGTH(A)     position last non-blank in A
  CHAR     CHAR(A)       convert number A to string
  VALUE    VALUE(A)      convert string A to number


                   ----Looping constructions

  (FOR-TO-BY-END)        FOR I=1 TO 7 BY 2
                         <any valid set of AIPS syntax>
                         END

  (WHILE-END)            WHILE <any logical expression>
                         <any valid set of AIPS syntax>
                         END

  (IF-THEN-ELSE-END)     IF <any logical expression>
                         THEN <any valid set of AIPS syntax>
                         ELSE <any valid set of AIPS syntax>
                         END

                   ----Built-in functions

  ACOS          Arc-cosine
  ASIN          Arc-sine
  ATAN          Arctangent (one argument)
  ATAN2         Arctangent (two arguments)
  COS           Cosine (degrees)
  SIN           Sine (degrees)
  TAN           Tangent (degrees)
  EXP           Exponential
  LN            Log base e
  LOG           Log base 10
  SQRT          Square-root
  MAX           Maximum i.e. X = MAX (A, B)
  MIN           Minimum i.e. X = MIN (A, B)
  MODULUS       Root-square sum of two arguments
  MOD(A,B)      A - (A/B) * B  i.e. remainder of A/B
  CEIL(A)       Lowest integer >= A
  FLOOR(A)      Highest integer <= A

                   ----Procedure building verbs

  PROC      PV  Begin building a procedure
  PROCEDUR  PV  Begin building a procedure
  LIST      pV  List a procedure
  EDIT      PV  Edit a procedure
  ENDEDIT   PV  End editing a procedure
  ERASE     PV  Delete line(s) of a procedure
  MODIFY    PV  Modify a line in a procedure
  RETURN    V   Last statement in a procedure
  FINISH    PV  End procedure building

                   ----Variable declarations

  SCALAR    pV  Declare scalars
  ARRAY     pV  Declare arrays
  STRING    pV  Declare strings

                   ----Input/Output functions

  PRINT     V   Print the following keyword value(s)
  TYPE      V   Print the following keyword value(s)
  READ      V   Read value(s) from terminal after # prompt

                   ----Other information

  CORE      pV  Amount of core left in POPS
  COMPRESS  PV  Compress the core area, recovering lost space
                and acquiring any new vocabulary
  CLRTEMP   V   Clear the temp data array
  DEBUG     pV  Debug: turns on compiler debug information
  DUMP      V   Dump K array on terminal screen
  SCRATCH   PV  Remove procedures in POPS
  $         PV  Makes rest of input line a comment
----------------------------------------------------------------
