Index: compiler/java/com/google/dart/compiler/backend/js/ast/JsProgram.java |
diff --git a/compiler/java/com/google/dart/compiler/backend/js/ast/JsProgram.java b/compiler/java/com/google/dart/compiler/backend/js/ast/JsProgram.java |
deleted file mode 100644 |
index 1d2c902d27a04703709bf078ee5c3db91c8e5614..0000000000000000000000000000000000000000 |
--- a/compiler/java/com/google/dart/compiler/backend/js/ast/JsProgram.java |
+++ /dev/null |
@@ -1,172 +0,0 @@ |
-// Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file |
-// for details. All rights reserved. Use of this source code is governed by a |
-// BSD-style license that can be found in the LICENSE file. |
- |
-package com.google.dart.compiler.backend.js.ast; |
- |
-import java.util.HashMap; |
-import java.util.Map; |
- |
-/** |
- * A JavaScript program. |
- */ |
-public final class JsProgram extends JsNode { |
- |
- private final JsStatement debuggerStmt; |
- private final JsEmpty emptyStmt; |
- private final JsBooleanLiteral falseLiteral; |
- private JsProgramFragment[] fragments; |
- private final Map<String, JsFunction> indexedFunctions = new HashMap<String, JsFunction>(); |
- private final JsNullLiteral nullLiteral; |
- private final Map<Double, JsNumberLiteral> numberLiteralMap = |
- new HashMap<Double, JsNumberLiteral>(); |
- private final JsScope objectScope; |
- private final JsRootScope rootScope; |
- private final Map<String, JsStringLiteral> stringLiteralMap = |
- new HashMap<String, JsStringLiteral>(); |
- private final JsScope topScope; |
- private final JsBooleanLiteral trueLiteral; |
- |
- /** |
- * Constructs a JavaScript program object. |
- */ |
- public JsProgram(String unitId) { |
- rootScope = new JsRootScope(this); |
- topScope = new JsScope(rootScope, "Global", unitId); |
- objectScope = new JsScope(rootScope, "Object"); |
- setFragmentCount(1); |
- |
- debuggerStmt = new JsDebugger(); |
- emptyStmt = new JsEmpty(); |
- falseLiteral = new JsBooleanLiteral(false); |
- nullLiteral = new JsNullLiteral(); |
- trueLiteral = new JsBooleanLiteral(true); |
- } |
- |
- public JsBooleanLiteral getBooleanLiteral(boolean truth) { |
- if (truth) { |
- return getTrueLiteral(); |
- } |
- return getFalseLiteral(); |
- } |
- |
- /** |
- * Gets the {@link JsStatement} to use whenever parsed source include a |
- * <code>debugger</code> statement. |
- */ |
- public JsStatement getDebuggerStmt() { |
- return debuggerStmt; |
- } |
- |
- public JsEmpty getEmptyStmt() { |
- return emptyStmt; |
- } |
- |
- public JsBooleanLiteral getFalseLiteral() { |
- return falseLiteral; |
- } |
- |
- public JsBlock getFragmentBlock(int fragment) { |
- if (fragment < 0 || fragment >= fragments.length) { |
- throw new IllegalArgumentException("Invalid fragment: " + fragment); |
- } |
- return fragments[fragment].getGlobalBlock(); |
- } |
- |
- public int getFragmentCount() { |
- return this.fragments.length; |
- } |
- |
- /** |
- * Gets the one and only global block. |
- */ |
- public JsBlock getGlobalBlock() { |
- return getFragmentBlock(0); |
- } |
- |
- public JsFunction getIndexedFunction(String name) { |
- return indexedFunctions.get(name); |
- } |
- |
- public JsNullLiteral getNullLiteral() { |
- return nullLiteral; |
- } |
- |
- public JsNumberLiteral getNumberLiteral(double value) { |
- JsNumberLiteral lit = numberLiteralMap.get(value); |
- if (lit == null) { |
- lit = new JsNumberLiteral(value); |
- numberLiteralMap.put(value, lit); |
- } |
- |
- return lit; |
- } |
- |
- public JsScope getObjectScope() { |
- return objectScope; |
- } |
- |
- /** |
- * Gets the quasi-mythical root scope. This is not the same as the top scope; |
- * all unresolvable identifiers wind up here, because they are considered |
- * external to the program. |
- */ |
- public JsRootScope getRootScope() { |
- return rootScope; |
- } |
- |
- /** |
- * Gets the top level scope. This is the scope of all the statements in the |
- * main program. |
- */ |
- public JsScope getScope() { |
- return topScope; |
- } |
- |
- /** |
- * Creates or retrieves a JsStringLiteral from an interned object pool. |
- */ |
- public JsStringLiteral getStringLiteral(String value) { |
- JsStringLiteral lit = stringLiteralMap.get(value); |
- if (lit == null) { |
- lit = new JsStringLiteral(value); |
- stringLiteralMap.put(value, lit); |
- } |
- return lit; |
- } |
- |
- public JsBooleanLiteral getTrueLiteral() { |
- return trueLiteral; |
- } |
- |
- public JsNameRef getUndefinedLiteral() { |
- return new JsNameRef("$Dart$Null"); |
- } |
- |
- public void setFragmentCount(int fragments) { |
- this.fragments = new JsProgramFragment[fragments]; |
- for (int i = 0; i < fragments; i++) { |
- this.fragments[i] = new JsProgramFragment(); |
- } |
- } |
- |
- public void setIndexedFunctions(Map<String, JsFunction> indexedFunctions) { |
- this.indexedFunctions.clear(); |
- this.indexedFunctions.putAll(indexedFunctions); |
- } |
- |
- @Override |
- public void traverse(JsVisitor v, JsContext ctx) { |
- if (v.visit(this, ctx)) { |
- for (JsProgramFragment fragment : fragments) { |
- v.accept(fragment); |
- } |
- } |
- v.endVisit(this, ctx); |
- } |
- |
- @Override |
- public NodeKind getKind() { |
- return NodeKind.PROGRAM; |
- } |
-} |