Examples of JNode


Examples of com.google.gwt.dev.jjs.ast.JNode

              return false;
            }
            return true;
          }
        };
        JNode startNode = node.getJNode();
        visitor.accept(startNode);
        Preconditions.checkState(visitor.didChange(),
            "Couldn't replace %s with %s in %s",
            oldCondition, newCondition, startNode);
View Full Code Here

Examples of com.google.gwt.dev.jjs.ast.JNode

  public boolean transform(CfgNode<?> node, Cfg cfgGraph) {
    Preconditions.checkArgument(nodeToFold == node);
    JModVisitor visitor = new JModVisitor() {
      @Override
      public boolean visit(JVariableRef x, Context ctx) {
        JNode newNode = transform(x);
        if (newNode != null) {
          ctx.replaceMe(newNode);
          return false;
        }
        return true;
      }
    };

    CfgNode<?> parentNode = nodeToFold.getParent();
    JNode jnode = parentNode.getJNode();
    Preconditions.checkNotNull(jnode);
    visitor.accept(jnode);
    Preconditions.checkState(visitor.didChange());
    return true;
  }
View Full Code Here

Examples of com.google.gwt.dev.jjs.ast.JNode

    protected JDeclarationStatement pop(LocalDeclaration decl) {
      return (decl == null) ? null : (JDeclarationStatement) pop();
    }

    protected JStatement pop(Statement x) {
      JNode pop = (x == null) ? null : pop();
      if (x instanceof Expression) {
        return simplify((JExpression) pop, (Expression) x).makeStatement();
      }
      return (JStatement) pop;
    }
View Full Code Here

Examples of com.google.gwt.dev.jjs.ast.JNode

        branch.log(TreeLogger.ERROR, "Badly formatted JSNI reference in " + PROP_INITIAL_SEQUENCE
            + ": " + refString);
        throw new UnableToCompleteException();
      }
      final String lookupErrorHolder[] = new String[1];
      JNode referent =
          JsniRefLookup.findJsniRefTarget(jsniRef, program, new JsniRefLookup.ErrorReporter() {
            @Override
            public void reportError(String error) {
              lookupErrorHolder[0] = error;
            }
View Full Code Here

Examples of com.google.gwt.dev.jjs.ast.JNode

          // Only constructors reach this point, all other JSNI references in the method body
          // would have already been replaced at endVisit(JsNameRef).

          // Replace invocation to ctor with a new op.
          String ident = ref.getIdent();
          JNode node = jsniMap.get(ident);
          assert node instanceof JConstructor;
          assert ref.getQualifier() == null;
          JsName jsName = names.get(node);
          assert (jsName != null);
          ref.resolve(jsName);
          JsNew jsNew = new JsNew(x.getSourceInfo(), ref);
          jsNew.getArguments().addAll(x.getArguments());
          ctx.replaceMe(jsNew);
        }

        @Override
        public void endVisit(JsNameRef x, JsContext ctx) {
          if (!x.isJsniReference()) {
            return;
          }

          String ident = x.getIdent();
          JNode node = jsniMap.get(ident);
          assert (node != null);
          if (node instanceof JField) {
            JField field = (JField) node;
            JsName jsName = names.get(field);
            assert (jsName != null);
View Full Code Here

Examples of com.google.gwt.dev.jjs.ast.JNode

        error(x, "Only string literals may be used as arguments to Impl.getNameOf()");
        return null;
      }
      JStringLiteral stringLiteral = (JStringLiteral) arg;
      String stringValue = stringLiteral.getValue();
      JNode node = null;

      JsniRef ref = JsniRef.parse(stringValue);
      if (ref != null) {
        node = JsniRefLookup.findJsniRefTarget(ref, program, new JsniRefLookup.ErrorReporter() {
          @Override
View Full Code Here

Examples of com.google.gwt.dev.jjs.ast.JNode

                ctx.replaceMe(createRef(x.getSourceInfo(), original));
              }
            }
          };
          CfgNode<?> parentNode = node.getParent();
          JNode parentJNode = parentNode.getJNode();
          visitor.accept(parentJNode);
          Preconditions.checkState(visitor.didChange());
          return true;
        }
      };
View Full Code Here

Examples of com.google.gwt.dev.jjs.ast.JNode

      public boolean transform(CfgNode<?> node, Cfg cfgGraph) {
        if (node.getParent() == null) {
          throw new IllegalArgumentException("Null parent in " + node);
        }

        JNode jNode = node.getJNode();

        if (node instanceof CfgStatementNode<?> && !(jNode instanceof JBlock)) {
          // Don't try deleting inner expressions and blocks.
          // Delete statements only.
          CfgNode<?> parentNode = CfgUtil.findParentOfContainingStatement(node);
          JNode parentJNode = parentNode.getJNode();
          boolean didChange = DeleteNodeVisitor.delete(jNode, parentJNode);
          Preconditions.checkState(didChange,
              "Can't delete %s (%s) from under %s (%s)", jNode, node,
              parentJNode, parentNode);
          return true;
View Full Code Here

Examples of com.google.gwt.dev.jjs.ast.JNode

        };

        CfgNode<?> parentNode = CfgUtil.findParentOfContainingStatement(node);
        Preconditions.checkNotNull(parentNode,
            "Can't find parent of stmt of %s", node);
        JNode parentJNode = parentNode.getJNode();
        visitor.accept(parentJNode);
        Preconditions.checkState(visitor.didChange(),
            "Can't remove write in %s", node.getJNode());
        return visitor.didChange();
      }
View Full Code Here

Examples of com.google.gwt.dev.jjs.ast.JNode

      private void processNameRef(JsNameRef nameRef, JsContext ctx) {
        SourceInfo info = nativeMethodBody.getSourceInfo();
        // TODO: make this tighter when we have real source info
        // JSourceInfo info = translateInfo(nameRef.getInfo());
        String ident = nameRef.getIdent();
        JNode node = program.jsniMap.get(ident);
        if (node == null) {
          node = findJsniRefTarget(info, ident);
          if (node == null) {
            return; // already reported error
          }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. 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.