Go to the first, previous, next, last section, table of contents.

## Details of syntax

    <expression>:
        `('<expression>`)'
        <expression> <binary operator> <expression>
        `+' <expression>
        `-' <expression>
        <left value>
        <left value> <assignment operator> <expression>
        <left value> `++'
        <left value> `--'
        `++' <left value>
        `--' <left value>
        `!' <expression>
        <expression> `?' <expression> `:' <expression>
        <function> `(' <expr list> `)'
        <function> `(' <expr list> `|' <option list> `)'
        <string>
        <exponent vector>
        <atom>
        <list>

(See section various expressions.)

    <left value>:
        <program variable> [`['<expression>`]']*

    <binary operator>:
        `+' `-' `*' `/' `%' `^'(exponentiation)
        `==' `!=' `<' `>' `<=' `>=' `&&' `||'
        `==' `!=' `<' `>' `<=' `>=' `&&' `||'

    <assignment operator>:
        `=' `+=' `-=' `*=' `/=' `%=' `^='

    <expr list>:
        <empty>
        <expression> [`,' <expression>]*

    <option>:
        Character sequence beginning with an alphabetical letter `=' <expr>

    <option list>:
        <option>
        <option> [`,' <option>]*

    <list>:
        `[' <expr list> `]'

    <program variable>:
       Sequence of alphabetical letters or numeric digits or _
       that begins with a capital alphabetical letter
       (X,Y,Japan etc.)

(See section variables and indeterminates.)

    <function>:
       Sequence of alphabetical letters or numeric digits or _
       that begins with a small alphabetical letter
       (fctr,gcd etc.)

    <atom>:
       <indeterminate>
       <number>

    <indeterminate>:
       Sequence of alphabetical letters or numeric digits or _
       that begin with a small alphabetical letter
       (a,bCD,c1_2 etc.)

(See section variables and indeterminates.)

    <number>:
       <rational number>
       <floating point number>
       <algebraic number>
       <complex number>

(See section Types of numbers.)

    <rational number>:
       0, 1, -2, 3/4

    <floating point number>:
       0.0, 1.2e10

    <algebraic number>:
       newalg(x^2+1), alg(0)^2+1

(See section Algebraic numbers.)

    <complex number>:
       1+@i, 2.3*@i

    <string>:
       character sequence enclosed by two `"''s.

    <exponent vector>:
       `<<' <expr list> `>>'

(See section Groebner basis computation.)

    <statement>:
        <expression> <terminator>
        <compound statement>
        `break' <terminator>
        `continue' <terminator>
        `return' <terminator>
        `return' <expression> <terminator>
        `if' `(' <expr list> `)' <statement>
        `if' `(' <expr list> `)' <statement> `else' <statement>
        `for' `(' <expr list> `;' <expr list> `;' <expr list> `)' <statement>
        `do' <statement> `while' `(' <expr list> `)' <terminator>
        `while' `(' <expr list> `)' <statement>
        `def' <function> `(' <expr list> `)' `{' <variable declaration> <stat list> `}'
        `end(quit)' <terminator>

(See section statements.)

    <terminator>:
        `;' `$'

    <variable declaration>:
        [`extern' <program variable> [`,' <program variable>]* <terminator>]*

    <compound statement>:
        `{' <stat list> `}'

    <stat list>:
        [<statement>]*

Go to the first, previous, next, last section, table of contents.