Package com.google.caja.parser

Examples of com.google.caja.parser.ParseTreeNodeVisitor


      ParseTreeNode root,
      final Class<T> clazz,
      final String identifierValue) {
    final Holder<T> result = new Holder<T>();

    root.visitPreOrder(new ParseTreeNodeVisitor() {
      public boolean visit(ParseTreeNode node) {
        if (clazz.isAssignableFrom(node.getClass()) &&
            node.children().size() > 0 &&
            node.children().get(0) instanceof Identifier) {
          Identifier id = (Identifier)node.children().get(0);
View Full Code Here


   * And the resulting function is called via a handler attribute like
   * {@code onchange="___.plugin_dispatchEvent___(this, node, 1234, 'handlerName')"}
   */
  private static void rewriteEventHandlerReferences(Block block) {
    block.visitPreOrder(
        new ParseTreeNodeVisitor() {
          public boolean visit(ParseTreeNode node) {
            // Do not recurse into closures.
            if (node instanceof FunctionConstructor) { return false; }
            if (node instanceof Reference) {
              Reference r = (Reference) node;
View Full Code Here

  private static int serialno = 0;
  /** debugging */
  private static void check(ParseTreeNode node) {
    if (DEBUG) {
      if (!node.getAttributes().containsKey(NUM)) {
        node.visitPreOrder(new ParseTreeNodeVisitor() {
            public boolean visit(ParseTreeNode node) {
              node.getAttributes().set(NUM, Integer.valueOf(serialno++));
              return true;
            }
          });
View Full Code Here

    }
  }

  private boolean containsLinkPseudoClass(CssTree.SimpleSelector selector) {
    final boolean[] result = new boolean[1];
    selector.visitPreOrder(new ParseTreeNodeVisitor() {
      public boolean visit(ParseTreeNode node) {
        if (node instanceof CssTree.Pseudo) {
          CssTree firstChild = (CssTree) node.children().get(0);
          if (firstChild instanceof CssTree.IdentLiteral) {
            CssTree.IdentLiteral ident = (CssTree.IdentLiteral) firstChild;
View Full Code Here

      stdColorMatcher = new CssPropertyPatterns(cssSchema)
          .cssPropertyToJavaRegex(stdColors.sig);
    } else {
      stdColorMatcher = null;
    }
    t.node.visitPreOrder(new ParseTreeNodeVisitor() {
        public boolean visit(ParseTreeNode node) {
          if (!(node instanceof CssTree.Term)) {
            return true;
          }
          CssTree.Term term = (CssTree.Term) node;
View Full Code Here

          return ok;
        }
      }, t.parent);
  }
  private void renameVirtualizedElements(AncestorChain<? extends CssTree> t) {
    t.node.visitPreOrder(new ParseTreeNodeVisitor() {
        public boolean visit(ParseTreeNode node) {
          if (node instanceof CssTree.SuffixedSelectorPart) { return false; }
          if (!(node instanceof CssTree.SimpleSelector)) { return true; }
          CssTree.SimpleSelector ss = (CssTree.SimpleSelector) node;
          CssTree name = (CssTree) ss.children().get(0);
View Full Code Here

        }
      });
  }
  private void suffixIds(AncestorChain<? extends CssTree> t) {
    // Rewrite IDs with the gadget suffix.
    t.node.visitPreOrder(new ParseTreeNodeVisitor() {
          public boolean visit(ParseTreeNode node) {
            if (node instanceof CssTree.SuffixedSelectorPart) { return false; }
            if (!(node instanceof CssTree.SimpleSelector)) { return true; }
            CssTree.SimpleSelector ss = (CssTree.SimpleSelector) node;
            for (CssTree child : ss.children()) {
View Full Code Here

          }
        });
  }
  private void restrictRulesToSubtreesWithGadgetClass(
      AncestorChain<? extends CssTree> t) {
    t.node.visitPreOrder(new ParseTreeNodeVisitor() {
      public boolean visit(ParseTreeNode node) {
        if (!(node instanceof CssTree.Selector)) { return true; }
        CssTree.Selector sel = (CssTree.Selector) node;

        // A selector that describes an ancestor of all nodes matched
View Full Code Here

      Name.css("link"), Name.css("hover"));
  private void removeUnsafeConstructs(AncestorChain<? extends CssTree> t) {

    // 1) Check that all classes, ids, property names, etc. are valid
    //    css identifiers.
    t.node.visitPreOrder(new ParseTreeNodeVisitor() {
        public boolean visit(ParseTreeNode node) {
          if (node instanceof CssTree.SimpleSelector) {
            for (CssTree child : ((CssTree.SimpleSelector) node).children()) {
              if (child instanceof CssTree.Pseudo) {
                child = child.children().get(0);
View Full Code Here

    }
    if (mut != null) { mut.execute(); }
  }

  private void translateUrls(AncestorChain<? extends CssTree> t) {
      t.node.visitPreOrder(new ParseTreeNodeVisitor() {
          public boolean visit(ParseTreeNode node) {
            if (node instanceof CssTree.Term
                && CssPropertyPartType.URI == propertyPartType(node)) {
              CssTree term = (CssTree.Term) node;
View Full Code Here

TOP

Related Classes of com.google.caja.parser.ParseTreeNodeVisitor

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.