Free cookie consent management tool by TermsFeed Policy Generator

source: branches/OKBJavaConnector/ECJClient/src/ec/gp/ge/GrammarRuleNode.java @ 12912

Last change on this file since 12912 was 6152, checked in by bfarka, 14 years ago

added ecj and custom statistics to communicate with the okb services #1441

File size: 1.7 KB
Line 
1package ec.gp.ge;
2import java.util.*;
3
4/*
5 * GrammarRuleNode.java
6 *
7 * Created: Sun Dec  5 11:33:43 EST 2010
8 * By: Houston Mooers and Sean Luke
9 *
10 */
11
12/**
13 * A GrammarNode representing a Rule in the GE Grammar.  The head of the GrammarRuleNode
14 * is the name of the rule; and the children are the various choices.  These are returned
15 * by getChoice(...) and getNumChoices().  The merge(...) method unifies this GrammarRuleNode
16 * with the choices of another node.
17 *
18 */
19
20public class GrammarRuleNode extends GrammarNode
21    {     
22    public GrammarRuleNode(String head)
23        {
24        super(head);
25        }
26       
27    /** Adds a choice to the children of this node. */
28    public void addChoice(GrammarNode choice)
29        {
30        children.add(choice);
31        }
32       
33    /** Returns the current number of choices to the node. */
34    public int getNumChoices() { return children.size(); }
35       
36    /** Returns a given choice. */
37    public GrammarNode getChoice(int index) { return (GrammarNode)(children.get(index)); }
38
39    /** Adds to this node all the choices of another node. */
40    public void merge(GrammarRuleNode other)
41        {
42        int n = other.getNumChoices();
43        for(int i = 0 ; i < n; i++)
44            addChoice(other.getChoice(i));
45        }
46
47    public String toString()
48        {
49        String ret = "" + head + " ::= ";
50        Iterator i = children.iterator();
51        boolean first = true;
52        while(i.hasNext())
53            {
54            ret = ret + (first ? "" : "| ") + ((GrammarNode)(i.next())).getHead();
55            first = false;
56            }
57        return ret;
58        }
59       
60    }
61
Note: See TracBrowser for help on using the repository browser.