Stmtlist.java 1.0 KB

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