JAVA的CMM编译器(词法+语法+语义+输出结果)
源代码在线查看: variable.java
/* * Variable.java * * To change this template, choose Tools | Templates * and open the template in the editor. */ package cmm; /** * * @author lx */ public class Variable{ /* 表中的记录型数据 */ private String name; VarType type; private double value_r; private int value_i; private boolean isArray; private boolean flag = false; //为true时表示设置的值为double类型 /** * Create a new instance of Variable * @param n 名字 * @param t 类型 * @param v real类型值 * @param i 是否为数组 */ public Variable(String n, VarType t, double v, boolean i){ name = n; type = t; value_r= v; isArray = i; flag = true; } /** * Create a new instance of Variable * * @param n 名字 * @param t 类型 * @param v int类型值 * @param i 是否为数组 */ public Variable(String n, VarType t, int v, boolean i){ name = n; type = t; value_i = v; isArray = i; } // 设置name 的值 public void setName(String pName){ name = pName; } // 获取当前实例name的值 public String getName(){ return name; } // 设置type的值 public void setType(VarType pType){ type = pType; } // 获取当前实例 type的值 public VarType getType(){ return type; } // 设置int类型value的值 value_i public void setValue(int pValue){ value_i = pValue; } // 设置real类型value的值 value_r public void setValue(double pValue){ value_r = pValue; flag = true; } // 获取当前实例value 的值 public int getValue(){ return value_i; } // 获取当前实例value的值 public double getValue_r(){ return value_r; } // 设置当前isArray的值 public void setIsArray(boolean pIsArray){ isArray = pIsArray; } // 获取当前isArray的值 public boolean getIsArray(){ return isArray; } // 获取flag的值 public boolean getFlag(){ return flag; } }