Multrest.java 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. //Multrest:top//
  2. //Multrest:import//
  3. import java.util.*;
  4. // <multrest> **= <MOP> <value>
  5. public class Multrest /*Multrest:class*/ {
  6. public static final String $className = "Multrest";
  7. public static final String $ruleString =
  8. "<multrest> **= <MOP> <value>";
  9. public List<Token> mopList;
  10. public List<Value> valueList;
  11. public Multrest(List<Token> mopList, List<Value> valueList) {
  12. //Multrest:init//
  13. this.mopList = mopList;
  14. this.valueList = valueList;
  15. }
  16. public static Multrest parse(Scan scn$, Trace trace$) {
  17. if (trace$ != null)
  18. trace$ = trace$.nonterm("<multrest>", scn$.lno);
  19. List<Token> mopList = new ArrayList<Token>();
  20. List<Value> valueList = new ArrayList<Value>();
  21. while (true) {
  22. Token t$ = scn$.cur();
  23. Token.Match match$ = t$.match;
  24. switch(match$) {
  25. case MOP:
  26. mopList.add(scn$.match(Token.Match.MOP, trace$));
  27. valueList.add(Value.parse(scn$, trace$));
  28. continue;
  29. default:
  30. return new Multrest(mopList, valueList);
  31. }
  32. }
  33. }
  34. //Multrest//
  35. }