Package org.lilystudio.javascript.statement

Examples of org.lilystudio.javascript.statement.BlockStatement


   */
  public static IStatement createStatement(Node node, ScriptOrFnNode root,
      Scope scope) {
    switch (node.getType()) {
    case Token.BLOCK: {
      BlockStatement blockStatement = new BlockStatement(node, root, scope);
      StatementList statements = blockStatement.getStatementList();
      for (int i = statements.size() - 1; i >= 0; i--) {
        IStatement statement = statements.get(i);
        if (statement instanceof EmptyStatement) {
          statements.remove(i);
        }
      }

      IStatement statement;
      switch (statements.size()) {
      case 0:
        // 块语句没有内容等同于空语句
        statement = new EmptyStatement(node, root, scope);
        statement.setNext(blockStatement.getNext());
        statement.setParent(blockStatement.getParent());
        return statement;
      case 1:
        // 块语句只有一条语句等同于那一条语句
        statement = statements.get(0);
        statement.setNext(blockStatement.getNext());
        statement.setParent(blockStatement.getParent());
        return statement;
      default:
        return blockStatement;
      }
    }
View Full Code Here

TOP

Related Classes of org.lilystudio.javascript.statement.BlockStatement

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.