
org.apache.royale.compiler.tree.as.IFileNode Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of compiler-common Show documentation
Show all versions of compiler-common Show documentation
The Apache Royale Compiler Common classes
The newest version!
/*
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
package org.apache.royale.compiler.tree.as;
import java.util.Collection;
import org.apache.royale.compiler.definitions.IDefinition;
import org.apache.royale.compiler.internal.parsing.as.OffsetLookup;
import org.apache.royale.compiler.internal.targets.ITargetAttributes;
import org.apache.royale.compiler.problems.ICompilerProblem;
import org.apache.royale.compiler.projects.ICompilerProject;
/**
* An AST node representing an ActionScript file being compiled.
*
* An IFileNode
is the root of the AST (abstract syntax tree)
* produced for a file.
*
* If the file includes other files, a single IFileNode
* is produced.
*
* The shape of this node is
*
* IFileNode
* IASNode <-- getChild(0)
* IASNode <-- getChild(1)
* ...
*
*/
public interface IFileNode extends IScopedNode
{
/**
* Returns a last modification timestamp of the current include file tree
*
* @return a timestamp
*/
long getIncludeTreeLastModified();
/**
* @return True is this file contains any include statements
*/
boolean hasIncludes();
/**
* @return OffsetLookup object of this file node.
*/
OffsetLookup getOffsetLookup();
/**
* If this {@code IFileNode} can be used as the MXML main application or
* ActionScript main class, it returns attributes related to SWF target.
* Otherwise, this method returns null.
*
* @param project Context project.
* @return Target attributes collected from special MXML attributes or
* ActionScript metadata tag.
*/
ITargetAttributes getTargetAttributes(ICompilerProject project);
/**
* Gets definition nodes within this file node that are children
* of the file node or children of a package block node.
*
* @param includeDefinitionsOutsideOfPackage A flag indicating whether
* definition nodes that aren't in a package should be included.
* @param includeNonPublicDefinitions A flag indicating whether
* definition nodes that don't have a public keyword should be included.
* @return An array of {@link IDefinitionNode} objects.
*/
IDefinitionNode[] getTopLevelDefinitionNodes(boolean includeDefinitionsOutsideOfPackage,
boolean includeNonPublicDefinitions);
/**
* Gets the definitions corresponding to the definitions nodes
* within this file node that are children of the file node
* or children of a package block node.
*
* @param includeDefinitionsOutsideOfPackage A flag indicating whether
* definitions that aren't in a package should be included.
* @param includeNonPublicDefinitions A flag indicating whether definitions
* that don't have a public keyword should be included.
* @return An array of {@link IDefinition} objects.
*/
IDefinition[] getTopLevelDefinitions(boolean includeDefinitionsOutsideOfPackage,
boolean includeNonPublicDefinitions);
/**
* Returns the problems that are contained in this file.
*
* @return An array of {@link ICompilerProblem} objects
*/
public Collection getProblems();
/**
* Rebuild function body nodes.
*/
void populateFunctionNodes();
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy