@Override public Object visit(ASTidentifier node, Object data) { builder .append(2, "k_") .append(GenerationUtils.asCPPToken(node.jjtGetFirstToken().toString())); return data; }
@Override public Object visit(ASTNamedNumber node, Object data) { wasSignedNumber = false; node.childrenAccept(this, data); if (!wasSignedNumber) { builder.append(",").newLine(); } return data; }
@Override public Object visit(ASTEnumeratedType node, Object data) { // write value type builder.newLine(); builder.append(1, "enum EnumeratedValue_Type").newLine(); builder.append(1, "{").newLine(); // write constants VisitorUtils.visitChildsAndAccept(builder, node, new EnumConstantsDeclaration()); builder.append(1, "};").newLine(); // write sequence value typedef builder.newLine(); builder.append(1, "typedef EnumeratedValue_Type ValueType;").newLine(); builder.newLine(); builder .append(1, "void read(ASN1ValueReader& reader, ") .append("ValueType") .append("& value) const") .newLine(); builder.append(1, "{").newLine(); builder.append(2, context.getBaseTypeName()).append("::ValueType v;").newLine(); builder.append(2, context.getBaseTypeName()).append("::read(reader, v);").newLine(); builder.append(2, "value = static_cast<ValueType>(v);").newLine(); builder.append(1, "}").newLine(); builder.newLine(); builder .append(1, "void write(ASN1ValueWriter& writer, const ") .append("ValueType") .append("& value) const") .newLine(); builder.append(1, "{").newLine(); builder.append(2, context.getBaseTypeName()).append("::write(writer, value);").newLine(); builder.append(1, "}").newLine(); return data; }
@Override public String getContent() { return builder.toString(); }
@Override public Object visit(ASTSignedNumber node, Object data) { builder.append(" = ").append(node.getNumber()).append(",").newLine(); wasSignedNumber = true; return data; }
@Override public boolean hasValuableContent() { return !builder.toString().isEmpty(); }