public static Item transform(ItemTransform transform, Item item) { TransformerApply v = new TransformerApply(transform) ; item.visit(v) ; return v.result() ; }
@Override public void visit(Item item, ItemList list) { ItemList newList = new ItemList(item.getLine(), item.getColumn()) ; for ( Item subItem : list ) { subItem.visit(this) ; Item newItem = pop(); newList.add(newItem) ; } Item newItemList = Item.createList(newList, item.getLine(), item.getColumn()) ; push(newItemList) ; }
public void visitNil() { push(Item.nil) ; } }
public void visit(Item item, Node node) { Item newItem = transform.transform(item, node) ; push(newItem) ; }
@Override public void visitNil() { push(Item.nil) ; } }
@Override public void visit(Item item, String symbol) { Item newItem = transform.transform(item, symbol) ; push(newItem) ; } @Override
@Override public void visit(Item item, Node node) { Item newItem = transform.transform(item, node) ; push(newItem) ; }
public void visit(Item item, ItemList list) { ItemList newList = new ItemList(item.getLine(), item.getColumn()) ; for ( Item subItem : list ) { subItem.visit(this) ; Item newItem = pop(); newList.add(newItem) ; } Item newItemList = Item.createList(newList, item.getLine(), item.getColumn()) ; push(newItemList) ; }
public void visit(Item item, String symbol) { Item newItem = transform.transform(item, symbol) ; push(newItem) ; } public void visitNil()
public static Item transform(ItemTransform transform, Item item) { TransformerApply v = new TransformerApply(transform) ; item.visit(v) ; return v.result() ; }