public void accept(INodeVisitor visitor) { root.accept(visitor); } }
public void visit(TupleNode tuple) { Object[] array = new Object[tuple.elements.size()]; int index=0; for(INode node: tuple.elements) { node.accept(this); array[index++] = generated.pop(); } generated.push(array); }
public void visit(SetNode setnode) { Set<Object> obj = new HashSet<Object>(); for(INode node: setnode.elements) { node.accept(this); obj.add(generated.pop()); } generated.push(obj); }
public void visit(ListNode list) { List<Object> obj = new ArrayList<Object>(list.elements.size()); for(INode node: list.elements) { node.accept(this); obj.add(generated.pop()); } generated.push(obj); }
public void visit(ListNode list) { result.append("(list\n"); indentlevel++; for(INode node: list.elements) { indent(); node.accept(this); result.append(",\n"); } indentlevel--; indent(); result.append(")"); }
public void visit(DictNode dict) { Map<Object, Object> obj = new HashMap<Object, Object>(dict.elements.size()); for(INode e: dict.elements) { KeyValueNode kv = (KeyValueNode)e; kv.key.accept(this); Object key = generated.pop(); kv.value.accept(this); Object value = generated.pop(); obj.put(key, value); } if(dictConverter==null || !obj.containsKey("__class__")) { generated.push(obj); } else { Object result; try { result = dictConverter.convert(obj); } catch (IOException e) { throw new RuntimeException("problem converting dict to class", e); } if(result==null) generated.push(obj); else generated.push(result); } }
public void visit(SetNode setnode) { result.append("(set\n"); indentlevel++; for(INode node: setnode.elements) { indent(); node.accept(this); result.append(",\n"); } indentlevel--; indent(); result.append(")"); }
public void visit(TupleNode tuple) { result.append("(tuple\n"); indentlevel++; for(INode node: tuple.elements) { indent(); node.accept(this); result.append(",\n"); } indentlevel--; indent(); result.append(")"); } }