Разбор структуры c к интерфейсу Java

Существуют ли какие-либо инструменты, которые я могу использовать для автоматического разбора структуры c на интерфейс Java? пример будет:

typedef struct C {
    int x;
    byte y;
}C;

//Java
interface C {
    public int x();
    public byte y();
    public void x(int val);
    public void y(byte val);
}

2 ответа

Да, попробуйте заменить регулярное выражение. В Java, например:

String javaCode = cCode.replaceAll("(\\w+) +(\\w+);", "public void $1 $2();\n    public $1 x($1 $2);");

Демо здесь: http://regexr.com/?388h8

Теперь, чтобы изменить синтаксис самого определения структуры, требуются минимальные усилия.

Javolution - это библиотека, которая обеспечивает такую ​​функциональность простым способом, пример взят из документации:

public enum Gender { MALE, FEMALE };
public static class Date extends Struct {
  public final Unsigned16 year = new Unsigned16();
  public final Unsigned8 month = new Unsigned8();
  public final Unsigned8 day   = new Unsigned8();
}
public static class Student extends Struct {
  public final Enum32<Gender>       gender = new Enum32<Gender>(Gender.values());
  public final UTF8String           name   = new UTF8String(64);
  public final Date                 birth  = inner(new Date());
  public final Float32[]            grades = array(new Float32[10]);
  public final Reference32<Student> next   =  new Reference32<Student>();
}
Другие вопросы по тегам