Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package cu.cs.cpsc2150.project1;
- public class VariableExpression extends SymbolTable {
- String var, operator;
- int num;
- public String getVar() {
- return var;
- }
- public void setVar(String var) {
- this.var = var;
- }
- public int getNum() {
- return num;
- }
- public void setNum(int num) {
- this.num = num;
- }
- public String getOperator() {
- return operator;
- }
- public void setOperator(String operator) {
- this.operator = operator;
- }
- public void readVariable(String input){
- if (input.indexOf(":=") > -1){
- // Assign a value to key in Symbol table
- String[] elems = input.split("\\s+");
- setVar(elems[0]);
- setNum(Integer.parseInt(elems[2]));
- SymbolTable.insert(getVar(), getNum());
- }else if(input.length() == 1){
- // check if key has a value
- // if so return
- //else error
- Integer value = SymbolTable.getValue(input);
- if(value != null){
- System.out.println(input + " = " + value);
- }else{
- System.out.println("Variable " + input + "has no value assignment");
- }
- }else{
- String[] elems = input.split("\\s+");
- Integer valueOfVar1 = SymbolTable.getValue(elems[0]);
- Integer valueOfVar2 = SymbolTable.getValue(elems[2]);
- setOperator(elems[1]);
- if(elems[0].matches(".*[a-zA-Z]+.*")){
- if(valueOfVar1 != null){
- valueOfVar1 = SymbolTable.getValue(elems[0]);
- }else{
- System.out.println("Variable " + input + "has no value assignment");
- }
- }else{
- valueOfVar1 = Integer.parseInt(elems[0]);
- }
- if(elems[2].matches(".*[a-zA-Z]+.*")){
- if(valueOfVar2 != null){
- valueOfVar2 = SymbolTable.getValue(elems[2]);
- }else{
- System.out.println("Variable " + input + "has no value assignment");
- }
- }else{
- valueOfVar2 = Integer.parseInt(elems[2]);
- }
- double ans = BinaryExpression.calculate(valueOfVar1.intValue(),valueOfVar2.intValue(), getOperator());
- System.out.println(input + " = " + ans);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement