public class LineNumberingNodeFactory extends NodeFactory
setCurrentPosition(int,int)
is used to set the position before calling one of the
buildConstantNode(Object value)
methods.
This stores the line and column numbers in the created node using the
Node.setHook(Node.HookKey,Object)
method.
The getLineNumber(Node)
and getColumn(Node)
class methods can be used to retrieve
this information from a given node.
By convention, numbering starts from line 1 column 1.LineNumberingShuntingYard
,
Serialized FormModifier and Type | Class and Description |
---|---|
static class |
LineNumberingNodeFactory.Numbering |
ev, j, vt
Constructor and Description |
---|
LineNumberingNodeFactory()
Default constructor which decorates a NodeFactory.
|
LineNumberingNodeFactory(NodeFactory root)
Decorating constructor
|
Modifier and Type | Method and Description |
---|---|
ASTConstant |
buildConstantNode(ASTConstant node)
Create an ASTConstant with same value as argument
|
ASTConstant |
buildConstantNode(java.lang.Object value)
Creates an ASTConstant node with specified value.
|
ASTConstant |
buildConstantNode(Operator op,
Node... children)
Creates a ASTConstant whose value of applying the operator to its arguments.
|
ASTConstant |
buildConstantNode(PostfixMathCommandI pfmc,
Node... children)
Creates a constant node whose result is the given function applied to the children.
|
ASTFunNode |
buildFunctionNode(ASTFunNode node,
Node... arguments)
Builds a function with n arguments and same fun as specified in arguments.
|
ASTFunNode |
buildFunctionNode(java.lang.String name,
PostfixMathCommandI pfmc,
Node... arguments)
Builds a function with n arguments.
|
ASTOpNode |
buildOperatorNode(Operator op,
Node... arguments)
Builds a operator node with n arguments
This method should be sub-classed.
|
ASTOpNode |
buildUnfinishedOperatorNode(Operator op)
An unfinished node.
|
ASTVarNode |
buildVariableNode(ASTVarNode node)
creates a new ASTVarNode with the same name as argument.
|
ASTVarNode |
buildVariableNode(java.lang.String name)
Build a variable node when just the name is known.
|
ASTVarNode |
buildVariableNode(Variable var)
creates a new ASTVarNode with a given variable.
|
ASTVarNode |
buildVariableNodeCheckUndeclared(java.lang.String name)
Build a variable node checking for the undeclared status.
|
static int |
getColumn(Node node)
Convenience method to get the column number of a node.
|
int |
getCurrentColumn()
Gets the current column used when a node is created.
|
int |
getCurrentLine()
Gets the current line used when a node is created.
|
JepComponent |
getLightWeightInstance()
Gets a light-weight instance suitable for using in multiple threads.
|
static int |
getLineNumber(Node node)
Convenience method to get the line number of a node.
|
NodeFactory |
getRoot() |
void |
init(Jep jep)
Initialize the component.
|
void |
setCurrentPosition(int line,
int col)
Sets the current position which will be used the next time a node is created.
|
static void |
setPosition(Node node,
int line,
int col)
Convenience method to set the line and column numbers for a node.
|
copyChildren
public LineNumberingNodeFactory(NodeFactory root)
root
- public LineNumberingNodeFactory()
public static int getLineNumber(Node node)
node
- public static int getColumn(Node node)
node
- public static void setPosition(Node node, int line, int col)
node
- who's position will be setline
- line numbercol
- column numberpublic void setCurrentPosition(int line, int col)
line
- col
- public int getCurrentLine()
public int getCurrentColumn()
public ASTConstant buildConstantNode(ASTConstant node) throws ParseException
NodeFactory
buildConstantNode
in class NodeFactory
ParseException
public ASTConstant buildConstantNode(java.lang.Object value) throws ParseException
NodeFactory
buildConstantNode
in class NodeFactory
ParseException
public ASTConstant buildConstantNode(Operator op, Node... children) throws ParseException
NodeFactory
buildConstantNode
in class NodeFactory
ParseException
public ASTConstant buildConstantNode(PostfixMathCommandI pfmc, Node... children) throws ParseException
NodeFactory
buildConstantNode
in class NodeFactory
pfmc
- the function to applychildren
- the arguments to the function, each argument should be a constant node.ParseException
public ASTFunNode buildFunctionNode(ASTFunNode node, Node... arguments) throws ParseException
NodeFactory
buildFunctionNode
in class NodeFactory
node
- the properties (name and pfmc) of this node will be copied.arguments
- the arguments to the function.ParseException
public ASTFunNode buildFunctionNode(java.lang.String name, PostfixMathCommandI pfmc, Node... arguments) throws ParseException
NodeFactory
buildFunctionNode
in class NodeFactory
name
- of function.pfmc
- PostfixMathCommand for function.arguments
- the arguments to the function.ParseException
public ASTOpNode buildOperatorNode(Operator op, Node... arguments) throws ParseException
NodeFactory
buildOperatorNode
in class NodeFactory
op
- the operator to usearguments
- the arguments to the function.ParseException
public ASTOpNode buildUnfinishedOperatorNode(Operator op)
NodeFactory
buildUnfinishedOperatorNode
in class NodeFactory
public ASTVarNode buildVariableNode(ASTVarNode node) throws ParseException
NodeFactory
buildVariableNode
in class NodeFactory
ParseException
public ASTVarNode buildVariableNode(java.lang.String name) throws ParseException
NodeFactory
buildVariableNode
in class NodeFactory
name
- the name of the variableParseException
public ASTVarNode buildVariableNode(Variable var) throws ParseException
NodeFactory
buildVariableNode
in class NodeFactory
ParseException
public ASTVarNode buildVariableNodeCheckUndeclared(java.lang.String name) throws ParseException
NodeFactory
buildVariableNodeCheckUndeclared
in class NodeFactory
name
- name of the variableParseException
- if undeclared variables are not allowed and the variable does not existpublic JepComponent getLightWeightInstance()
JepComponent
getLightWeightInstance
in interface JepComponent
getLightWeightInstance
in class NodeFactory
public void init(Jep jep)
JepComponent
init
in interface JepComponent
init
in class NodeFactory
jep
- the current Jep instancepublic NodeFactory getRoot()
Copyright © 2018 Singular Systems http://www.singularsys.com/jep