1 /* 2 * Copyright 2007 Google Inc. 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); you may not 5 * use this file except in compliance with the License. You may obtain a copy of 6 * the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 12 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 13 * License for the specific language governing permissions and limitations under 14 * the License. 15 */ 16 package com.google.gwt.dev.js.ast; 17 18 import com.google.gwt.dev.jjs.HasSourceInfo; 19 import com.google.gwt.dev.jjs.SourceInfo; 20 import com.google.gwt.dev.js.JsSourceGenerationVisitor; 21 import com.google.gwt.dev.js.JsToStringGenerationVisitor; 22 import com.google.gwt.dev.util.DefaultTextOutput; 23 24 /** 25 * Base class for all JS AST elements. 26 */ 27 public abstract class JsNode implements JsVisitable, HasSourceInfo { 28 29 public SourceInfo getSourceInfo() { 30 // TODO: make this real 31 return null; 32 } 33 34 // Causes source generation to delegate to the one visitor 35 public final String toSource() { 36 DefaultTextOutput out = new DefaultTextOutput(false); 37 JsSourceGenerationVisitor v = new JsSourceGenerationVisitor(out); 38 v.accept(this); 39 return out.toString(); 40 } 41 42 // Causes source generation to delegate to the one visitor 43 public final String toString() { 44 DefaultTextOutput out = new DefaultTextOutput(false); 45 JsToStringGenerationVisitor v = new JsToStringGenerationVisitor(out); 46 v.accept(this); 47 return out.toString(); 48 } 49 } 50