Пример #1
0
 @Override
 public String visitExpr(@NotNull DiceGameParser.ExprContext ctx) {
   if (ctx.OP != null) {
     return ctx.A.accept(this) + ctx.OP.getText() + ctx.B.accept(this);
   }
   if (ctx.INTEGER != null) {
     return ctx.INTEGER.getText();
   }
   if (ctx.VAR != null) {
     return ctx.VAR.accept(this);
   }
   if (ctx.E != null) {
     return '(' + ctx.E.accept(this) + ')';
   }
   if (ctx.SUM != null) {
     return "sum([dice.value for dice in " + ctx.DOs.accept(this) + "])";
   }
   if (ctx.COUNT != null) {
     if (ctx.DOs != null) {
       return "len(" + ctx.DOs.accept(this) + ")";
     }
     if (ctx.POs != null) {
       return "len(" + ctx.POs.accept(this) + ")";
     }
   }
   return "visitExpr";
 }
Пример #2
0
  @Override
  public String visitCondition(@NotNull DiceGameParser.ConditionContext ctx) {
    if (ctx.EQ != null) {
      return (ctx.A.accept(this) + " == " + ctx.B.accept(this));
    }
    if (ctx.LT != null) {
      return (ctx.A.accept(this) + " < " + ctx.B.accept(this));
    }
    if (ctx.GT != null) {
      return (ctx.A.accept(this) + " > " + ctx.B.accept(this));
    }
    if (ctx.LE != null) {
      return (ctx.A.accept(this) + " <= " + ctx.B.accept(this));
    }
    if (ctx.GE != null) {
      return (ctx.A.accept(this) + " >= " + ctx.B.accept(this));
    }
    if (ctx.AND != null) {
      return (ctx.C.accept(this) + " and " + ctx.D.accept(this));
    }
    if (ctx.OR != null) {
      return (ctx.C.accept(this) + " or " + ctx.D.accept(this));
    }
    if (ctx.NOT != null) {
      return "not " + ctx.C.accept(this);
    }
    if (ctx.TRUE != null) {
      return "true";
    }
    if (ctx.FALSE != null) {
      return "false";
    }
    //		if (ctx.PLAYER != null) {
    //			return ctx.PLAYER.accept(this) + ".isActive()";
    //		}

    return "visitCondition";
  }