Download Specware 4.2 Language Manual

Transcript
Appendix A. Metaslang Grammar
actual-parameter ::= closed-expression
infix-application ::= operand infix-operator operand
operand ::= tight-expression
infix-operator ::= op-name | inbuilt-infix-op
Op-names.
op-name ::= name
Literals.
literal ::=
boolean-literal
| nat-literal
| char-literal
| string-literal
Boolean-literals.
boolean-literal ::= true | false
Nat-literals.
nat-literal ::=
decimal-digit
| 0 X hexadecimal-digit
| 0 x hexadecimal-digit
| 0 O octal-digit
| 0 o octal-digit
| 0 B binary-digit
| 0 b binary-digit
{
{
{
{
{
{
{
decimal-digit }*
hexadecimal-digit }*
hexadecimal-digit }*
octal-digit }*
octal-digit }*
binary-digit }*
binary-digit }*
hexadecimal-digit ::=
decimal-digit
| a | b | c | d | e | f
| A | B | C | D | E | F
octal-digit ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7
binary-digit ::= 0 | 1
94