| 1234567891011121314151617181920212223242526272829303132333435363738 |
- //AssignStmt:top//
- //AssignStmt:import//
- import java.util.*;
- // <stmt>AssignStmt ::= <VAR> <ASSIGN> <exp> <SEMI>
- public class AssignStmt extends Stmt /*AssignStmt:class*/ {
- public static final String $className = "AssignStmt";
- public static final String $ruleString =
- "<stmt>AssignStmt ::= <VAR> <ASSIGN> <exp> <SEMI>";
- public Token var;
- public Token assign;
- public Exp exp;
- public Token semi;
- public AssignStmt(Token var, Token assign, Exp exp, Token semi) {
- //AssignStmt:init//
- this.var = var;
- this.assign = assign;
- this.exp = exp;
- this.semi = semi;
- }
- public static AssignStmt parse(Scan scn$, Trace trace$) {
- if (trace$ != null)
- trace$ = trace$.nonterm("<stmt>AssignStmt", scn$.lno);
- Token var = scn$.match(Token.Match.VAR, trace$);
- Token assign = scn$.match(Token.Match.ASSIGN, trace$);
- Exp exp = Exp.parse(scn$, trace$);
- Token semi = scn$.match(Token.Match.SEMI, trace$);
- return new AssignStmt(var, assign, exp, semi);
- }
- public void execute() { Program.hshmap.put(var.toString(), exp.eval()); }
- //AssignStmt//
- }
|