OpenNTPDソースコードファイルを調べていると、、、など}%
のCコードやparse.yという名前のファイルでは見たことのない新しいキーワードや構文に気づきました。%%
%type
%token
%{
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
...
%}
%token LISTEN ON
%token SERVER SERVERS SENSOR CORRECTION RTABLE REFID WEIGHT
%token ERROR
%token <v.string> STRING
%token <v.number>
....
grammar : /* empty */
| grammar '\n'
| grammar main '\n'
| grammar error '\n' { file->errors++; }
;
main : LISTEN ON address listen_opts {
struct listen_addr *la;
struct ntp_addr *h, *next;
if ($3->a)
...
これらのキーワードを除いて、ファイルの内容のほとんどは通常のC構文を持っています。誰かがこれらのキーワードが何であるか、そしてそれらが何のために使われるか知っていますか?