名誉革命は1688年に起こったが、すべての人々に支持された革命ではなく、議会が王位継承問題にまで口出しすることの正当性を疑問視する声も小さくなかった。こうした言説は主にトーリー議員たちから発せられた。さらに相次ぐ国内・国外の武力衝突など、名誉革命後の権力体制は盤石とはほど遠い状態にあった。革命を支持する人々は、革命を称揚し、反対勢力を封じ込める必要に迫られていた。そこで政権は、敵対国フランスなどカトリック勢力とジャコバイトを結びつけ、イギリスの共通の敵というキャンペーンを張った。とりわけウォルポールは政敵に「名誉革命体制の転覆を狙う危険分子」というレッテルを貼りつけ、異端化することにより、20年以上にわたる長期政権の安定を得た。こうしたキャンペーンは、ジャコバイトに同情的であった人々をも変化させていった。ジャコバイトと見なされることは政治生命にかかわることになり、たとえステュアート家に想いを寄せていても、それを公言することはできなくなっていった。政治家たちの対立軸は名誉革命体制対ジャコバイトから、どちらがより名誉革命体制の忠実な後継者であるかを争う図式となっていき、結果的に名誉革命体制は強化され、ジャコバイトの存在感は急速に薄れていった。そして、議会内の対立構図はホイッグ対トーリーからコート対カントリという図式も交え、複雑に交錯してゆくことになった。
ジャコバイトは名誉革命を批判し、ステュアート朝を復興させることを目的としていたが、それが結果的に野党や反体制派を、名誉革命転覆を狙うジャコバイトとしてレッテル貼りをするという事態をまねき、彼らを封じ込めたのである。ジャコバイトと見なされたトーリーはもはやウォルポール政権に対抗しえず、ホイッグ対トーリーという対決の図式はより複雑なものとなっていった。
課題プログラムのYacc構文定義は以下のように作ることができる。これをたとえば、ファイル "wiki_sample.y" に入れ、Lex出力ソースに代えて後述の「後半」内容をつないで作成し、上記#コマンド例のように実行すればよい。 %{         /*----- 【1】ここからＣ宣言部（C declarations） -----*/ #include <stdio.h> #include <ctype.h> #include <math.h> #define YYDEBUG 1 %}             /*----- 【2】ここからYacc宣言部（Yacc declarations） -----*/ %start dialogue;   /* 文法規則部で記述する最大の構造の名前 */  %union {           /* 意味値に可能な値型の集合 */    int             ival;       /*  4バイト．*/    long double     ldval;      /* 12バイト．*/ }  %token         EOL         /* トークン  （終端記号）の定義．*/ %token <ldval> NUM         /* トークン  （終端記号）とその意味値yylvalの型の定義．*/ %type  <ldval> expr        /* グループ（非終端記号）とその意味値yylvalの型の定義．*/  %left  '+'  '-'            /* 優先順序等の定義. 優先の低から高に配列する．*/                            /* leftは左結合性．例：1-2-3 は 1-(2-3) ではなく (1-2)-3 */ %left  '*'  '/'  '%' %left          UPLUS   UMINUS  /* 単項演算子のほうの記号 */ %right         EXPONENT;   /* べき乗を表す「**」*/  %%            /*----- 【3】ここから文法規則部（Grammar rules） -----*/ dialogue:  /* 空 */                                    /* 規則1  0行もOK．*/    |   dialogue            EOL { prompt(); }           /* 規則2  空行．*/    |   dialogue    qa      EOL                         /* 規則3  Q&A行. */    |   dialogue    error   EOL { yyerrok; prompt(); }  /* 規則4  エラー回復処理．*/    /* 末尾に「;」を書いてもよい．*/  qa:        expr    { printf("  Ans = %Lg", $1); prompt(); }/* 規則5  改行で計算，表示．*/  expr:  NUM                                             /* 規則6  「$$=$1;」は省略可 */    |   '+'     expr    %prec   UPLUS   { $$ =   $2; }  /* 規則7  優先順位変更．*/     |   '-'     expr    %prec   UMINUS  { $$ = - $2; }  /* 規則8  優先順位変更．*/     |   expr    '+'     expr    { $$ = $1 + $3; }       /* 規則9  加算．*/    |   expr    '-'     expr    { $$ = $1 - $3; }       /* 規則10 減算．*/    |   expr    '*'     expr    { $$ = $1 * $3; }       /* 規則11 乗算．*/    |   expr    '/'     expr    { $$ = $1 / $3; }       /* 規則12 除算．*/    |   expr    '%'     expr    { $$ = ((int)$1) % ((int)$3); }     /* 規則13 剰余．*/    |   expr    EXPONENT expr   { $$ = powf($1, $3); }  /* 規則14 指数．powfはC99規格．*/    |   '('     expr    ')'     { $$ = $2; }            /* 規則15 カッコ．*/  %%         /*----- 【4】ここから追加Ｃプログラム部（Additional C code） -----*/ 《ここに後述の「[[#Yacc構文定義ファイルの内容（後半）|後半]]」を記述する》