[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
<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> |
<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 |
<function>:
Sequence of alphabetical letters or numeric digits or |
<atom>: <indeterminate> <number> |
<indeterminate>:
Sequence of alphabetical letters or numeric digits or |
<number>: <rational number> <floating point number> <algebraic number> <complex number> |
<rational number>: 0, 1, -2, 3/4 |
<floating point number>: 0.0, 1.2e10 |
<algebraic number>: newalg(x^2+1), alg(0)^2+1 |
<complex number>: 1+ |
<string>: character sequence enclosed by two `"''s. |
<exponent vector>: `<<' <expr list> `>>' |
<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> |
<terminator>: `;' `$' |
<variable declaration>: [`extern' <program variable> [`,' <program variable>]* <terminator>]* |
<compound statement>: `{' <stat list> `}' |
<stat list>: [<statement>]* |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |