Java Code Examples for com.google.javascript.rhino.Node#setCharno()

The following examples show how to use com.google.javascript.rhino.Node#setCharno() . You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: Closure_42_IRFactory_t.java    From coming with MIT License 6 votes vote down vote up
private Node transformBlock(AstNode node) {
  Node irNode = transform(node);
  if (!irNode.isBlock()) {
    if (irNode.isEmpty()) {
      irNode.setType(Token.BLOCK);
      irNode.setWasEmptyNode(true);
    } else {
      Node newBlock = newNode(Token.BLOCK, irNode);
      newBlock.setLineno(irNode.getLineno());
      newBlock.setCharno(irNode.getCharno());
      maybeSetLengthFrom(newBlock, node);
      irNode = newBlock;
    }
  }
  return irNode;
}
 
Example 2
Source File: Closure_122_IRFactory_t.java    From coming with MIT License 6 votes vote down vote up
@Override
Node processLabeledStatement(LabeledStatement statementNode) {
  Node node = newNode(Token.LABEL);
  Node prev = null;
  Node cur = node;
  for (Label label : statementNode.getLabels()) {
    if (prev != null) {
      prev.addChildToBack(cur);
    }
    cur.addChildToBack(transform(label));

    cur.setLineno(label.getLineno());
    maybeSetLengthFrom(cur, label);

    int clauseAbsolutePosition =
        position2charno(label.getAbsolutePosition());
    cur.setCharno(clauseAbsolutePosition);

    prev = cur;
    cur = newNode(Token.LABEL);
  }
  prev.addChildToBack(transform(statementNode.getStatement()));
  return node;
}
 
Example 3
Source File: Closure_122_IRFactory_s.java    From coming with MIT License 6 votes vote down vote up
private Node transformBlock(AstNode node) {
  Node irNode = transform(node);
  if (!irNode.isBlock()) {
    if (irNode.isEmpty()) {
      irNode.setType(Token.BLOCK);
      irNode.setWasEmptyNode(true);
    } else {
      Node newBlock = newNode(Token.BLOCK, irNode);
      newBlock.setLineno(irNode.getLineno());
      newBlock.setCharno(irNode.getCharno());
      maybeSetLengthFrom(newBlock, node);
      irNode = newBlock;
    }
  }
  return irNode;
}
 
Example 4
Source File: IRFactory.java    From astor with GNU General Public License v2.0 6 votes vote down vote up
@Override
Node processLabeledStatement(LabeledStatement statementNode) {
  Node node = newNode(Token.LABEL);
  Node prev = null;
  Node cur = node;
  for (Label label : statementNode.getLabels()) {
    if (prev != null) {
      prev.addChildToBack(cur);
    }
    cur.addChildToBack(transform(label));

    cur.setLineno(label.getLineno());
    maybeSetLengthFrom(cur, label);

    int clauseAbsolutePosition =
        position2charno(label.getAbsolutePosition());
    cur.setCharno(clauseAbsolutePosition);

    prev = cur;
    cur = newNode(Token.LABEL);
  }
  prev.addChildToBack(transform(statementNode.getStatement()));
  return node;
}
 
Example 5
Source File: Closure_42_IRFactory_t.java    From coming with MIT License 6 votes vote down vote up
@Override
Node processSwitchCase(SwitchCase caseNode) {
  Node node;
  if (caseNode.isDefault()) {
    node = newNode(Token.DEFAULT_CASE);
  } else {
    AstNode expr = caseNode.getExpression();
    node = newNode(Token.CASE, transform(expr));
  }
  Node block = newNode(Token.BLOCK);
  block.putBooleanProp(Node.SYNTHETIC_BLOCK_PROP, true);
  block.setLineno(caseNode.getLineno());
  block.setCharno(position2charno(caseNode.getAbsolutePosition()));
  maybeSetLengthFrom(block, caseNode);
  if (caseNode.getStatements() != null) {
    for (AstNode child : caseNode.getStatements()) {
      block.addChildToBack(transform(child));
    }
  }
  node.addChildToBack(block);
  return node;
}
 
Example 6
Source File: Closure_42_IRFactory_s.java    From coming with MIT License 6 votes vote down vote up
@Override
Node processSwitchCase(SwitchCase caseNode) {
  Node node;
  if (caseNode.isDefault()) {
    node = newNode(Token.DEFAULT_CASE);
  } else {
    AstNode expr = caseNode.getExpression();
    node = newNode(Token.CASE, transform(expr));
  }
  Node block = newNode(Token.BLOCK);
  block.putBooleanProp(Node.SYNTHETIC_BLOCK_PROP, true);
  block.setLineno(caseNode.getLineno());
  block.setCharno(position2charno(caseNode.getAbsolutePosition()));
  maybeSetLengthFrom(block, caseNode);
  if (caseNode.getStatements() != null) {
    for (AstNode child : caseNode.getStatements()) {
      block.addChildToBack(transform(child));
    }
  }
  node.addChildToBack(block);
  return node;
}
 
Example 7
Source File: Closure_81_IRFactory_s.java    From coming with MIT License 6 votes vote down vote up
@Override
Node processSwitchCase(SwitchCase caseNode) {
  Node node;
  if (caseNode.isDefault()) {
    node = newNode(Token.DEFAULT);
  } else {
    AstNode expr = caseNode.getExpression();
    node = newNode(Token.CASE, transform(expr));
  }
  Node block = newNode(Token.BLOCK);
  block.putBooleanProp(Node.SYNTHETIC_BLOCK_PROP, true);
  block.setLineno(caseNode.getLineno());
  block.setCharno(position2charno(caseNode.getAbsolutePosition()));
  if (caseNode.getStatements() != null) {
    for (AstNode child : caseNode.getStatements()) {
      block.addChildToBack(transform(child));
    }
  }
  node.addChildToBack(block);
  return node;
}
 
Example 8
Source File: IRFactory.java    From astor with GNU General Public License v2.0 6 votes vote down vote up
private Node transformBlock(AstNode node) {
  Node irNode = transform(node);
  if (!irNode.isBlock()) {
    if (irNode.isEmpty()) {
      irNode.setType(Token.BLOCK);
      irNode.setWasEmptyNode(true);
    } else {
      Node newBlock = newNode(Token.BLOCK, irNode);
      newBlock.setLineno(irNode.getLineno());
      newBlock.setCharno(irNode.getCharno());
      maybeSetLengthFrom(newBlock, node);
      irNode = newBlock;
    }
  }
  return irNode;
}
 
Example 9
Source File: Closure_42_IRFactory_s.java    From coming with MIT License 6 votes vote down vote up
private Node transformBlock(AstNode node) {
  Node irNode = transform(node);
  if (!irNode.isBlock()) {
    if (irNode.isEmpty()) {
      irNode.setType(Token.BLOCK);
      irNode.setWasEmptyNode(true);
    } else {
      Node newBlock = newNode(Token.BLOCK, irNode);
      newBlock.setLineno(irNode.getLineno());
      newBlock.setCharno(irNode.getCharno());
      maybeSetLengthFrom(newBlock, node);
      irNode = newBlock;
    }
  }
  return irNode;
}
 
Example 10
Source File: Closure_81_IRFactory_t.java    From coming with MIT License 6 votes vote down vote up
@Override
Node processSwitchCase(SwitchCase caseNode) {
  Node node;
  if (caseNode.isDefault()) {
    node = newNode(Token.DEFAULT);
  } else {
    AstNode expr = caseNode.getExpression();
    node = newNode(Token.CASE, transform(expr));
  }
  Node block = newNode(Token.BLOCK);
  block.putBooleanProp(Node.SYNTHETIC_BLOCK_PROP, true);
  block.setLineno(caseNode.getLineno());
  block.setCharno(position2charno(caseNode.getAbsolutePosition()));
  if (caseNode.getStatements() != null) {
    for (AstNode child : caseNode.getStatements()) {
      block.addChildToBack(transform(child));
    }
  }
  node.addChildToBack(block);
  return node;
}
 
Example 11
Source File: Closure_37_IRFactory_t.java    From coming with MIT License 6 votes vote down vote up
@Override
Node processSwitchCase(SwitchCase caseNode) {
  Node node;
  if (caseNode.isDefault()) {
    node = newNode(Token.DEFAULT_CASE);
  } else {
    AstNode expr = caseNode.getExpression();
    node = newNode(Token.CASE, transform(expr));
  }
  Node block = newNode(Token.BLOCK);
  block.putBooleanProp(Node.SYNTHETIC_BLOCK_PROP, true);
  block.setLineno(caseNode.getLineno());
  block.setCharno(position2charno(caseNode.getAbsolutePosition()));
  maybeSetLengthFrom(block, caseNode);
  if (caseNode.getStatements() != null) {
    for (AstNode child : caseNode.getStatements()) {
      block.addChildToBack(transform(child));
    }
  }
  node.addChildToBack(block);
  return node;
}
 
Example 12
Source File: Closure_122_IRFactory_s.java    From coming with MIT License 6 votes vote down vote up
@Override
Node processSwitchCase(SwitchCase caseNode) {
  Node node;
  if (caseNode.isDefault()) {
    node = newNode(Token.DEFAULT_CASE);
  } else {
    AstNode expr = caseNode.getExpression();
    node = newNode(Token.CASE, transform(expr));
  }
  Node block = newNode(Token.BLOCK);
  block.putBooleanProp(Node.SYNTHETIC_BLOCK_PROP, true);
  block.setLineno(caseNode.getLineno());
  block.setCharno(position2charno(caseNode.getAbsolutePosition()));
  maybeSetLengthFrom(block, caseNode);
  if (caseNode.getStatements() != null) {
    for (AstNode child : caseNode.getStatements()) {
      block.addChildToBack(transform(child));
    }
  }
  node.addChildToBack(block);
  return node;
}
 
Example 13
Source File: Closure_81_IRFactory_s.java    From coming with MIT License 5 votes vote down vote up
@Override
Node processFunctionCall(FunctionCall callNode) {
  Node node = newNode(transformTokenType(callNode.getType()),
                       transform(callNode.getTarget()));
  for (AstNode child : callNode.getArguments()) {
    node.addChildToBack(transform(child));
  }

  int leftParamPos = callNode.getAbsolutePosition() + callNode.getLp();
  node.setLineno(callNode.getLineno());
  node.setCharno(position2charno(leftParamPos));
  return node;
}
 
Example 14
Source File: Closure_81_IRFactory_s.java    From coming with MIT License 5 votes vote down vote up
private Node transformBlock(AstNode node) {
  Node irNode = transform(node);
  if (irNode.getType() != Token.BLOCK) {
    if (irNode.getType() == Token.EMPTY) {
      irNode.setType(Token.BLOCK);
      irNode.setWasEmptyNode(true);
    } else {
      Node newBlock = newNode(Token.BLOCK, irNode);
      newBlock.setLineno(irNode.getLineno());
      newBlock.setCharno(irNode.getCharno());
      irNode = newBlock;
    }
  }
  return irNode;
}
 
Example 15
Source File: Closure_37_IRFactory_t.java    From coming with MIT License 5 votes vote down vote up
@Override
Node processFunctionCall(FunctionCall callNode) {
  Node node = newNode(transformTokenType(callNode.getType()),
                       transform(callNode.getTarget()));
  for (AstNode child : callNode.getArguments()) {
    node.addChildToBack(transform(child));
  }

  node.setLineno(node.getFirstChild().getLineno());
  node.setCharno(node.getFirstChild().getCharno());
  maybeSetLengthFrom(node, callNode);
  return node;
}
 
Example 16
Source File: Closure_42_IRFactory_s.java    From coming with MIT License 5 votes vote down vote up
@Override
Node processFunctionCall(FunctionCall callNode) {
  Node node = newNode(transformTokenType(callNode.getType()),
                       transform(callNode.getTarget()));
  for (AstNode child : callNode.getArguments()) {
    node.addChildToBack(transform(child));
  }

  node.setLineno(node.getFirstChild().getLineno());
  node.setCharno(node.getFirstChild().getCharno());
  maybeSetLengthFrom(node, callNode);
  return node;
}
 
Example 17
Source File: Closure_37_IRFactory_s.java    From coming with MIT License 5 votes vote down vote up
@Override
Node processPropertyGet(PropertyGet getNode) {
  Node leftChild = transform(getNode.getTarget());
  Node newNode = newNode(
      Token.GETPROP, leftChild, transformAsString(getNode.getProperty()));
  newNode.setLineno(leftChild.getLineno());
  newNode.setCharno(leftChild.getCharno());
  maybeSetLengthFrom(newNode, getNode);
  return newNode;
}
 
Example 18
Source File: Closure_81_IRFactory_s.java    From coming with MIT License 4 votes vote down vote up
@Override
Node processFunctionNode(FunctionNode functionNode) {
  Name name = functionNode.getFunctionName();
  Boolean isUnnamedFunction = false;
  if (name == null) {
    name = new Name();
    name.setIdentifier("");
    isUnnamedFunction = true;
  }
  Node node = newNode(Token.FUNCTION);
  Node newName = transform(name);
  if (isUnnamedFunction) {
    // Old Rhino tagged the empty name node with the line number of the
    // declaration.
    newName.setLineno(functionNode.getLineno());
    // TODO(bowdidge) Mark line number of paren correctly.
    // Same problem as below - the left paren might not be on the
    // same line as the function keyword.
    int lpColumn = functionNode.getAbsolutePosition() +
        functionNode.getLp();
    newName.setCharno(position2charno(lpColumn));
  }

  node.addChildToBack(newName);
  Node lp = newNode(Token.LP);
  // The left paren's complicated because it's not represented by an
  // AstNode, so there's nothing that has the actual line number that it
  // appeared on.  We know the paren has to appear on the same line as the
  // function name (or else a semicolon will be inserted.)  If there's no
  // function name, assume the paren was on the same line as the function.
  // TODO(bowdidge): Mark line number of paren correctly.
  Name fnName = functionNode.getFunctionName();
  if (fnName != null) {
    lp.setLineno(fnName.getLineno());
  } else {
    lp.setLineno(functionNode.getLineno());
  }
  int lparenCharno = functionNode.getLp() +
      functionNode.getAbsolutePosition();

  lp.setCharno(position2charno(lparenCharno));
  for (AstNode param : functionNode.getParams()) {
    lp.addChildToBack(transform(param));
  }
  node.addChildToBack(lp);

  Node bodyNode = transform(functionNode.getBody());
  parseDirectives(bodyNode);
  node.addChildToBack(bodyNode);
 return node;
}
 
Example 19
Source File: Closure_42_IRFactory_t.java    From coming with MIT License 4 votes vote down vote up
@Override
Node processFunctionNode(FunctionNode functionNode) {
  Name name = functionNode.getFunctionName();
  Boolean isUnnamedFunction = false;
  if (name == null) {
    int functionType = functionNode.getFunctionType();
    if (functionType != FunctionNode.FUNCTION_EXPRESSION) {
      errorReporter.error(
        "unnamed function statement",
        sourceName,
        functionNode.getLineno(), "", 0);

      // Return the bare minimum to put the AST in a valid state.
      return newNode(Token.EXPR_RESULT, Node.newNumber(0));
    }
    name = new Name();
    name.setIdentifier("");
    isUnnamedFunction = true;
  }
  Node node = newNode(Token.FUNCTION);
  Node newName = transform(name);
  if (isUnnamedFunction) {
    // Old Rhino tagged the empty name node with the line number of the
    // declaration.
    newName.setLineno(functionNode.getLineno());
    // TODO(bowdidge) Mark line number of paren correctly.
    // Same problem as below - the left paren might not be on the
    // same line as the function keyword.
    int lpColumn = functionNode.getAbsolutePosition() +
        functionNode.getLp();
    newName.setCharno(position2charno(lpColumn));
    maybeSetLengthFrom(newName, name);
  }

  node.addChildToBack(newName);
  Node lp = newNode(Token.PARAM_LIST);
  // The left paren's complicated because it's not represented by an
  // AstNode, so there's nothing that has the actual line number that it
  // appeared on.  We know the paren has to appear on the same line as the
  // function name (or else a semicolon will be inserted.)  If there's no
  // function name, assume the paren was on the same line as the function.
  // TODO(bowdidge): Mark line number of paren correctly.
  Name fnName = functionNode.getFunctionName();
  if (fnName != null) {
    lp.setLineno(fnName.getLineno());
  } else {
    lp.setLineno(functionNode.getLineno());
  }
  int lparenCharno = functionNode.getLp() +
      functionNode.getAbsolutePosition();

  lp.setCharno(position2charno(lparenCharno));
  for (AstNode param : functionNode.getParams()) {
    lp.addChildToBack(transform(param));
  }
  node.addChildToBack(lp);

  Node bodyNode = transform(functionNode.getBody());
  parseDirectives(bodyNode);
  node.addChildToBack(bodyNode);
 return node;
}
 
Example 20
Source File: Closure_84_IRFactory_s.java    From coming with MIT License 4 votes vote down vote up
@Override
Node processFunctionNode(FunctionNode functionNode) {
    Name name = functionNode.getFunctionName();
    Boolean isUnnamedFunction = false;
    if (name == null) {
      name = new Name();
      name.setIdentifier("");
      isUnnamedFunction = true;
    }
    Node node = newNode(Token.FUNCTION);
    Node newName = transform(name);
    if (isUnnamedFunction) {
      // Old Rhino tagged the empty name node with the line number of the
      // declaration.
      newName.setLineno(functionNode.getLineno());
      // TODO(bowdidge) Mark line number of paren correctly.
      // Same problem as below - the left paren might not be on the
      // same line as the function keyword.
      int lpColumn = functionNode.getAbsolutePosition() +
          functionNode.getLp();
      newName.setCharno(position2charno(lpColumn));
    }

    node.addChildToBack(newName);
    Node lp = newNode(Token.LP);
    // The left paren's complicated because it's not represented by an
    // AstNode, so there's nothing that has the actual line number that it
    // appeared on.  We know the paren has to appear on the same line as the
    // function name (or else a semicolon will be inserted.)  If there's no
    // function name, assume the paren was on the same line as the function.
    // TODO(bowdidge): Mark line number of paren correctly.
    Name fnName = functionNode.getFunctionName();
    if (fnName != null) {
      lp.setLineno(fnName.getLineno());
    } else {
      lp.setLineno(functionNode.getLineno());
    }
    int lparenCharno = functionNode.getLp() +
        functionNode.getAbsolutePosition();

    lp.setCharno(position2charno(lparenCharno));
    for (AstNode param : functionNode.getParams()) {
      lp.addChildToBack(transform(param));
    }
    node.addChildToBack(lp);

    Node bodyNode = transform(functionNode.getBody());
    parseDirectives(bodyNode);
    node.addChildToBack(bodyNode);
   return node;
  }