program-definition:
"program" program-ident "{"
version-list
"}" "=" value;
version-list:
version ";"
version ";" version-list
version:
"version" version-ident "{"
procedure-list
"}" "=" value;
procedure-list:
procedure ";"
procedure ";" procedure-list
procedure:
type-ident procedure-ident "(" type-ident ")" "=" value;
-N オプションが指定されると、rpcgen は次の構文も認識できます。
手続き:
type-ident procedure-ident "(" type-ident-list ")" "=" value;
type-ident-list:
type-ident
type-ident "," type-ident-list
次に例を示します。
/*
* time.x: 時間を取得、または設定します。
* 時間は、1970 年 1 月 1 日 0:00 から経過した秒数で表されます。
*/
program TIMEPROG {
version TIMEVERS {
unsigned int TIMEGET(void) = 1;
void TIMESET(unsigned) = 2;
} = 1;
} = 0x20000044;
|
void という引数の型は、引数が渡されないことを意味しています。
次のファイルはコンパイルされると、出力ヘッダーファイル内でこれらの#define 文になります。
#define TIMEPROG 0x20000044 #define TIMEVERS 1 #define TIMEGET 1 #define TIMESET 2