mirror of
https://github.com/DanilaFe/abacus
synced 2024-12-22 15:30:09 -08:00
Add comments to NumberReducer and FunctionNode.
This commit is contained in:
parent
bc72b4da8a
commit
cf95ed7dc0
|
@ -2,22 +2,46 @@ package org.nwapw.abacus.tree;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A node that represents a function call.
|
||||||
|
*/
|
||||||
public class FunctionNode extends TreeNode {
|
public class FunctionNode extends TreeNode {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The name of the function being called
|
||||||
|
*/
|
||||||
private String function;
|
private String function;
|
||||||
|
/**
|
||||||
|
* The list of arguments to the function.
|
||||||
|
*/
|
||||||
private ArrayList<TreeNode> children;
|
private ArrayList<TreeNode> children;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a function node with no function.
|
||||||
|
*/
|
||||||
private FunctionNode() { }
|
private FunctionNode() { }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a new function node with the given function name.
|
||||||
|
* @param function the function name.
|
||||||
|
*/
|
||||||
public FunctionNode(String function){
|
public FunctionNode(String function){
|
||||||
this.function = function;
|
this.function = function;
|
||||||
children = new ArrayList<>();
|
children = new ArrayList<>();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the function name for this node.
|
||||||
|
* @return the function name.
|
||||||
|
*/
|
||||||
public String getFunction() {
|
public String getFunction() {
|
||||||
return function;
|
return function;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Adds a child to this node.
|
||||||
|
* @param node the child to add.
|
||||||
|
*/
|
||||||
public void addChild(TreeNode node){
|
public void addChild(TreeNode node){
|
||||||
children.add(node);
|
children.add(node);
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,10 +4,21 @@ import org.nwapw.abacus.function.Function;
|
||||||
import org.nwapw.abacus.number.NumberInterface;
|
import org.nwapw.abacus.number.NumberInterface;
|
||||||
import org.nwapw.abacus.plugin.PluginManager;
|
import org.nwapw.abacus.plugin.PluginManager;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A reducer implementation that turns a tree into a single number.
|
||||||
|
* This is not always guaranteed to work.
|
||||||
|
*/
|
||||||
public class NumberReducer implements Reducer<NumberInterface> {
|
public class NumberReducer implements Reducer<NumberInterface> {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The plugin manager from which to draw the functions.
|
||||||
|
*/
|
||||||
private PluginManager manager;
|
private PluginManager manager;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a new number reducer with the given plugin manager.
|
||||||
|
* @param manager the plugin manager.
|
||||||
|
*/
|
||||||
public NumberReducer(PluginManager manager){
|
public NumberReducer(PluginManager manager){
|
||||||
this.manager = manager;
|
this.manager = manager;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user