Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import org.antlr.v4.runtime.misc.NotNull;
- import java.sql.SQLOutput;
- import java.util.ArrayList;
- public class Operations extends gBaseVisitor<Integer> {
- OperationData operationData = new OperationData();
- @Override
- public Integer visitInterrupt(gParser.InterruptContext ctx) {
- operationData.getRegisters();
- return super.visitInterrupt(ctx);
- }
- @Override
- public Integer visitStart(gParser.StartContext ctx) {
- visitChildren(ctx);
- return null;
- }
- @Override
- public Integer visitMov(gParser.MovContext ctx) {
- System.out.println(ctx.score.getText());
- System.out.println(ctx.REGISTER());
- // System.out.println(Integer.valueOf(String.valueOf(ctx.right)));
- // operationData.setRegister(ctx.left.toString(),Integer.valueOf(String.valueOf(ctx.right)));
- visitChildren(ctx);
- return null;
- }
- @Override
- public Integer visitNumber(gParser.NumberContext ctx) {
- return Integer.valueOf(ctx.getText());
- }
- @Override
- public Integer visitRegister(gParser.RegisterContext ctx) {
- return operationData.getRegisters().get(ctx.REGISTER());
- }
- @Override
- public Integer visitAdd(gParser.AddContext ctx) {
- return visit(ctx.left) + visit(ctx.right);
- }
- @Override
- public Integer visitMul(gParser.MulContext ctx) {
- return visit(ctx.left) * visit(ctx.right);
- }
- @Override
- public Integer visitSub(gParser.SubContext ctx) {
- return visit(ctx.left) - visit(ctx.right);
- }
- @Override
- public Integer visitXor(gParser.XorContext ctx) {
- String left = String.valueOf(ctx.left.getText());
- String right = String.valueOf(ctx.right.getText());
- if (operationData.getRegisters().get(left) == null && operationData.getRegisters().get(right) == null) {
- operationData.setRegister(right, 0);
- } else {
- }
- return null;
- }
- @Override
- public Integer visitPush(gParser.PushContext ctx) {
- return null;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement