public interface AbstractSyntaxTree
startNode(NodeMetadata) and end with endNode().
Each node may have or may not have leaves.
Example: AbstractSyntaxTree tree = new AbstractSyntaxTree(); tree.startNode(SELECT, ", "); .addLeaf("id"); .addLeaf("name"); .addLeaf("phone"); tree.addLeaves("date", "email"); tree.startNode(FROM); tree.addLeaf("table1").addLeaf("table2").setDelimiter(" "); tree.endNode(); tree.startNode(WHERE, "") .addLeaf("id") .addLeaf("=") .addLeaf("id") .endNode(); tree.endNode();
| Modifier and Type | Method | Description |
|---|---|---|
AbstractSyntaxTree |
addChildNode(Node node) |
Insert child node into the parent node.
|
AbstractSyntaxTree |
addLeaf(Token token) |
Add
leaf into current node. |
AbstractSyntaxTree |
addLeaves(java.util.List<Token> tokens) |
Add
leaves into current node. |
AbstractSyntaxTree |
addLeaves(Token... tokens) |
Add
leaves into current node. |
AbstractSyntaxTree |
endNode() |
Each node must be closed.
|
Node |
getRootNode() |
|
AbstractSyntaxTree |
peek(AstVisitor node) |
It look into
node object, then the method AstVisitor.assemble(AbstractSyntaxTree)
is called. |
AbstractSyntaxTree |
reinitialize() |
Destroy an assembled tree then new one is initialized.
|
AbstractSyntaxTree |
setDelimiter(java.lang.String delimiter) |
Each leaves must separated by
delimiter token. |
AbstractSyntaxTree |
startNode(NodeMetadata metadata) |
Each node must have a
metadata object. |
AbstractSyntaxTree |
startNode(NodeMetadata metadata,
java.lang.String delimiter) |
Each node must have a
metadata. |
AbstractSyntaxTree startNode(NodeMetadata metadata)
metadata object.AbstractSyntaxTree startNode(NodeMetadata metadata, java.lang.String delimiter)
metadata. And override a default delimiter
by provides a new one.setDelimiter(String),
startNode(NodeMetadata)AbstractSyntaxTree setDelimiter(java.lang.String delimiter)
delimiter token. If it is not
specified, space " " is used as default delimiter.AbstractSyntaxTree endNode()
AbstractSyntaxTree addLeaf(Token token)
leaf into current node. Kinds of leaf are SQL tokens.addLeaves(Token...),
TokenAbstractSyntaxTree addLeaves(Token... tokens)
leaves into current node. Kinds of leaves are SQL tokens.addLeaf(Token),
(Token),
TokenAbstractSyntaxTree addLeaves(java.util.List<Token> tokens)
leaves into current node. Kinds of leaves are SQL tokens.addLeaf(Token),
addLeaves(Token...),
TokenAbstractSyntaxTree addChildNode(Node node)
AbstractSyntaxTree reinitialize()
AbstractSyntaxTree peek(AstVisitor node)
node object, then the method AstVisitor.assemble(AbstractSyntaxTree)
is called.Node getRootNode()