Value.java 658 B

123456789101112131415161718192021222324252627
  1. //Value:top//
  2. //Value:import//
  3. import java.util.*;
  4. public abstract class Value /*Value:class*/ {
  5. public static final String $className = "Value";
  6. public static Value parse(Scan scn$, Trace trace$) {
  7. Token t$ = scn$.cur();
  8. Token.Match match$ = t$.match;
  9. switch(match$) {
  10. case VAR:
  11. return VARValue.parse(scn$,trace$);
  12. case NUM:
  13. return NUMValue.parse(scn$,trace$);
  14. default:
  15. throw new PLCCException(
  16. "Parse error",
  17. "Value cannot begin with " + t$.errString()
  18. );
  19. }
  20. }
  21. abstract public int eval();
  22. //Value//
  23. }