001    /* Generated By:JJTree: Do not edit this line. ASTmembers.java */
002    
003    package net.sourceforge.javajson.parser;
004    
005    public class ASTmembers extends SimpleNode {
006            String key;
007    
008            Object value;
009    
010            enum Next {
011                    KEY, VALUE
012            };
013    
014            Next on = Next.KEY;
015    
016            public ASTmembers(int id) {
017                    super(id);
018            }
019    
020            public ASTmembers(JsonParser p, int id) {
021                    super(p, id);
022            }
023    
024            @Override
025            protected void interpret() {
026                    for (int i = 0; i < children.length; i++) {
027                            if (children[i] instanceof SimpleNode) {
028                                    SimpleNode node = (SimpleNode) children[i];
029                                    node.interpret();
030                            }
031                    }
032            }
033    
034            @Override
035            protected void push(Object o) {
036                    //System.out.println("pushing to member object: "
037                    //              + o.getClass().getSimpleName());
038    
039                    if (o instanceof TMember) {
040                            // recursive call
041                            //System.out.println("ignoring child member" + parent.getClass().getSimpleName());
042                            ((SimpleNode) parent).push(o);
043                            on = Next.KEY;
044                    } else if (on == Next.KEY) {
045                            key = (String) o; // ((ASTstring) o).val;
046                            on = Next.VALUE;
047                    } else if (on == Next.VALUE) {
048                            value = o;
049                            on = Next.KEY;
050                            ((SimpleNode) parent).push(new TMember(key, value));
051                    }
052            }
053    
054    }