    001    package ch.uzh.ifi.attempto.acewiki.core.grammar;
    002
    003    import java.util.ArrayList;
    004    import java.util.HashMap;
    005
    006    import ch.uzh.ifi.attempto.chartparser.Nonterminal;
    007    import ch.uzh.ifi.attempto.chartparser.Rule;
    008    import ch.uzh.ifi.attempto.chartparser.StringRef;
    009    import ch.uzh.ifi.attempto.chartparser.Terminal;
    010    import ch.uzh.ifi.attempto.chartparser.Category;
    011
    012    /**
    013     * This grammar class is automatically generated by the SWI Prolog program "generate_java.pl".
    014     */
    015    @SuppressWarnings("all")
    016    public class StandardGrammar extends ch.uzh.ifi.attempto.chartparser.Grammar {
    017
    018            /**
    019             * Creates a new grammar object.
    020             */
    021            public StandardGrammar() {
    022                    super("text");
    023                    ArrayList<Category> l = new ArrayList<Category>();
    024                    Category c;
    025                    HashMap<Integer, StringRef> featureHash = new HashMap<Integer, StringRef>();
    026
    027                    l.clear();
    028                    featureHash.clear();
    029                    c = new Nonterminal("text");
    030                    l.add(c);
    031                    addRule(new Rule(l, false));
    032                    l.clear();
    033                    featureHash.clear();
    034                    c = new Nonterminal("text");
    035                    l.add(c);
    036                    c = new Nonterminal("textelement");
    037                    l.add(c);
    038                    c = new Nonterminal("text");
    039                    l.add(c);
    040                    addRule(new Rule(l, false));
    041                    l.clear();
    042                    featureHash.clear();
    043                    c = new Nonterminal("textelement");
    044                    l.add(c);
    045                    c = new Nonterminal("declaration");
    046                    l.add(c);
    047                    addRule(new Rule(l, false));
    048                    l.clear();
    049                    featureHash.clear();
    050                    c = new Nonterminal("textelement");
    051                    l.add(c);
    052                    c = new Nonterminal("question");
    053                    l.add(c);
    054                    addRule(new Rule(l, false));
    055                    l.clear();
    056                    featureHash.clear();
    057                    c = new Nonterminal("declaration");
    058                    l.add(c);
    059                    c = new Nonterminal("sentence");
    060                    l.add(c);
    061                    c = new Terminal(".");
    062                    l.add(c);
    063                    addRule(new Rule(l, false));
    064                    l.clear();
    065                    featureHash.clear();
    066                    c = new Nonterminal("question");
    067                    l.add(c);
    068                    c = new Nonterminal("simple_sentence_2");
    069                    c.setFeature("whin", new StringRef("right"));
    070                    c.setFeature("whout", new StringRef("left"));
    071                    l.add(c);
    072                    c = new Terminal("?");
    073                    l.add(c);
    074                    addRule(new Rule(l, false));
    075                    l.clear();
    076                    featureHash.clear();
    077                    c = new Nonterminal("sentence");
    078                    l.add(c);
    079                    c = new Nonterminal("sentence_coord_1");
    080                    l.add(c);
    081                    addRule(new Rule(l, true));
    082                    l.clear();
    083                    featureHash.clear();
    084                    c = new Nonterminal("sentence");
    085                    l.add(c);
    086                    c = new Terminal("for every");
    087                    l.add(c);
    088                    c = new Nonterminal("noun_constr");
    089                    l.add(c);
    090                    c = new Nonterminal("sentence_coord_1");
    091                    l.add(c);
    092                    addRule(new Rule(l, false));
    093                    l.clear();
    094                    featureHash.clear();
    095                    c = new Nonterminal("sentence");
    096                    l.add(c);
    097                    c = new Terminal("if");
    098                    l.add(c);
    099                    c = new Nonterminal("sentence_coord_1");
    100                    l.add(c);
    101                    c = new Terminal("then");
    102                    l.add(c);
    103                    c = new Nonterminal("sentence_coord_1");
    104                    l.add(c);
    105                    addRule(new Rule(l, false));
    106                    l.clear();
    107                    featureHash.clear();
    108                    c = new Nonterminal("sentence_coord_1");
    109                    l.add(c);
    110                    c = new Nonterminal("sentence_coord_2");
    111                    l.add(c);
    112                    addRule(new Rule(l, true));
    113                    l.clear();
    114                    featureHash.clear();
    115                    c = new Nonterminal("sentence_coord_1");
    116                    l.add(c);
    117                    c = new Nonterminal("sentence_coord_2");
    118                    l.add(c);
    119                    c = new Terminal("or");
    120                    l.add(c);
    121                    c = new Nonterminal("sentence_coord_1");
    122                    l.add(c);
    123                    addRule(new Rule(l, false));
    124                    l.clear();
    125                    featureHash.clear();
    126                    c = new Nonterminal("sentence_coord_2");
    127                    l.add(c);
    128                    c = new Nonterminal("simple_sentence");
    129                    l.add(c);
    130                    addRule(new Rule(l, true));
    131                    l.clear();
    132                    featureHash.clear();
    133                    c = new Nonterminal("sentence_coord_2");
    134                    l.add(c);
    135                    c = new Nonterminal("simple_sentence");
    136                    l.add(c);
    137                    c = new Terminal("and");
    138                    l.add(c);
    139                    c = new Nonterminal("sentence_coord_2");
    140                    l.add(c);
    141                    addRule(new Rule(l, true));
    142                    l.clear();
    143                    featureHash.clear();
    144                    c = new Nonterminal("simple_sentence");
    145                    l.add(c);
    146                    c = new Terminal("it is false that");
    147                    l.add(c);
    148                    c = new Nonterminal("simple_sentence_2");
    149                    c.setFeature("whin", new StringRef("minus"));
    150                    c.setFeature("whout", new StringRef("minus"));
    151                    l.add(c);
    152                    addRule(new Rule(l, false));
    153                    l.clear();
    154                    featureHash.clear();
    155                    c = new Nonterminal("simple_sentence");
    156                    l.add(c);
    157                    c = new Terminal("there is");
    158                    l.add(c);
    159                    c = new Nonterminal("nounphrase");
    160                    c.setFeature("exist", new StringRef("plus"));
    161                    c.setFeature("def", new StringRef("minus"));
    162                    c.setFeature("pl", new StringRef("minus"));
    163                    c.setFeature("verb", new StringRef("be"));
    164                    c.setFeature("whin", new StringRef("minus"));
    165                    c.setFeature("whout", new StringRef("minus"));
    166                    l.add(c);
    167                    addRule(new Rule(l, true));
    168                    l.clear();
    169                    featureHash.clear();
    170                    c = new Nonterminal("simple_sentence");
    171                    l.add(c);
    172                    c = new Terminal("there is");
    173                    l.add(c);
    174                    c = new Nonterminal("nounphrase");
    175                    c.setFeature("exist", new StringRef("plus"));
    176                    c.setFeature("def", new StringRef("minus"));
    177                    c.setFeature("pl", new StringRef("minus"));
    178                    c.setFeature("verb", new StringRef("be"));
    179                    c.setFeature("whin", new StringRef("minus"));
    180                    c.setFeature("whout", new StringRef("minus"));
    181                    l.add(c);
    182                    c = new Terminal("such that");
    183                    l.add(c);
    184                    c = new Nonterminal("simple_sentence");
    185                    l.add(c);
    186                    addRule(new Rule(l, true));
    187                    l.clear();
    188                    featureHash.clear();
    189                    c = new Nonterminal("simple_sentence");
    190                    l.add(c);
    191                    c = new Terminal("there are");
    192                    l.add(c);
    193                    c = new Nonterminal("nounphrase");
    194                    c.setFeature("exist", new StringRef("plus"));
    195                    c.setFeature("def", new StringRef("minus"));
    196                    c.setFeature("pl", new StringRef("plus"));
    197                    c.setFeature("whin", new StringRef("minus"));
    198                    c.setFeature("whout", new StringRef("minus"));
    199                    l.add(c);
    200                    addRule(new Rule(l, true));
    201                    l.clear();
    202                    featureHash.clear();
    203                    c = new Nonterminal("simple_sentence");
    204                    l.add(c);
    205                    c = new Nonterminal("simple_sentence_2");
    206                    c.setFeature("whin", new StringRef("minus"));
    207                    c.setFeature("whout", new StringRef("minus"));
    208                    l.add(c);
    209                    addRule(new Rule(l, true));
    210                    l.clear();
    211                    featureHash.clear();
    212                    c = new Nonterminal("simple_sentence_2");
    213                    setFeature(c, "whin", 0, featureHash);
    214                    setFeature(c, "whout", 1, featureHash);
    215                    l.add(c);
    216                    c = new Nonterminal("nounphrase");
    217                    c.setFeature("exist", new StringRef("plus"));
    218                    setFeature(c, "pl", 2, featureHash);
    219                    setFeature(c, "whin", 0, featureHash);
    220                    setFeature(c, "whout", 3, featureHash);
    221                    l.add(c);
    222                    c = new Nonterminal("verbphrase_coord_1");
    223                    setFeature(c, "pl", 2, featureHash);
    224                    setFeature(c, "whin", 3, featureHash);
    225                    setFeature(c, "whout", 1, featureHash);
    226                    l.add(c);
    227                    addRule(new Rule(l, true));
    228                    l.clear();
    229                    featureHash.clear();
    230                    c = new Nonterminal("simple_sentence_2");
    231                    c.setFeature("whin", new StringRef("minus"));
    232                    c.setFeature("whout", new StringRef("minus"));
    233                    l.add(c);
    234                    c = new Nonterminal("nounphrase");
    235                    c.setFeature("exist", new StringRef("minus"));
    236                    l.add(c);
    237                    c = new Nonterminal("verbphrase_coord_1");
    238                    c.setFeature("pl", new StringRef("minus"));
    239                    c.setFeature("whin", new StringRef("minus"));
    240                    c.setFeature("whout", new StringRef("minus"));
    241                    l.add(c);
    242                    addRule(new Rule(l, false));
    243                    l.clear();
    244                    featureHash.clear();
    245                    c = new Nonterminal("verbphrase_coord_1");
    246                    setFeature(c, "pl", 0, featureHash);
    247                    setFeature(c, "whin", 1, featureHash);
    248                    setFeature(c, "whout", 2, featureHash);
    249                    l.add(c);
    250                    c = new Nonterminal("verbphrase_coord_2");
    251                    setFeature(c, "pl", 0, featureHash);
    252                    setFeature(c, "whin", 1, featureHash);
    253                    setFeature(c, "whout", 2, featureHash);
    254                    l.add(c);
    255                    addRule(new Rule(l, true));
    256                    l.clear();
    257                    featureHash.clear();
    258                    c = new Nonterminal("verbphrase_coord_1");
    259                    setFeature(c, "pl", 0, featureHash);
    260                    setFeature(c, "whin", 1, featureHash);
    261                    setFeature(c, "whout", 1, featureHash);
    262                    l.add(c);
    263                    c = new Nonterminal("verbphrase_coord_2");
    264                    setFeature(c, "pl", 0, featureHash);
    265                    setFeature(c, "whin", 1, featureHash);
    266                    setFeature(c, "whout", 1, featureHash);
    267                    l.add(c);
    268                    c = new Terminal("or");
    269                    l.add(c);
    270                    c = new Nonterminal("verbphrase_coord_1");
    271                    setFeature(c, "pl", 0, featureHash);
    272                    setFeature(c, "whin", 1, featureHash);
    273                    setFeature(c, "whout", 1, featureHash);
    274                    l.add(c);
    275                    addRule(new Rule(l, false));
    276                    l.clear();
    277                    featureHash.clear();
    278                    c = new Nonterminal("verbphrase_coord_2");
    279                    setFeature(c, "pl", 0, featureHash);
    280                    setFeature(c, "whin", 1, featureHash);
    281                    setFeature(c, "whout", 2, featureHash);
    282                    l.add(c);
    283                    c = new Nonterminal("verbphrase_cut");
    284                    setFeature(c, "pl", 0, featureHash);
    285                    setFeature(c, "whin", 1, featureHash);
    286                    setFeature(c, "whout", 2, featureHash);
    287                    l.add(c);
    288                    addRule(new Rule(l, true));
    289                    l.clear();
    290                    featureHash.clear();
    291                    c = new Nonterminal("verbphrase_coord_2");
    292                    setFeature(c, "pl", 0, featureHash);
    293                    setFeature(c, "whin", 1, featureHash);
    294                    setFeature(c, "whout", 1, featureHash);
    295                    l.add(c);
    296                    c = new Nonterminal("verbphrase_cut");
    297                    setFeature(c, "pl", 0, featureHash);
    298                    setFeature(c, "whin", 1, featureHash);
    299                    setFeature(c, "whout", 1, featureHash);
    300                    l.add(c);
    301                    c = new Terminal("and");
    302                    l.add(c);
    303                    c = new Nonterminal("verbphrase_coord_2");
    304                    setFeature(c, "pl", 0, featureHash);
    305                    setFeature(c, "whin", 1, featureHash);
    306                    setFeature(c, "whout", 1, featureHash);
    307                    l.add(c);
    308                    addRule(new Rule(l, true));
    309                    l.clear();
    310                    featureHash.clear();
    311                    c = new Nonterminal("verbphrase_cut");
    312                    setFeature(c, "that", 0, featureHash);
    313                    setFeature(c, "pl", 1, featureHash);
    314                    setFeature(c, "whin", 2, featureHash);
    315                    setFeature(c, "whout", 3, featureHash);
    316                    l.add(c);
    317                    c = new Nonterminal("verbphrase");
    318                    c.setFeature("neg", new StringRef("minus"));
    319                    setFeature(c, "that", 0, featureHash);
    320                    setFeature(c, "pl", 1, featureHash);
    321                    setFeature(c, "whin", 2, featureHash);
    322                    setFeature(c, "whout", 3, featureHash);
    323                    l.add(c);
    324                    addRule(new Rule(l, true));
    325                    l.clear();
    326                    featureHash.clear();
    327                    c = new Nonterminal("verbphrase_cut");
    328                    setFeature(c, "that", 0, featureHash);
    329                    setFeature(c, "pl", 1, featureHash);
    330                    setFeature(c, "whin", 2, featureHash);
    331                    setFeature(c, "whout", 3, featureHash);
    332                    l.add(c);
    333                    c = new Nonterminal("verbphrase");
    334                    c.setFeature("neg", new StringRef("plus"));
    335                    setFeature(c, "that", 0, featureHash);
    336                    setFeature(c, "pl", 1, featureHash);
    337                    setFeature(c, "whin", 2, featureHash);
    338                    setFeature(c, "whout", 3, featureHash);
    339                    l.add(c);
    340                    addRule(new Rule(l, false));
    341                    l.clear();
    342                    featureHash.clear();
    343                    c = new Nonterminal("verbphrase");
    344                    setFeature(c, "neg", 0, featureHash);
    345                    setFeature(c, "that", 1, featureHash);
    346                    setFeature(c, "pl", 2, featureHash);
    347                    setFeature(c, "whin", 3, featureHash);
    348                    setFeature(c, "whout", 4, featureHash);
    349                    l.add(c);
    350                    c = new Nonterminal("verb");
    351                    c.setFeature("verb", new StringRef("full"));
    352                    setFeature(c, "pl", 2, featureHash);
    353                    setFeature(c, "neg", 0, featureHash);
    354                    l.add(c);
    355                    c = new Nonterminal("nounphrase_cut");
    356                    setFeature(c, "that", 1, featureHash);
    357                    c.setFeature("verb", new StringRef("full"));
    358                    setFeature(c, "whin", 3, featureHash);
    359                    setFeature(c, "whout", 4, featureHash);
    360                    l.add(c);
    361                    addRule(new Rule(l, true));
    362                    l.clear();
    363                    featureHash.clear();
    364                    c = new Nonterminal("verbphrase");
    365                    setFeature(c, "neg", 0, featureHash);
    366                    setFeature(c, "that", 1, featureHash);
    367                    setFeature(c, "pl", 2, featureHash);
    368                    setFeature(c, "whin", 3, featureHash);
    369                    setFeature(c, "whout", 4, featureHash);
    370                    l.add(c);
    371                    c = new Nonterminal("verb");
    372                    c.setFeature("verb", new StringRef("be"));
    373                    setFeature(c, "pl", 2, featureHash);
    374                    setFeature(c, "neg", 0, featureHash);
    375                    l.add(c);
    376                    c = new Nonterminal("nounphrase_cut");
    377                    c.setFeature("of", new StringRef("plus"));
    378                    setFeature(c, "that", 1, featureHash);
    379                    c.setFeature("pl", new StringRef("minus"));
    380                    c.setFeature("verb", new StringRef("be"));
    381                    setFeature(c, "whin", 3, featureHash);
    382                    setFeature(c, "whout", 4, featureHash);
    383                    l.add(c);
    384                    addRule(new Rule(l, true));
    385                    l.clear();
    386                    featureHash.clear();
    387                    c = new Nonterminal("verbphrase");
    388                    setFeature(c, "neg", 0, featureHash);
    389                    setFeature(c, "that", 1, featureHash);
    390                    c.setFeature("pl", new StringRef("minus"));
    391                    setFeature(c, "whin", 2, featureHash);
    392                    setFeature(c, "whout", 3, featureHash);
    393                    l.add(c);
    394                    c = new Nonterminal("verb");
    395                    c.setFeature("verb", new StringRef("be"));
    396                    c.setFeature("pl", new StringRef("minus"));
    397                    setFeature(c, "neg", 0, featureHash);
    398                    l.add(c);
    399                    c = new Nonterminal("nounphrase_cut");
    400                    c.setFeature("of", new StringRef("minus"));
    401                    setFeature(c, "that", 1, featureHash);
    402                    c.setFeature("pl", new StringRef("minus"));
    403                    c.setFeature("verb", new StringRef("be"));
    404                    setFeature(c, "whin", 2, featureHash);
    405                    setFeature(c, "whout", 3, featureHash);
    406                    l.add(c);
    407                    addRule(new Rule(l, true));
    408                    l.clear();
    409                    featureHash.clear();
    410                    c = new Nonterminal("verbphrase");
    411                    setFeature(c, "neg", 0, featureHash);
    412                    setFeature(c, "that", 1, featureHash);
    413                    setFeature(c, "pl", 2, featureHash);
    414                    setFeature(c, "whin", 3, featureHash);
    415                    setFeature(c, "whout", 4, featureHash);
    416                    l.add(c);
    417                    c = new Nonterminal("verb");
    418                    c.setFeature("verb", new StringRef("be"));
    419                    setFeature(c, "pl", 2, featureHash);
    420                    setFeature(c, "neg", 0, featureHash);
    421                    l.add(c);
    422                    c = new Terminal("TRADJ");
    423                    l.add(c);
    424                    c = new Nonterminal("nounphrase_cut");
    425                    setFeature(c, "that", 1, featureHash);
    426                    c.setFeature("verb", new StringRef("full"));
    427                    setFeature(c, "whin", 3, featureHash);
    428                    setFeature(c, "whout", 4, featureHash);
    429                    l.add(c);
    430                    addRule(new Rule(l, true));
    431                    l.clear();
    432                    featureHash.clear();
    433                    c = new Nonterminal("verbphrase");
    434                    setFeature(c, "neg", 0, featureHash);
    435                    setFeature(c, "that", 1, featureHash);
    436                    setFeature(c, "pl", 2, featureHash);
    437                    setFeature(c, "whin", 3, featureHash);
    438                    setFeature(c, "whout", 4, featureHash);
    439                    l.add(c);
    440                    c = new Nonterminal("verb");
    441                    c.setFeature("verb", new StringRef("be"));
    442                    setFeature(c, "pl", 2, featureHash);
    443                    setFeature(c, "neg", 0, featureHash);
    444                    l.add(c);
    445                    c = new Terminal("PVERB");
    446                    l.add(c);
    447                    c = new Nonterminal("nounphrase_cut");
    448                    setFeature(c, "that", 1, featureHash);
    449                    c.setFeature("verb", new StringRef("full"));
    450                    setFeature(c, "whin", 3, featureHash);
    451                    setFeature(c, "whout", 4, featureHash);
    452                    l.add(c);
    453                    addRule(new Rule(l, true));
    454                    l.clear();
    455                    featureHash.clear();
    456                    c = new Nonterminal("nounphrase_cut");
    457                    c.setFeature("exist", new StringRef("plus"));
    458                    setFeature(c, "that", 0, featureHash);
    459                    setFeature(c, "of", 1, featureHash);
    460                    setFeature(c, "def", 2, featureHash);
    461                    setFeature(c, "pl", 3, featureHash);
    462                    setFeature(c, "verb", 4, featureHash);
    463                    setFeature(c, "whin", 5, featureHash);
    464                    setFeature(c, "whout", 6, featureHash);
    465                    l.add(c);
    466                    c = new Nonterminal("nounphrase");
    467                    c.setFeature("exist", new StringRef("plus"));
    468                    setFeature(c, "that", 0, featureHash);
    469                    setFeature(c, "of", 1, featureHash);
    470                    setFeature(c, "def", 2, featureHash);
    471                    setFeature(c, "pl", 3, featureHash);
    472                    setFeature(c, "verb", 4, featureHash);
    473                    setFeature(c, "whin", 5, featureHash);
    474                    setFeature(c, "whout", 6, featureHash);
    475                    l.add(c);
    476                    addRule(new Rule(l, true));
    477                    l.clear();
    478                    featureHash.clear();
    479                    c = new Nonterminal("nounphrase_cut");
    480                    c.setFeature("exist", new StringRef("minus"));
    481                    setFeature(c, "that", 0, featureHash);
    482                    setFeature(c, "of", 1, featureHash);
    483                    setFeature(c, "def", 2, featureHash);
    484                    setFeature(c, "pl", 3, featureHash);
    485                    setFeature(c, "verb", 4, featureHash);
    486                    setFeature(c, "whin", 5, featureHash);
    487                    setFeature(c, "whout", 6, featureHash);
    488                    l.add(c);
    489                    c = new Nonterminal("nounphrase");
    490                    c.setFeature("exist", new StringRef("minus"));
    491                    setFeature(c, "that", 0, featureHash);
    492                    setFeature(c, "of", 1, featureHash);
    493                    setFeature(c, "def", 2, featureHash);
    494                    setFeature(c, "pl", 3, featureHash);
    495                    setFeature(c, "verb", 4, featureHash);
    496                    setFeature(c, "whin", 5, featureHash);
    497                    setFeature(c, "whout", 6, featureHash);
    498                    l.add(c);
    499                    addRule(new Rule(l, false));
    500                    l.clear();
    501                    featureHash.clear();
    502                    c = new Nonterminal("nounphrase");
    503                    c.setFeature("exist", new StringRef("plus"));
    504                    setFeature(c, "that", 0, featureHash);
    505                    c.setFeature("of", new StringRef("minus"));
    506                    c.setFeature("def", new StringRef("plus"));
    507                    c.setFeature("pl", new StringRef("minus"));
    508                    setFeature(c, "whin", 1, featureHash);
    509                    setFeature(c, "whout", 2, featureHash);
    510                    l.add(c);
    511                    c = new Terminal("PROPERNAME");
    512                    l.add(c);
    513                    c = new Nonterminal("that_phrase");
    514                    setFeature(c, "that", 0, featureHash);
    515                    setFeature(c, "whin", 1, featureHash);
    516                    setFeature(c, "whout", 2, featureHash);
    517                    l.add(c);
    518                    addRule(new Rule(l, true));
    519                    l.clear();
    520                    featureHash.clear();
    521                    c = new Nonterminal("nounphrase");
    522                    c.setFeature("exist", new StringRef("plus"));
    523                    c.setFeature("that", new StringRef("minus"));
    524                    c.setFeature("of", new StringRef("minus"));
    525                    c.setFeature("def", new StringRef("plus"));
    526                    c.setFeature("pl", new StringRef("minus"));
    527                    setFeature(c, "whin", 0, featureHash);
    528                    setFeature(c, "whout", 0, featureHash);
    529                    l.add(c);
    530                    c = new Terminal("VARIABLE");
    531                    l.add(c);
    532                    addRule(new Rule(l, true));
    533                    l.clear();
    534                    featureHash.clear();
    535                    c = new Nonterminal("nounphrase");
    536                    c.setFeature("exist", new StringRef("plus"));
    537                    c.setFeature("that", new StringRef("minus"));
    538                    c.setFeature("of", new StringRef("minus"));
    539                    c.setFeature("def", new StringRef("plus"));
    540                    c.setFeature("pl", new StringRef("minus"));
    541                    setFeature(c, "whin", 0, featureHash);
    542                    setFeature(c, "whout", 0, featureHash);
    543                    l.add(c);
    544                    c = new Terminal("REFERENCE");
    545                    l.add(c);
    546                    addRule(new Rule(l, true));
    547                    l.clear();
    548                    featureHash.clear();
    549                    c = new Nonterminal("nounphrase");
    550                    c.setFeature("exist", new StringRef("plus"));
    551                    setFeature(c, "that", 0, featureHash);
    552                    setFeature(c, "of", 1, featureHash);
    553                    c.setFeature("pl", new StringRef("minus"));
    554                    setFeature(c, "whin", 2, featureHash);
    555                    setFeature(c, "whout", 3, featureHash);
    556                    l.add(c);
    557                    c = new Terminal("a");
    558                    l.add(c);
    559                    c = new Nonterminal("noun_constr");
    560                    setFeature(c, "that", 0, featureHash);
    561                    setFeature(c, "of", 1, featureHash);
    562                    setFeature(c, "whin", 2, featureHash);
    563                    setFeature(c, "whout", 3, featureHash);
    564                    l.add(c);
    565                    addRule(new Rule(l, true));
    566                    l.clear();
    567                    featureHash.clear();
    568                    c = new Nonterminal("nounphrase");
    569                    c.setFeature("exist", new StringRef("plus"));
    570                    setFeature(c, "that", 0, featureHash);
    571                    setFeature(c, "of", 1, featureHash);
    572                    c.setFeature("pl", new StringRef("minus"));
    573                    setFeature(c, "whin", 2, featureHash);
    574                    setFeature(c, "whout", 3, featureHash);
    575                    l.add(c);
    576                    c = new Terminal("an");
    577                    l.add(c);
    578                    c = new Nonterminal("noun_constr");
    579                    setFeature(c, "that", 0, featureHash);
    580                    setFeature(c, "of", 1, featureHash);
    581                    setFeature(c, "whin", 2, featureHash);
    582                    setFeature(c, "whout", 3, featureHash);
    583                    l.add(c);
    584                    addRule(new Rule(l, true));
    585                    l.clear();
    586                    featureHash.clear();
    587                    c = new Nonterminal("nounphrase");
    588                    c.setFeature("exist", new StringRef("plus"));
    589                    setFeature(c, "that", 0, featureHash);
    590                    c.setFeature("of", new StringRef("minus"));
    591                    c.setFeature("pl", new StringRef("minus"));
    592                    setFeature(c, "whin", 1, featureHash);
    593                    setFeature(c, "whout", 2, featureHash);
    594                    l.add(c);
    595                    c = new Nonterminal("exist_anon");
    596                    l.add(c);
    597                    c = new Terminal("VARIABLE");
    598                    l.add(c);
    599                    c = new Nonterminal("that_phrase");
    600                    setFeature(c, "that", 0, featureHash);
    601                    setFeature(c, "whin", 1, featureHash);
    602                    setFeature(c, "whout", 2, featureHash);
    603                    l.add(c);
    604                    addRule(new Rule(l, true));
    605                    l.clear();
    606                    featureHash.clear();
    607                    c = new Nonterminal("nounphrase");
    608                    c.setFeature("exist", new StringRef("plus"));
    609                    setFeature(c, "that", 0, featureHash);
    610                    c.setFeature("of", new StringRef("minus"));
    611                    c.setFeature("pl", new StringRef("minus"));
    612                    setFeature(c, "whin", 1, featureHash);
    613                    setFeature(c, "whout", 2, featureHash);
    614                    l.add(c);
    615                    c = new Nonterminal("exist_anon");
    616                    l.add(c);
    617                    c = new Nonterminal("that_phrase");
    618                    setFeature(c, "that", 0, featureHash);
    619                    setFeature(c, "whin", 1, featureHash);
    620                    setFeature(c, "whout", 2, featureHash);
    621                    l.add(c);
    622                    addRule(new Rule(l, true));
    623                    l.clear();
    624                    featureHash.clear();
    625                    c = new Nonterminal("nounphrase");
    626                    c.setFeature("exist", new StringRef("plus"));
    627                    c.setFeature("that", new StringRef("minus"));
    628                    c.setFeature("of", new StringRef("minus"));
    629                    c.setFeature("pl", new StringRef("plus"));
    630                    c.setFeature("verb", new StringRef("full"));
    631                    setFeature(c, "whin", 0, featureHash);
    632                    setFeature(c, "whout", 0, featureHash);
    633                    l.add(c);
    634                    c = new Nonterminal("num_quant");
    635                    l.add(c);
    636                    c = new Terminal("NUMBER");
    637                    l.add(c);
    638                    c = new Terminal("NOUNPL");
    639                    l.add(c);
    640                    addRule(new Rule(l, true));
    641                    l.clear();
    642                    featureHash.clear();
    643                    c = new Nonterminal("nounphrase");
    644                    c.setFeature("exist", new StringRef("plus"));
    645                    c.setFeature("that", new StringRef("minus"));
    646                    c.setFeature("of", new StringRef("minus"));
    647                    c.setFeature("pl", new StringRef("minus"));
    648                    c.setFeature("verb", new StringRef("full"));
    649                    setFeature(c, "whin", 0, featureHash);
    650                    setFeature(c, "whout", 0, featureHash);
    651                    l.add(c);
    652                    c = new Nonterminal("num_quant");
    653                    l.add(c);
    654                    c = new Terminal("1");
    655                    l.add(c);
    656                    c = new Terminal("NOUN");
    657                    l.add(c);
    658                    addRule(new Rule(l, true));
    659                    l.clear();
    660                    featureHash.clear();
    661                    c = new Nonterminal("nounphrase");
    662                    c.setFeature("exist", new StringRef("plus"));
    663                    c.setFeature("that", new StringRef("minus"));
    664                    c.setFeature("of", new StringRef("minus"));
    665                    c.setFeature("pl", new StringRef("minus"));
    666                    c.setFeature("whin", new StringRef("right"));
    667                    c.setFeature("whout", new StringRef("left"));
    668                    l.add(c);
    669                    c = new Terminal("what");
    670                    l.add(c);
    671                    addRule(new Rule(l, true));
    672                    l.clear();
    673                    featureHash.clear();
    674                    c = new Nonterminal("nounphrase");
    675                    c.setFeature("exist", new StringRef("plus"));
    676                    c.setFeature("that", new StringRef("minus"));
    677                    c.setFeature("of", new StringRef("minus"));
    678                    c.setFeature("pl", new StringRef("minus"));
    679                    c.setFeature("whin", new StringRef("right"));
    680                    c.setFeature("whout", new StringRef("left"));
    681                    l.add(c);
    682                    c = new Terminal("who");
    683                    l.add(c);
    684                    addRule(new Rule(l, true));
    685                    l.clear();
    686                    featureHash.clear();
    687                    c = new Nonterminal("nounphrase");
    688                    c.setFeature("exist", new StringRef("plus"));
    689                    setFeature(c, "that", 0, featureHash);
    690                    setFeature(c, "of", 1, featureHash);
    691                    c.setFeature("pl", new StringRef("minus"));
    692                    c.setFeature("whin", new StringRef("right"));
    693                    c.setFeature("whout", new StringRef("left"));
    694                    l.add(c);
    695                    c = new Terminal("which");
    696                    l.add(c);
    697                    c = new Nonterminal("noun_constr");
    698                    setFeature(c, "that", 0, featureHash);
    699                    setFeature(c, "of", 1, featureHash);
    700                    c.setFeature("whin", new StringRef("left"));
    701                    c.setFeature("whout", new StringRef("left"));
    702                    l.add(c);
    703                    addRule(new Rule(l, true));
    704                    l.clear();
    705                    featureHash.clear();
    706                    c = new Nonterminal("nounphrase");
    707                    c.setFeature("exist", new StringRef("plus"));
    708                    c.setFeature("that", new StringRef("minus"));
    709                    c.setFeature("of", new StringRef("minus"));
    710                    c.setFeature("pl", new StringRef("plus"));
    711                    c.setFeature("whin", new StringRef("right"));
    712                    c.setFeature("whout", new StringRef("left"));
    713                    l.add(c);
    714                    c = new Terminal("which");
    715                    l.add(c);
    716                    c = new Terminal("NOUNPL");
    717                    l.add(c);
    718                    addRule(new Rule(l, true));
    719                    l.clear();
    720                    featureHash.clear();
    721                    c = new Nonterminal("nounphrase");
    722                    c.setFeature("exist", new StringRef("minus"));
    723                    setFeature(c, "that", 0, featureHash);
    724                    setFeature(c, "of", 1, featureHash);
    725                    c.setFeature("pl", new StringRef("minus"));
    726                    c.setFeature("whin", new StringRef("minus"));
    727                    c.setFeature("whout", new StringRef("minus"));
    728                    l.add(c);
    729                    c = new Terminal("every");
    730                    l.add(c);
    731                    c = new Nonterminal("noun_constr");
    732                    setFeature(c, "that", 0, featureHash);
    733                    setFeature(c, "of", 1, featureHash);
    734                    c.setFeature("whin", new StringRef("minus"));
    735                    c.setFeature("whout", new StringRef("minus"));
    736                    l.add(c);
    737                    addRule(new Rule(l, true));
    738                    l.clear();
    739                    featureHash.clear();
    740                    c = new Nonterminal("nounphrase");
    741                    c.setFeature("exist", new StringRef("minus"));
    742                    setFeature(c, "that", 0, featureHash);
    743                    c.setFeature("of", new StringRef("minus"));
    744                    c.setFeature("pl", new StringRef("minus"));
    745                    c.setFeature("whin", new StringRef("minus"));
    746                    c.setFeature("whout", new StringRef("minus"));
    747                    l.add(c);
    748                    c = new Nonterminal("univ_anon");
    749                    l.add(c);
    750                    c = new Terminal("VARIABLE");
    751                    l.add(c);
    752                    c = new Nonterminal("that_phrase");
    753                    setFeature(c, "that", 0, featureHash);
    754                    c.setFeature("whin", new StringRef("minus"));
    755                    c.setFeature("whout", new StringRef("minus"));
    756                    l.add(c);
    757                    addRule(new Rule(l, true));
    758                    l.clear();
    759                    featureHash.clear();
    760                    c = new Nonterminal("nounphrase");
    761                    c.setFeature("exist", new StringRef("minus"));
    762                    setFeature(c, "that", 0, featureHash);
    763                    c.setFeature("of", new StringRef("minus"));
    764                    c.setFeature("pl", new StringRef("minus"));
    765                    c.setFeature("whin", new StringRef("minus"));
    766                    c.setFeature("whout", new StringRef("minus"));
    767                    l.add(c);
    768                    c = new Nonterminal("univ_anon");
    769                    l.add(c);
    770                    c = new Nonterminal("that_phrase");
    771                    setFeature(c, "that", 0, featureHash);
    772                    c.setFeature("whin", new StringRef("minus"));
    773                    c.setFeature("whout", new StringRef("minus"));
    774                    l.add(c);
    775                    addRule(new Rule(l, true));
    776                    l.clear();
    777                    featureHash.clear();
    778                    c = new Nonterminal("nounphrase");
    779                    c.setFeature("exist", new StringRef("minus"));
    780                    setFeature(c, "that", 0, featureHash);
    781                    setFeature(c, "of", 1, featureHash);
    782                    c.setFeature("pl", new StringRef("minus"));
    783                    c.setFeature("whin", new StringRef("minus"));
    784                    c.setFeature("whout", new StringRef("minus"));
    785                    l.add(c);
    786                    c = new Terminal("no");
    787                    l.add(c);
    788                    c = new Nonterminal("noun_constr");
    789                    setFeature(c, "that", 0, featureHash);
    790                    setFeature(c, "of", 1, featureHash);
    791                    c.setFeature("whin", new StringRef("minus"));
    792                    c.setFeature("whout", new StringRef("minus"));
    793                    l.add(c);
    794                    addRule(new Rule(l, true));
    795                    l.clear();
    796                    featureHash.clear();
    797                    c = new Nonterminal("nounphrase");
    798                    c.setFeature("exist", new StringRef("minus"));
    799                    setFeature(c, "that", 0, featureHash);
    800                    c.setFeature("of", new StringRef("minus"));
    801                    c.setFeature("pl", new StringRef("minus"));
    802                    c.setFeature("whin", new StringRef("minus"));
    803                    c.setFeature("whout", new StringRef("minus"));
    804                    l.add(c);
    805                    c = new Nonterminal("neg_anon");
    806                    l.add(c);
    807                    c = new Terminal("VARIABLE");
    808                    l.add(c);
    809                    c = new Nonterminal("that_phrase");
    810                    setFeature(c, "that", 0, featureHash);
    811                    c.setFeature("whin", new StringRef("minus"));
    812                    c.setFeature("whout", new StringRef("minus"));
    813                    l.add(c);
    814                    addRule(new Rule(l, true));
    815                    l.clear();
    816                    featureHash.clear();
    817                    c = new Nonterminal("nounphrase");
    818                    c.setFeature("exist", new StringRef("minus"));
    819                    setFeature(c, "that", 0, featureHash);
    820                    c.setFeature("of", new StringRef("minus"));
    821                    c.setFeature("pl", new StringRef("minus"));
    822                    c.setFeature("whin", new StringRef("minus"));
    823                    c.setFeature("whout", new StringRef("minus"));
    824                    l.add(c);
    825                    c = new Nonterminal("neg_anon");
    826                    l.add(c);
    827                    c = new Nonterminal("that_phrase");
    828                    setFeature(c, "that", 0, featureHash);
    829                    c.setFeature("whin", new StringRef("minus"));
    830                    c.setFeature("whout", new StringRef("minus"));
    831                    l.add(c);
    832                    addRule(new Rule(l, true));
    833                    l.clear();
    834                    featureHash.clear();
    835                    c = new Nonterminal("noun_constr");
    836                    setFeature(c, "that", 0, featureHash);
    837                    c.setFeature("of", new StringRef("minus"));
    838                    setFeature(c, "whin", 1, featureHash);
    839                    setFeature(c, "whout", 2, featureHash);
    840                    l.add(c);
    841                    c = new Terminal("NOUN");
    842                    l.add(c);
    843                    c = new Terminal("VARIABLE");
    844                    l.add(c);
    845                    c = new Nonterminal("that_phrase");
    846                    setFeature(c, "that", 0, featureHash);
    847                    setFeature(c, "whin", 1, featureHash);
    848                    setFeature(c, "whout", 2, featureHash);
    849                    l.add(c);
    850                    addRule(new Rule(l, true));
    851                    l.clear();
    852                    featureHash.clear();
    853                    c = new Nonterminal("noun_constr");
    854                    setFeature(c, "that", 0, featureHash);
    855                    c.setFeature("of", new StringRef("minus"));
    856                    setFeature(c, "whin", 1, featureHash);
    857                    setFeature(c, "whout", 2, featureHash);
    858                    l.add(c);
    859                    c = new Terminal("NOUN");
    860                    l.add(c);
    861                    c = new Nonterminal("that_phrase");
    862                    setFeature(c, "that", 0, featureHash);
    863                    setFeature(c, "whin", 1, featureHash);
    864                    setFeature(c, "whout", 2, featureHash);
    865                    l.add(c);
    866                    addRule(new Rule(l, true));
    867                    l.clear();
    868                    featureHash.clear();
    869                    c = new Nonterminal("noun_constr");
    870                    setFeature(c, "that", 0, featureHash);
    871                    c.setFeature("of", new StringRef("plus"));
    872                    setFeature(c, "whin", 1, featureHash);
    873                    setFeature(c, "whout", 2, featureHash);
    874                    l.add(c);
    875                    c = new Terminal("NOUNOF");
    876                    l.add(c);
    877                    c = new Nonterminal("nounphrase_cut");
    878                    setFeature(c, "that", 0, featureHash);
    879                    setFeature(c, "whin", 1, featureHash);
    880                    setFeature(c, "whout", 2, featureHash);
    881                    l.add(c);
    882                    addRule(new Rule(l, true));
    883                    l.clear();
    884                    featureHash.clear();
    885                    c = new Nonterminal("verb");
    886                    c.setFeature("verb", new StringRef("be"));
    887                    c.setFeature("neg", new StringRef("minus"));
    888                    c.setFeature("pl", new StringRef("minus"));
    889                    l.add(c);
    890                    c = new Terminal("is");
    891                    l.add(c);
    892                    addRule(new Rule(l, true));
    893                    l.clear();
    894                    featureHash.clear();
    895                    c = new Nonterminal("verb");
    896                    c.setFeature("verb", new StringRef("be"));
    897                    c.setFeature("neg", new StringRef("plus"));
    898                    c.setFeature("pl", new StringRef("minus"));
    899                    l.add(c);
    900                    c = new Terminal("is not");
    901                    l.add(c);
    902                    addRule(new Rule(l, true));
    903                    l.clear();
    904                    featureHash.clear();
    905                    c = new Nonterminal("verb");
    906                    c.setFeature("verb", new StringRef("be"));
    907                    c.setFeature("neg", new StringRef("plus"));
    908                    c.setFeature("pl", new StringRef("minus"));
    909                    l.add(c);
    910                    c = new Terminal("is");
    911                    l.add(c);
    912                    c = new Terminal("not");
    913                    l.add(c);
    914                    addRule(new Rule(l, true));
    915                    l.clear();
    916                    featureHash.clear();
    917                    c = new Nonterminal("verb");
    918                    c.setFeature("verb", new StringRef("be"));
    919                    c.setFeature("neg", new StringRef("minus"));
    920                    c.setFeature("pl", new StringRef("plus"));
    921                    l.add(c);
    922                    c = new Terminal("are");
    923                    l.add(c);
    924                    addRule(new Rule(l, true));
    925                    l.clear();
    926                    featureHash.clear();
    927                    c = new Nonterminal("verb");
    928                    c.setFeature("verb", new StringRef("be"));
    929                    c.setFeature("neg", new StringRef("plus"));
    930                    c.setFeature("pl", new StringRef("plus"));
    931                    l.add(c);
    932                    c = new Terminal("are not");
    933                    l.add(c);
    934                    addRule(new Rule(l, true));
    935                    l.clear();
    936                    featureHash.clear();
    937                    c = new Nonterminal("verb");
    938                    c.setFeature("verb", new StringRef("be"));
    939                    c.setFeature("neg", new StringRef("plus"));
    940                    c.setFeature("pl", new StringRef("plus"));
    941                    l.add(c);
    942                    c = new Terminal("are");
    943                    l.add(c);
    944                    c = new Terminal("not");
    945                    l.add(c);
    946                    addRule(new Rule(l, true));
    947                    l.clear();
    948                    featureHash.clear();
    949                    c = new Nonterminal("verb");
    950                    c.setFeature("verb", new StringRef("full"));
    951                    c.setFeature("neg", new StringRef("minus"));
    952                    c.setFeature("pl", new StringRef("minus"));
    953                    l.add(c);
    954                    c = new Terminal("VERB");
    955                    l.add(c);
    956                    addRule(new Rule(l, true));
    957                    l.clear();
    958                    featureHash.clear();
    959                    c = new Nonterminal("verb");
    960                    c.setFeature("verb", new StringRef("full"));
    961                    c.setFeature("neg", new StringRef("plus"));
    962                    c.setFeature("pl", new StringRef("minus"));
    963                    l.add(c);
    964                    c = new Terminal("does not");
    965                    l.add(c);
    966                    c = new Terminal("VERBINF");
    967                    l.add(c);
    968                    addRule(new Rule(l, true));
    969                    l.clear();
    970                    featureHash.clear();
    971                    c = new Nonterminal("verb");
    972                    c.setFeature("verb", new StringRef("full"));
    973                    c.setFeature("neg", new StringRef("minus"));
    974                    c.setFeature("pl", new StringRef("plus"));
    975                    l.add(c);
    976                    c = new Terminal("VERBINF");
    977                    l.add(c);
    978                    addRule(new Rule(l, true));
    979                    l.clear();
    980                    featureHash.clear();
    981                    c = new Nonterminal("verb");
    982                    c.setFeature("verb", new StringRef("full"));
    983                    c.setFeature("neg", new StringRef("plus"));
    984                    c.setFeature("pl", new StringRef("plus"));
    985                    l.add(c);
    986                    c = new Terminal("do not");
    987                    l.add(c);
    988                    c = new Terminal("VERBINF");
    989                    l.add(c);
    990                    addRule(new Rule(l, true));
    991                    l.clear();
    992                    featureHash.clear();
    993                    c = new Nonterminal("that_phrase");
    994                    c.setFeature("that", new StringRef("minus"));
    995                    setFeature(c, "whin", 0, featureHash);
    996                    setFeature(c, "whout", 0, featureHash);
    997                    l.add(c);
    998                    addRule(new Rule(l, true));
    999                    l.clear();
    1000                    featureHash.clear();
    1001                    c = new Nonterminal("that_phrase");
    1002                    c.setFeature("that", new StringRef("plus"));
    1003                    setFeature(c, "whin", 0, featureHash);
    1004                    setFeature(c, "whout", 1, featureHash);
    1005                    l.add(c);
    1006                    c = new Nonterminal("rel_pron");
    1007                    l.add(c);
    1008                    c = new Nonterminal("that_phrase_1");
    1009                    setFeature(c, "whin", 0, featureHash);
    1010                    setFeature(c, "whout", 1, featureHash);
    1011                    l.add(c);
    1012                    addRule(new Rule(l, true));
    1013                    l.clear();
    1014                    featureHash.clear();
    1015                    c = new Nonterminal("that_phrase_1");
    1016                    setFeature(c, "whin", 0, featureHash);
    1017                    setFeature(c, "whout", 1, featureHash);
    1018                    l.add(c);
    1019                    c = new Nonterminal("that_phrase_2");
    1020                    setFeature(c, "whin", 0, featureHash);
    1021                    setFeature(c, "whout", 1, featureHash);
    1022                    l.add(c);
    1023                    addRule(new Rule(l, true));
    1024                    l.clear();
    1025                    featureHash.clear();
    1026                    c = new Nonterminal("that_phrase_1");
    1027                    setFeature(c, "whin", 0, featureHash);
    1028                    setFeature(c, "whout", 0, featureHash);
    1029                    l.add(c);
    1030                    c = new Nonterminal("that_phrase_2");
    1031                    setFeature(c, "whin", 0, featureHash);
    1032                    setFeature(c, "whout", 0, featureHash);
    1033                    l.add(c);
    1034                    c = new Nonterminal("or_rel_pron");
    1035                    l.add(c);
    1036                    c = new Nonterminal("that_phrase_1");
    1037                    setFeature(c, "whin", 0, featureHash);
    1038                    setFeature(c, "whout", 0, featureHash);
    1039                    l.add(c);
    1040                    addRule(new Rule(l, false));
    1041                    l.clear();
    1042                    featureHash.clear();
    1043                    c = new Nonterminal("that_phrase_2");
    1044                    setFeature(c, "whin", 0, featureHash);
    1045                    setFeature(c, "whout", 1, featureHash);
    1046                    l.add(c);
    1047                    c = new Nonterminal("verbphrase_cut");
    1048                    c.setFeature("pl", new StringRef("minus"));
    1049                    setFeature(c, "whin", 0, featureHash);
    1050                    setFeature(c, "whout", 1, featureHash);
    1051                    l.add(c);
    1052                    addRule(new Rule(l, true));
    1053                    l.clear();
    1054                    featureHash.clear();
    1055                    c = new Nonterminal("that_phrase_2");
    1056                    setFeature(c, "whin", 0, featureHash);
    1057                    setFeature(c, "whout", 1, featureHash);
    1058                    l.add(c);
    1059                    c = new Nonterminal("nounphrase_cut");
    1060                    c.setFeature("that", new StringRef("minus"));
    1061                    c.setFeature("verb", new StringRef("full"));
    1062                    setFeature(c, "pl", 2, featureHash);
    1063                    setFeature(c, "whin", 0, featureHash);
    1064                    setFeature(c, "whout", 1, featureHash);
    1065                    l.add(c);
    1066                    c = new Nonterminal("verb");
    1067                    c.setFeature("verb", new StringRef("full"));
    1068                    setFeature(c, "pl", 2, featureHash);
    1069                    l.add(c);
    1070                    addRule(new Rule(l, true));
    1071                    l.clear();
    1072                    featureHash.clear();
    1073                    c = new Nonterminal("that_phrase_2");
    1074                    setFeature(c, "whin", 0, featureHash);
    1075                    setFeature(c, "whout", 0, featureHash);
    1076                    l.add(c);
    1077                    c = new Nonterminal("verbphrase_cut");
    1078                    c.setFeature("that", new StringRef("minus"));
    1079                    c.setFeature("pl", new StringRef("minus"));
    1080                    setFeature(c, "whin", 0, featureHash);
    1081                    setFeature(c, "whout", 0, featureHash);
    1082                    l.add(c);
    1083                    c = new Nonterminal("and_rel_pron");
    1084                    l.add(c);
    1085                    c = new Nonterminal("that_phrase_2");
    1086                    setFeature(c, "whin", 0, featureHash);
    1087                    setFeature(c, "whout", 0, featureHash);
    1088                    l.add(c);
    1089                    addRule(new Rule(l, true));
    1090                    l.clear();
    1091                    featureHash.clear();
    1092                    c = new Nonterminal("rel_pron");
    1093                    l.add(c);
    1094                    c = new Terminal("that");
    1095                    l.add(c);
    1096                    addRule(new Rule(l, true));
    1097                    l.clear();
    1098                    featureHash.clear();
    1099                    c = new Nonterminal("or_rel_pron");
    1100                    l.add(c);
    1101                    c = new Terminal("or");
    1102                    l.add(c);
    1103                    c = new Nonterminal("rel_pron");
    1104                    l.add(c);
    1105                    addRule(new Rule(l, true));
    1106                    l.clear();
    1107                    featureHash.clear();
    1108                    c = new Nonterminal("or_rel_pron");
    1109                    l.add(c);
    1110                    c = new Terminal("or that");
    1111                    l.add(c);
    1112                    addRule(new Rule(l, true));
    1113                    l.clear();
    1114                    featureHash.clear();
    1115                    c = new Nonterminal("and_rel_pron");
    1116                    l.add(c);
    1117                    c = new Terminal("and");
    1118                    l.add(c);
    1119                    c = new Nonterminal("rel_pron");
    1120                    l.add(c);
    1121                    addRule(new Rule(l, true));
    1122                    l.clear();
    1123                    featureHash.clear();
    1124                    c = new Nonterminal("and_rel_pron");
    1125                    l.add(c);
    1126                    c = new Terminal("and that");
    1127                    l.add(c);
    1128                    addRule(new Rule(l, true));
    1129                    l.clear();
    1130                    featureHash.clear();
    1131                    c = new Nonterminal("exist_anon");
    1132                    l.add(c);
    1133                    c = new Terminal("something");
    1134                    l.add(c);
    1135                    addRule(new Rule(l, true));
    1136                    l.clear();
    1137                    featureHash.clear();
    1138                    c = new Nonterminal("exist_anon");
    1139                    l.add(c);
    1140                    c = new Terminal("somebody");
    1141                    l.add(c);
    1142                    addRule(new Rule(l, true));
    1143                    l.clear();
    1144                    featureHash.clear();
    1145                    c = new Nonterminal("univ_anon");
    1146                    l.add(c);
    1147                    c = new Terminal("everything");
    1148                    l.add(c);
    1149                    addRule(new Rule(l, true));
    1150                    l.clear();
    1151                    featureHash.clear();
    1152                    c = new Nonterminal("univ_anon");
    1153                    l.add(c);
    1154                    c = new Terminal("everybody");
    1155                    l.add(c);
    1156                    addRule(new Rule(l, true));
    1157                    l.clear();
    1158                    featureHash.clear();
    1159                    c = new Nonterminal("neg_anon");
    1160                    l.add(c);
    1161                    c = new Terminal("nothing");
    1162                    l.add(c);
    1163                    addRule(new Rule(l, true));
    1164                    l.clear();
    1165                    featureHash.clear();
    1166                    c = new Nonterminal("neg_anon");
    1167                    l.add(c);
    1168                    c = new Terminal("nobody");
    1169                    l.add(c);
    1170                    addRule(new Rule(l, true));
    1171                    l.clear();
    1172                    featureHash.clear();
    1173                    c = new Nonterminal("num_quant");
    1174                    l.add(c);
    1175                    c = new Terminal("at least");
    1176                    l.add(c);
    1177                    addRule(new Rule(l, true));
    1178                    l.clear();
    1179                    featureHash.clear();
    1180                    c = new Nonterminal("num_quant");
    1181                    l.add(c);
    1182                    c = new Terminal("at most");
    1183                    l.add(c);
    1184                    addRule(new Rule(l, true));
    1185                    l.clear();
    1186                    featureHash.clear();
    1187                    c = new Nonterminal("num_quant");
    1188                    l.add(c);
    1189                    c = new Terminal("less than");
    1190                    l.add(c);
    1191                    addRule(new Rule(l, true));
    1192                    l.clear();
    1193                    featureHash.clear();
    1194                    c = new Nonterminal("num_quant");
    1195                    l.add(c);
    1196                    c = new Terminal("more than");
    1197                    l.add(c);
    1198                    addRule(new Rule(l, true));
    1199                    l.clear();
    1200                    featureHash.clear();
    1201                    c = new Nonterminal("num_quant");
    1202                    l.add(c);
    1203                    c = new Terminal("exactly");
    1204                    l.add(c);
    1205                    addRule(new Rule(l, true));
    1206
    1207            }
    1208
    1209            private void setFeature(Category c, String featureName, int varID, HashMap<Integer, StringRef> featureHash) {
    1210                    if (featureHash.get(varID) == null) {
    1211                            StringRef stringRef = new StringRef();
    1212                            c.setFeature(featureName, stringRef);
    1213                            featureHash.put(varID, stringRef);
    1214                    } else {
    1215                            c.setFeature(featureName, featureHash.get(varID));
    1216                    }
    1217            }
    1218
    1219    }