/*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle in the LICENSE file that accompanied this code.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
/** Factory class for trees.
*
* <p><b>This is NOT part of any supported API.
* If you write code that depends on this, you do so at your own risk.
* This code and its internal interfaces are subject to change or
* deletion without notice.</b>
*/
/** The context key for the tree factory. */
/** Get the TreeMaker instance. */
return instance;
}
/** The position at which subsequent trees will be created.
*/
/** The toplevel tree to which created trees belong.
*/
/** The current name table. */
/** The current symbol table. */
/** Create a tree maker with null toplevel and NOPOS as initial position.
*/
}
/** Create a tree maker with a given toplevel and FIRSTPOS as initial position.
*/
}
/** Create a new tree maker for a given toplevel.
*/
}
/** Reassign current position.
*/
return this;
}
/** Reassign current position.
*/
return this;
}
/**
* Create given tree node at current position.
* @param defs a list of ClassDef, Import, and Skip
*/
|| node instanceof JCErroneous
|| (node instanceof JCExpressionStatement
return tree;
}
return tree;
}
{
name,
defs,
null);
return tree;
}
name,
body,
null);
return tree;
}
public JCVariableDecl VarDef(JCModifiers mods, Name name, JCExpression vartype, JCExpression init) {
return tree;
}
return tree;
}
return tree;
}
return tree;
}
return tree;
}
{
return tree;
}
return tree;
}
return tree;
}
return tree;
}
return tree;
}
return tree;
}
}
return tree;
}
return tree;
}
{
return tree;
}
return tree;
}
return tree;
}
return tree;
}
return tree;
}
return tree;
}
return tree;
}
return tree;
}
{
return tree;
}
{
return tree;
}
{
return tree;
}
return tree;
}
return tree;
}
return tree;
}
return tree;
}
return tree;
}
return tree;
}
return tree;
}
return tree;
}
return tree;
}
return tree;
}
return tree;
}
return tree;
}
return tree;
}
return tree;
}
return tree;
}
return tree;
}
return tree;
}
return tree;
}
return tree;
}
return tree;
}
}
}
return tree;
}
return tree;
}
/* ***************************************************************************
* Derived building blocks.
****************************************************************************/
{
null,
defs);
}
return tree;
}
/** Create an identifier from a symbol.
*/
}
/** Create a selection node from a qualifier tree and a symbol.
* @param base The qualifier tree.
*/
}
/** Create a qualified identifier from a symbol, adding enough qualifications
* to make the reference unique.
*/
return isUnqualifiable(sym)
}
/** Create an identifier that refers to the variable declared in given variable
* declaration.
*/
}
/** Create a list of identifiers referring to the variables declared
* in given list of variable declarations.
*/
}
/** Create a tree representing `this', given its type.
*/
}
/** Create a tree representing a class literal.
*/
}
/** Create a tree representing a class literal.
*/
t,
t.tsym);
}
/** Create a tree representing `super', given its type and owner.
*/
}
/**
* Create a method invocation from a method tree and a list of
* argument trees.
*/
}
/**
* Create a no-arg method invocation from a method tree
*/
}
/** Create a method invocation from a method tree and a list of argument trees.
*/
return newclass;
}
/** Create a tree representing given type.
*/
switch (t.tag) {
break;
case TYPEVAR:
break;
case WILDCARD: {
WildcardType a = ((WildcardType) t);
break;
}
case CLASS:
? clazz
break;
case ARRAY:
break;
case ERROR:
break;
default:
throw new AssertionError("unexpected type: " + t);
}
}
/** Create a list of trees representing given list of types.
*/
}
/** Create a variable definition from a variable symbol and an initializer
* expression.
*/
return (JCVariableDecl)
new JCVariableDecl(
v.name,
init,
}
/** Create annotation trees from annotations.
*/
}
}
} else {
throw new AssertionError(value);
}
return result;
}
}
}
}
}
}
for (List<Pair<Symbol.MethodSymbol,Attribute>> values = compound.values; values.nonEmpty(); values=values.tail) {
}
}
}
a.accept(this);
return result;
}
return visitCompoundInternal(a);
}
}
/** Create an annotation tree from an attribute.
*/
}
/** Create a method definition from a method symbol and a method body.
*/
}
/** Create a method definition from a method symbol, method type
* and a method body.
*/
return (JCMethodDecl)
new JCMethodDecl(
m.name,
body,
null,
}
/** Create a type parameter tree from its name and type.
*/
return (JCTypeParameter)
}
/** Create a list of type parameter trees from a list of type variables.
*/
int i = 0;
}
/** Create a value parameter tree from its name, type, and owner.
*/
}
/** Create a a list of value parameter trees x0, ..., xn from a list of
* their types and an their owner.
*/
} else {
int i = 0;
}
}
/** Wrap a method invocation in an expression statement or return statement,
* depending on whether the method invocation expression's type is void.
*/
}
/** Construct an assignment from a variable symbol and a right hand side.
*/
}
/** Construct an index expression from a variable and an expression.
*/
return tree;
}
/** Make an attributed type cast expression.
*/
}
/* ***************************************************************************
* Helper methods.
****************************************************************************/
/** Can given symbol be referred to in unqualified form?
*/
return true;
return
}
return
}
return
}
}
return false;
}
/** The name of synthetic parameter number `i'.
*/
/** The name of synthetic type parameter number `i'.
*/
}