package org.eclipse.bpel.xpath10.parser; import org.eclipse.bpel.xpath10.AllNodeStep; import org.eclipse.bpel.xpath10.BinaryExpr; import org.eclipse.bpel.xpath10.CommentNodeStep; import org.eclipse.bpel.xpath10.FilterExpr; import org.eclipse.bpel.xpath10.FunctionCallExpr; import org.eclipse.bpel.xpath10.LiteralExpr; import org.eclipse.bpel.xpath10.LocationPath; import org.eclipse.bpel.xpath10.NameStep; import org.eclipse.bpel.xpath10.NumberExpr; import org.eclipse.bpel.xpath10.PathExpr; import org.eclipse.bpel.xpath10.Predicate; import org.eclipse.bpel.xpath10.ProcessingInstructionNodeStep; import org.eclipse.bpel.xpath10.TextNodeStep; import org.eclipse.bpel.xpath10.UnaryExpr; import org.eclipse.bpel.xpath10.UnionExpr; import org.eclipse.bpel.xpath10.VariableReferenceExpr; import org.eclipse.bpel.xpath10.Visitor;; /** * * @author Michal Chmielewski (michal.chmielewski@oracle.com) * @date Aug 26, 2008 * */ @SuppressWarnings({ "boxing", "nls" }) public class SemanticTreeVistor extends Visitor { int fLevel = 0; void pushLevel () { fLevel ++; } void popLevel () { fLevel--; } @Override protected void visit (AllNodeStep step) { pushLevel(); p("> %s ", step.getText()); p0(" [%d,%d] %s\n",step.getPosition(), step.getEndPosition(),step.getClass().getSimpleName()); super.visit(step); popLevel(); } @Override protected void visit (BinaryExpr expr) { pushLevel(); p("> %s",expr.getText()); p0(" [%d,%d] %s\n",expr.getPosition(), expr.getEndPosition(),expr.getClass().getSimpleName()); super.visit(expr); popLevel(); } @Override protected void visit(CommentNodeStep step) { pushLevel(); p("> %s",step.getText()); p0(" [%d,%d] %s\n",step.getPosition(), step.getEndPosition(),step.getClass().getSimpleName()); super.visit(step); popLevel(); } @Override protected void visit(FilterExpr expr) { pushLevel(); p("> %s",expr.getText()); p0(" [%d,%d] %s\n",expr.getPosition(), expr.getEndPosition(),expr.getClass().getSimpleName()); super.visit(expr); popLevel(); } @Override protected void visit(FunctionCallExpr expr) { pushLevel(); p("> %s",expr.getText()); p0(" [%d,%d] %s\n",expr.getPosition(), expr.getEndPosition(),expr.getClass().getSimpleName()); super.visit(expr); popLevel(); } @Override protected void visit(LiteralExpr expr) { pushLevel(); p("> %s",expr.getText()); p0(" [%d,%d] %s\n",expr.getPosition(), expr.getEndPosition(),expr.getClass().getSimpleName()); super.visit(expr); popLevel(); } @Override protected void visit(LocationPath expr) { pushLevel(); p("> %s",expr.getText()); p0(" [%d,%d] %s\n",expr.getPosition(), expr.getEndPosition(),expr.getClass().getSimpleName()); super.visit(expr); popLevel(); } @Override protected void visit(NameStep step) { pushLevel(); p("> %s",step.getText()); p0(" [%d,%d] %s\n",step.getPosition(), step.getEndPosition(),step.getClass().getSimpleName()); super.visit(step); popLevel(); } @Override protected void visit(NumberExpr expr) { pushLevel(); p("> %s",expr.getText()); p0(" [%d,%d] %s\n",expr.getPosition(), expr.getEndPosition(),expr.getClass().getSimpleName()); super.visit(expr); popLevel(); } @Override protected void visit(PathExpr expr) { pushLevel(); p("> %s",expr.getText()); p0(" [%d,%d] %s\n",expr.getPosition(), expr.getEndPosition(),expr.getClass().getSimpleName()); super.visit(expr); popLevel(); } @Override protected void visit(Predicate predicate) { pushLevel(); p("> %s",predicate.getText()); p0(" [%d,%d] %s\n",predicate.getPosition(), predicate.getEndPosition() ,predicate.getClass().getSimpleName()); super.visit(predicate); popLevel(); } @Override protected void visit(ProcessingInstructionNodeStep step) { pushLevel(); p("> %s",step.getText()); p0(" [%d,%d] %s\n",step.getPosition(), step.getEndPosition(),step.getClass().getSimpleName() ); super.visit(step); popLevel(); } @Override protected void visit(TextNodeStep step) { pushLevel(); p("> %s",step.getText()); p0(" [%d,%d] %s\n",step.getPosition(), step.getEndPosition() ,step.getClass().getSimpleName() ); super.visit(step); popLevel(); } @Override protected void visit(UnaryExpr expr) { pushLevel(); p("> %s",expr.getText()); p0(" [%d,%d] %s\n",expr.getPosition(), expr.getEndPosition(),expr.getClass().getSimpleName()); super.visit(expr); popLevel(); } @Override protected void visit(UnionExpr expr) { pushLevel(); p("> %s",expr.getText()); p0(" [%d,%d] %s\n",expr.getPosition(), expr.getEndPosition(),expr.getClass().getSimpleName() ); super.visit(expr); popLevel(); } @Override protected void visit(VariableReferenceExpr expr) { pushLevel(); p("> %s",expr.getText()); p0(" [%d,%d] %s\n",expr.getPosition(), expr.getEndPosition(),expr.getClass().getSimpleName()); super.visit(expr); popLevel(); } void p (String msg, Object ... args) { for(int i=0 ; i < fLevel; i++) { System.out.print(" "); } System.out.printf(msg, args); } void p0(String msg, Object ... args) { System.out.printf(msg, args); } }