当前位置: 首页>>代码示例>>Java>>正文


Java Node.setType方法代码示例

本文整理汇总了Java中com.google.javascript.rhino.Node.setType方法的典型用法代码示例。如果您正苦于以下问题:Java Node.setType方法的具体用法?Java Node.setType怎么用?Java Node.setType使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在com.google.javascript.rhino.Node的用法示例。


在下文中一共展示了Node.setType方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: normalizeNodeTypes

import com.google.javascript.rhino.Node; //导入方法依赖的package包/类
/**
 * Covert EXPR_VOID to EXPR_RESULT to simplify the rest of the code.
 */
private void normalizeNodeTypes(Node n) {
  if (n.getType() == Token.EXPR_VOID) {
    n.setType(Token.EXPR_RESULT);
    reportChange();
  }

  // Remove unused properties to minimize differences between ASTs
  // produced by the two parsers.
  if (n.getType() == Token.FUNCTION) {
    Preconditions.checkState(n.getProp(Node.FUNCTION_PROP) == null);
  }

  normalizeBlocks(n);

  for (Node child = n.getFirstChild();
       child != null; child = child.getNext()) {
    // This pass is run during the CompilerTestCase validation, so this
    // parent pointer check serves as a more general check.
    Preconditions.checkState(child.getParent() == n);

    normalizeNodeTypes(child);
  }
}
 
开发者ID:andyjko,项目名称:feedlack,代码行数:27,代码来源:PrepareAst.java

示例2: tryMinimizeNot

import com.google.javascript.rhino.Node; //导入方法依赖的package包/类
/**
 * Try to minimize NOT nodes such as !(x==y).
 */
private boolean tryMinimizeNot(NodeTraversal t, Node n, Node parent) {
  Node notChild = n.getFirstChild();
  // negative operator of the current one : == -> != for instance.
  int complementOperator;
  switch (notChild.getType()) {
    case Token.EQ:
      complementOperator = Token.NE;
      break;
    case Token.NE:
      complementOperator = Token.EQ;
      break;
    case Token.SHEQ:
      complementOperator = Token.SHNE;
      break;
    case Token.SHNE:
      complementOperator = Token.SHEQ;
      break;
    // GT, GE, LT, LE are not handled in this because !(x<NaN) != x>=NaN.
    default:
      return false;
  }
  Node newOperator = n.removeFirstChild();
  newOperator.setType(complementOperator);
  parent.replaceChild(n, newOperator);
  t.getCompiler().reportCodeChange();
  return true;
}
 
开发者ID:andyjko,项目名称:feedlack,代码行数:31,代码来源:FoldConstants.java

示例3: transformAsString

import com.google.javascript.rhino.Node; //导入方法依赖的package包/类
/**
 * Transforms the given node and then sets its type to Token.STRING if it
 * was Token.NAME. If its type was already Token.STRING, then quotes it.
 * Used for properties, as the old AST uses String tokens, while the new one
 * uses Name tokens for unquoted strings. For example, in
 * var o = {'a' : 1, b: 2};
 * the string 'a' is quoted, while the name b is turned into a string, but
 * unquoted.
 */
private Node transformAsString(AstNode n) {
  Node ret = transform(n);
  if (ret.getType() == Token.STRING) {
    ret.putBooleanProp(Node.QUOTED_PROP, true);
  } else if (ret.getType() == Token.NAME) {
    ret.setType(Token.STRING);
  }
  return ret;
}
 
开发者ID:andyjko,项目名称:feedlack,代码行数:19,代码来源:IRFactory.java

示例4: visit

import com.google.javascript.rhino.Node; //导入方法依赖的package包/类
@Override
public void visit(NodeTraversal t, Node n, Node parent) {
  switch (n.getType()) {
    case Token.WHILE:
      if (CONVERT_WHILE_TO_FOR) {
        Node expr = n.getFirstChild();
        n.setType(Token.FOR);
        n.addChildBefore(new Node(Token.EMPTY), expr);
        n.addChildAfter(new Node(Token.EMPTY), expr);
        reportCodeChange("WHILE node");
      }
      break;
  }
}
 
开发者ID:andyjko,项目名称:feedlack,代码行数:15,代码来源:Normalize.java


注:本文中的com.google.javascript.rhino.Node.setType方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。