SIC SYNTAX

###
SIC SYNTAX

              SYNTAX of SIC commands
         and
            [SIC\]SIC SYNTAX [FIXED|FREE]

        The SIC syntax is the following :
            [LANG\]COMM [Arg1 [Arg2 [...]]] [/OPT1 [p1 [...]] [/OPT2 [...]]
        where [] indicates optional fields.

        Language, command and options can be  abbreviated.  The  language  field
        (LANG\) is optional but may help resolve ambiguities.

        First,  the  line  is stripped of duplicate separators (spaces or tabs).
        Character strings (entities included between double quotes) are not  af-
        fected by this formatting.

        Then  symbols  (entities  included  between simple quotes, plus the lan-
        guage-command field) and tokens (macros  parameters  1  2  etc...)   are
        translated, even within character strings.

        Finally,  the line is analysed for ambiguities and the language, command
        and option names are expanded. An option is a word beginning by a  slash
        (e.g. /OPT1 is an option in the above example).

        All arguments can be character or mathematical variables or expressions,
        depending on the type required by the program. Character expressions can
        be  concatenated  with implicit formatting of variables and mathematical
        expressions, such as in
            "The real number PI is equal to "'ACOS(-1.0)'
        Variable and expressions are not evaluated during the parsing, but  only
        during  the  execution.  Character  variables  must  be included between
        quotes for translation, e.g.
              DEFINE CHARACTER C*6
              LET C 3.14159
              DEFINE REAL A
              LET A 'C'/PI
              EXAMINE A
                A       =    0.9999705

            [SIC\]SIC SYNTAX [FIXED|FREE]

        controls the syntax for mathematic operations. In FIXED syntax, the  LET
        command is compulsory. In FREE syntax, commands lines like
               A[I,J] = SIN((2*I+J)/PI)
        where A is a known variable, are recognized as assignement and automati-
        cally expanded to the equivalent FIXED syntax
               LET A[I,J] SIN((2*I+J)/PI)
        Free syntax cannot be used for the LET /WHERE command.