@Override public void visit(QualificationExpr expr) { if (expr.getQualified() != null) { expr.getQualified().acceptVisitor(this); } }
@Override public void visit(QualificationExpr expr) { try { output.writeByte(expr.getQualified() != null ? 17 : 18); if (expr.getQualified() != null) { writeExpr(expr.getQualified()); } output.writeInt(symbolTable.lookup(expr.getField().getClassName())); output.writeInt(symbolTable.lookup(expr.getField().getFieldName())); } catch (IOException e) { throw new IOExceptionWrapper(e); } }
@Override public void visit(QualificationExpr expr) { pushLocation(expr.getLocation()); try { if (expr.getQualified() != null) { expr.getQualified().acceptVisitor(this); Expr qualified = resultExpr; expr.setQualified(qualified); } resultExpr = expr; } finally { popLocation(); } }
@Override public void visit(QualificationExpr expr) { if (expr.getQualified() != null) { writer.print("FIELD("); expr.getQualified().acceptVisitor(this); writer.print(", ").print(names.forClass(expr.getField().getClassName()) + ", " + names.forMemberField(expr.getField()) + ")"); } else { writer.print(names.forStaticField(expr.getField())); } }
@Override public void visit(QualificationExpr expr) { try { if (expr.getLocation() != null) { pushLocation(expr.getLocation()); } precedence = Precedence.MEMBER_ACCESS; if (expr.getQualified() != null) { expr.getQualified().acceptVisitor(this); writer.append('.').appendField(expr.getField()); } else { writer.appendStaticField(expr.getField()); } if (expr.getLocation() != null) { popLocation(); } } catch (IOException e) { throw new RenderingException("IO error occurred", e); } }
@Override public void visit(QualificationExpr expr) { WasmExpression address = getAddress(expr.getQualified(), expr.getField(), expr.getLocation()); resultExpr.setOffset(getOffset(expr.getQualified(), expr.getField())); result = (WasmExpression) resultExpr;
@Override public void visit(AssignmentStatement statement) { Expr left = statement.getLeftValue(); if (left == null) { accept(statement.getRightValue()); result.acceptVisitor(typeInference); if (typeInference.getResult() != null) { result = new WasmDrop(result); result.setLocation(statement.getLocation()); } } else if (left instanceof VariableExpr) { VariableExpr varExpr = (VariableExpr) left; WasmLocal local = function.getLocalVariables().get(varExpr.getIndex() - firstVariable); accept(statement.getRightValue()); result = new WasmSetLocal(local, result); result.setLocation(statement.getLocation()); } else if (left instanceof QualificationExpr) { QualificationExpr lhs = (QualificationExpr) left; storeField(lhs.getQualified(), lhs.getField(), statement.getRightValue(), statement.getLocation()); } else if (left instanceof SubscriptExpr) { SubscriptExpr lhs = (SubscriptExpr) left; storeArrayItem(lhs, statement.getRightValue()); } else { throw new UnsupportedOperationException("This expression is not supported yet"); } }
@Override public void visit(QualificationExpr expr) { if (expr.getQualified() != null) { expr.getQualified().acceptVisitor(this); } }
@Override public void visit(QualificationExpr expr) { try { output.writeByte(expr.getQualified() != null ? 17 : 18); if (expr.getQualified() != null) { writeExpr(expr.getQualified()); } output.writeInt(symbolTable.lookup(expr.getField().getClassName())); output.writeInt(symbolTable.lookup(expr.getField().getFieldName())); } catch (IOException e) { throw new IOExceptionWrapper(e); } }
@Override public void visit(QualificationExpr expr) { pushLocation(expr.getLocation()); try { if (expr.getQualified() != null) { expr.getQualified().acceptVisitor(this); Expr qualified = resultExpr; expr.setQualified(qualified); } resultExpr = expr; } finally { popLocation(); } }
@Override public void visit(QualificationExpr expr) { try { if (expr.getLocation() != null) { pushLocation(expr.getLocation()); } precedence = Precedence.MEMBER_ACCESS; if (expr.getQualified() != null) { expr.getQualified().acceptVisitor(this); writer.append('.').appendField(expr.getField()); } else { writer.appendStaticField(expr.getField()); } if (expr.getLocation() != null) { popLocation(); } } catch (IOException e) { throw new RenderingException("IO error occurred", e); } }
@Override public void visit(QualificationExpr expr) { WasmExpression address = getAddress(expr.getQualified(), expr.getField(), expr.getLocation()); resultExpr.setOffset(getOffset(expr.getQualified(), expr.getField())); result = (WasmExpression) resultExpr;
@Override public void visit(AssignmentStatement statement) { Expr left = statement.getLeftValue(); if (left == null) { accept(statement.getRightValue()); result.acceptVisitor(typeInference); if (typeInference.getResult() != null) { result = new WasmDrop(result); result.setLocation(statement.getLocation()); } } else if (left instanceof VariableExpr) { VariableExpr varExpr = (VariableExpr) left; WasmLocal local = function.getLocalVariables().get(varExpr.getIndex() - firstVariable); accept(statement.getRightValue()); result = new WasmSetLocal(local, result); result.setLocation(statement.getLocation()); } else if (left instanceof QualificationExpr) { QualificationExpr lhs = (QualificationExpr) left; storeField(lhs.getQualified(), lhs.getField(), statement.getRightValue(), statement.getLocation()); } else if (left instanceof SubscriptExpr) { SubscriptExpr lhs = (SubscriptExpr) left; storeArrayItem(lhs, statement.getRightValue()); } else { throw new UnsupportedOperationException("This expression is not supported yet"); } }