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 /** 19 * An abstract base class for all JavaScript expressions. 20 */ 21 public abstract class JsExpression extends JsNode { 22 /** 23 * Determines whether or not this expression is a leaf, such as a 24 * {@link JsNameRef}, {@link JsBooleanLiteral}, and so on. Leaf expressions 25 * never need to be parenthesized. 26 */ 27 public boolean isLeaf() { 28 // Conservatively say that it isn't a leaf. 29 // Individual subclasses can speak for themselves if they are a leaf. 30 // 31 return false; 32 } 33 34 public JsExprStmt makeStmt() { 35 return new JsExprStmt(this); 36 } 37 } 38