public void listNames(SourceWriter w) { for(int i = 0; i < inits.size(); i++) { w.append("\""); inits.get(i).appendName(w); w.append("\""); if (i < inits.size() - 1) { w.append(", "); } } }
public void writeFields(SourceWriter w) { for (BinaryExpression init : inits) { init.writeDeclaration(w); } }
@Override public void write(SourceWriter writer) { for (BinaryExpression init : inits) { init.writeDefaultValue(writer); } }
private BinaryExpression offsetLiteral(String pos, double offsetPos) throws NodeException { return new BinaryExpression( PLUS, FunctionCall.of(pos), new DoubleLiteral(String.valueOf(offsetPos))); } }
public void writeDeclaration(SourceWriter w) { if (left instanceof Variable) { String type = getJavaType(); String initialValue = getInitialValue(); w.indent() .append(type) .append(" ") .append(left) .append(" = ") .append(initialValue) .append(";") .newLine(); } }
public void write(SourceWriter w) { if (declarationNeeded && left instanceof Variable) { String type = getJavaType(); w.append(type).append(" "); } String leftCode = w.writeToString(left); String rightCode = w.writeToString(right); w.append(String.format(op.getFormat(), leftCode, rightCode)); }
public BinaryExpression(int opCode, Expression left, Expression right, boolean declarationNeeded) throws NodeException { super(getReturnType(left, right)); this.op = Operator.get(opCode); if (op == Operator.UNKNOWN) { throw new NodeException(Errors.INVALID_BINARY_EXPRESSION); } this.left = left.forceDouble(); this.right = right.forceDouble(); this.declarationNeeded = declarationNeeded; }
@Override public void exitPowExpr(PowExprContext ctx) { Expression a = getAsType(ctx.expression(0), Expression.class); Expression b = getAsType(ctx.expression(1), Expression.class); try { set(ctx, new BinaryExpression(JiffleParser.POW, a, b)); } catch (NodeException ex) { throw new InternalCompilerException(); } }
public void writeDeclaration(SourceWriter w) { if (left instanceof Variable) { String type = getJavaType(); String initialValue = getInitialValue(); w.indent() .append(type) .append(" ") .append(left) .append(" = ") .append(initialValue) .append(";") .newLine(); } }
public void write(SourceWriter w) { if (declarationNeeded && left instanceof Variable) { String type = getJavaType(); w.append(type).append(" "); } String leftCode = w.writeToString(left); String rightCode = w.writeToString(right); w.append(String.format(op.getFormat(), leftCode, rightCode)); }
public BinaryExpression(int opCode, Expression left, Expression right, boolean declarationNeeded) throws NodeException { super(getReturnType(left, right)); this.op = Operator.get(opCode); if (op == Operator.UNKNOWN) { throw new NodeException(Errors.INVALID_BINARY_EXPRESSION); } this.left = left.forceDouble(); this.right = right.forceDouble(); this.declarationNeeded = declarationNeeded; }
@Override public void exitPowExpr(PowExprContext ctx) { Expression a = getAsType(ctx.expression(0), Expression.class); Expression b = getAsType(ctx.expression(1), Expression.class); try { set(ctx, new BinaryExpression(JiffleParser.POW, a, b)); } catch (NodeException ex) { throw new InternalCompilerException(); } }
public void writeFields(SourceWriter w) { for (BinaryExpression init : inits) { init.writeDeclaration(w); } }
public void listNames(SourceWriter w) { for(int i = 0; i < inits.size(); i++) { w.append("\""); inits.get(i).appendName(w); w.append("\""); if (i < inits.size() - 1) { w.append(", "); } } }
@Override public void write(SourceWriter writer) { for (BinaryExpression init : inits) { init.writeDefaultValue(writer); } }
@Override public void exitTimesDivModExpr(TimesDivModExprContext ctx) { Expression left = getAsType(ctx.expression(0), Expression.class); Expression right = getAsType(ctx.expression(1), Expression.class); try { set(ctx, new BinaryExpression(ctx.op.getType(), left, right)); } catch (NodeException ex) { throw new InternalCompilerException(); } }
@Override public void exitPlusMinusExpr(PlusMinusExprContext ctx) { Expression left = getAsType(ctx.expression(0), Expression.class); Expression right = getAsType(ctx.expression(1), Expression.class); try { set(ctx, new BinaryExpression(ctx.op.getType(), left, right)); } catch (NodeException ex) { throw new InternalCompilerException(); } }
@Override public void exitTimesDivModExpr(TimesDivModExprContext ctx) { Expression left = getAsType(ctx.expression(0), Expression.class); Expression right = getAsType(ctx.expression(1), Expression.class); try { set(ctx, new BinaryExpression(ctx.op.getType(), left, right)); } catch (NodeException ex) { throw new InternalCompilerException(); } }
@Override public void exitPlusMinusExpr(PlusMinusExprContext ctx) { Expression left = getAsType(ctx.expression(0), Expression.class); Expression right = getAsType(ctx.expression(1), Expression.class); try { set(ctx, new BinaryExpression(ctx.op.getType(), left, right)); } catch (NodeException ex) { throw new InternalCompilerException(); } }
private BinaryExpression offsetVariable(String pos, String offsetVar) throws NodeException { return new BinaryExpression( PLUS, FunctionCall.of(pos), new Variable(offsetVar, JiffleType.D)); }