blob: a01364871584d6ab274326c78c5832fac74693a7 [file] [log] [blame]
package test.wksp.eclipse;
public class X18 {
/**
* Sets the kind of constructs to be parsed from the source.
* Defaults to an entire compilation unit.
* <p>
* When the parse is successful the result returned includes the ASTs for the
* requested source:
* <ul>
* <li>{@link #K_COMPILATION_UNIT}: The result node
* is a {@link CompilationUnit}.</li>
* <li>{@link #K_CLASS_BODY_DECLARATIONS}: The result node
* is a {@link TypeDeclaration} whose
* {@link TypeDeclaration#bodyDeclarations() bodyDeclarations}
* are the new trees. Other aspects of the type declaration are unspecified.</li>
* <li>{@link #K_STATEMENTS}: The result node is a
* {@link Block Block} whose {@link Block#statements() statements}
* are the new trees. Other aspects of the block are unspecified.</li>
* <li>{@link #K_EXPRESSION}: The result node is a subclass of
* {@link Expression Expression}. Other aspects of the expression are unspecified.</li>
* </ul>
* The resulting AST node is rooted under (possibly contrived)
* {@link CompilationUnit CompilationUnit} node, to allow the
* client to retrieve the following pieces of information
* available there:
* <ul>
* <li>{@linkplain CompilationUnit#lineNumber(int) Line number map}. Line
* numbers start at 1 and only cover the subrange scanned
* (<code>source[offset]</code> through <code>source[offset+length-1]</code>).</li>
* <li>{@linkplain CompilationUnit#getMessages() Compiler messages}
* and {@linkplain CompilationUnit#getProblems() detailed problem reports}.
* Character positions are relative to the start of
* <code>source</code>; line positions are for the subrange scanned.</li>
* <li>{@linkplain CompilationUnit#getCommentList() Comment list}
* for the subrange scanned.</li>
* </ul>
* The contrived nodes do not have source positions. Other aspects of the
* {@link CompilationUnit CompilationUnit} node are unspecified, including
* the exact arrangment of intervening nodes.
* </p>
* <p>
* Lexical or syntax errors detected while parsing can result in
* a result node being marked as {@link ASTNode#MALFORMED MALFORMED}.
* In more severe failure cases where the parser is unable to
* recognize the input, this method returns
* a {@link CompilationUnit CompilationUnit} node with at least the
* compiler messages.
* </p>
* <p>Each node in the subtree (other than the contrived nodes)
* carries source range(s) information relating back
* to positions in the given source (the given source itself
* is not remembered with the AST).
* The source range usually begins at the first character of the first token
* corresponding to the node; leading whitespace and comments are <b>not</b>
* included. The source range usually extends through the last character of
* the last token corresponding to the node; trailing whitespace and
* comments are <b>not</b> included. There are a handful of exceptions
* (including the various body declarations); the
* specification for these node type spells out the details.
* Source ranges nest properly: the source range for a child is always
* within the source range of its parent, and the source ranges of sibling
* nodes never overlap.
* </p>
* <p>
* Binding information is only computed when <code>kind</code> is
* <code>K_COMPILATION_UNIT</code>.
* </p>
*
* @param kind the kind of construct to parse: one of
* {@link #K_COMPILATION_UNIT},
* {@link #K_CLASS_BODY_DECLARATIONS},
* {@link #K_EXPRESSION},
* {@link #K_STATEMENTS}
*/
void setKind(int kind) {
}
}