[ Previous | Next | Table of Contents | Index | Library Home | Legal | Search ]

Communications Programming Concepts


XDR Language Specification

The eXternal Data Representation (XDR) language specification uses an extended Backus Naur form notation for describing the XDR language. The following is a brief description of the notation:

The following specification illustrates the XDR notation:

"a" "very" ("," "very")* ["cold" "and"] "rainy" ("day" | "night")

An infinite number of strings match this pattern, including the following examples:

Lexical Notes

The following lexical notes apply to XDR language specification:

Declarations, Enumerations, Structures, and Unions

The following XDR syntax describes declarations, enumerations, structures, and unions:

declaration:type-specifier identifier

| type-specifier identifier "[" value "]"

| type-specifier identifier "<" [ value ] "<"

| "opaque" identifier "[" value "]"

| "string" identifier "[" value "]"

| type-specifier "*" identifier

|"void"

value:

constant

 | identifier

type-specifier:

[ "unsigned" ] "int"

| [ "unsigned" ] "hyper"

| "float"

| "double"

| "bool"

| enum-type-spec

| struct-type-spec

| union-type-spec

| identifier

enum-type-spec:

"enum" enum-body

enum-body:

"{"

( identifier "=" value )

("," identifier "=" value )*

"}"

struct-type-spec:

"struct" struct-body

struct-body:

"{"

( declaration ";" )

( declaration ";" )*

"}"

union-type-spec:

"union" union-body

union-body:

"switch" "(" declaration ")" "{"

( "case" value ":" declaration ";" )

( "case" value ":" declaration ";" )*

[ "default" ":" declaration ";" ]

"}"

constant-def:

"const" identifier "=" constant ";"

type-def

"typedef" declaration ";"

| "enum" identifier enum-body ";"

| "struct" identifier struct-body ";"

| "union" identifier union-body ";"

definition:

type-def

| constant-def

specification:

definition *

Syntax Notes

The following considerations pertain to XDR language syntax:


[ Previous | Next | Table of Contents | Index | Library Home | Legal | Search ]