VARValue.java 857 B

123456789101112131415161718192021222324252627282930313233
  1. //VARValue:top//
  2. //VARValue:import//
  3. import java.util.*;
  4. // <value>VARValue ::= <VAR>
  5. public class VARValue extends Value /*VARValue:class*/ {
  6. public static final String $className = "VARValue";
  7. public static final String $ruleString =
  8. "<value>VARValue ::= <VAR>";
  9. public Token var;
  10. public VARValue(Token var) {
  11. //VARValue:init//
  12. this.var = var;
  13. }
  14. public static VARValue parse(Scan scn$, Trace trace$) {
  15. if (trace$ != null)
  16. trace$ = trace$.nonterm("<value>VARValue", scn$.lno);
  17. Token var = scn$.match(Token.Match.VAR, trace$);
  18. return new VARValue(var);
  19. }
  20. public int eval() {
  21. if (!Program.hshmap.containsKey(var.toString()))
  22. throw new RuntimeException("Undefined variable: " + var);
  23. return Program.hshmap.get(var.toString());
  24. }
  25. //VARValue//
  26. }