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    }