📄 variable.java
字号:
package jmathlib.core.interpreter;
import jmathlib.core.tokens.*;
/**class for binding a variable name to some data*/
public class Variable extends RootObject
{
/**The variable name*/
private String name;
/**Variable data*/
private OperandToken data;
// local or global context
private boolean globalB = false;
/**Default constructor*/
public Variable()
{
super();
name = "";
data = null;
}
/**constructor containing a variable name*/
public Variable(String _name)
{
super();
name = _name;
data = null;
}
/**constructor containing the variables name and data*/
public Variable(String _name, OperandToken _data)
{
super();
name = _name;
data = _data;
//if(_data != null)
//{
// OperandToken subTree = null;
// //if the item is an Expression node then just set the data value
// //without creating a new node
// if(_data instanceof Expression)
// subTree = ((Expression)_data);
// else if(_data instanceof OperandToken)
// subTree = ((OperandToken)_data);
//
// data = subTree;
//}
}
/**Assign a new value to the variable*/
//public OperandToken assign(Token _data)
public OperandToken assign(OperandToken _data)
{
if (_data!=null)
ErrorLogger.debugLine("Variable assign "+_data.toString());
else
ErrorLogger.debugLine("Variable assign NULL");
data = _data;
return data;
}
/**implement the equals operator to find a variable with the correct name
if _data is an instance of Variable then it compares the name of _data to the variable otherwise it calls the superclasses version*/
public boolean equals(Object _data)
{
//ErrorLogger.debugLine("Variable equals "+_data.toString());
boolean equal;
//if(_data instanceof VariableToken)
// equal = (this.name.toUpperCase().equals(((VariableToken)_data).getName().toUpperCase()));
//if(_data instanceof Variable)
// equal = (this.name.toUpperCase().equals(((Variable)_data).getName().toUpperCase()));
//else
// equal = super.equals(_data);
if(_data instanceof Variable)
equal = this.name.equalsIgnoreCase(((Variable)_data).getName());
else
equal = super.equals(_data);
return equal;
}
/**Converts the variable to a string.*/
public String toString()
{
if(data == null)
return null;
else
return data.toString();
}
/**Converts the variable to a string.*/
public String toString(String[] operands)
{
return toString();
}
/**Returns the variables name*/
public String getName()
{
return name;
}
/**Returns the variables data*/
public OperandToken getData()
{
return data;
}
/**
*
* @return
*/
public boolean isGlobal()
{
return globalB;
}
/**
*
* @param globalB
*/
public void setGlobal(boolean globalB)
{
this.globalB = globalB;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -