From 23a3f4eef9210e82837f8e38905cb283be1b1b58 Mon Sep 17 00:00:00 2001 From: rusefillc Date: Sat, 23 Oct 2021 23:21:37 -0400 Subject: [PATCH] generate java enum from C enum? generate both C and java from yaml? #2102 --- firmware/gen_enum_to_string.sh | 3 +++ java_tools/enum2string.jar | Bin 92545 -> 92860 bytes .../src/main/java/com/rusefi/ToJavaEnum.java | 5 ++++ .../java/com/rusefi/EnumToStringTest.java | 24 ++++++++++++++++++ 4 files changed, 32 insertions(+) diff --git a/firmware/gen_enum_to_string.sh b/firmware/gen_enum_to_string.sh index 54b8cec9ca..5c8de777f3 100755 --- a/firmware/gen_enum_to_string.sh +++ b/firmware/gen_enum_to_string.sh @@ -10,6 +10,9 @@ java -DSystemOut.name=logs/gen_java_enum -cp ../java_tools/enum2string.jar com.r java -DSystemOut.name=logs/gen_java_enum -cp ../java_tools/enum2string.jar com.rusefi.ToJavaEnum -enumInputFile controllers/sensors/sensor_type.h -outputPath ../java_console/io/src/main/java/com/rusefi/enums [ $? -eq 0 ] || { echo "ERROR generating sensors"; exit 1; } +java -DSystemOut.name=logs/gen_java_enum -cp ../java_tools/enum2string.jar com.rusefi.ToJavaEnum -enumInputFile controllers/algo/engine_types.h -outputPath ../java_console/io/src/main/java/com/rusefi/enums -definition integration/rusefi_config.txt +[ $? -eq 0 ] || { echo "ERROR generating types"; exit 1; } + java -DSystemOut.name=logs/gen_enum_to_string \ -jar ../java_tools/enum2string.jar \ diff --git a/java_tools/enum2string.jar b/java_tools/enum2string.jar index 707a09704bceab352e901cd196b67239bd21f572..11a35b7a90e97b1dcbb45abc377abf7eab5e3fd2 100644 GIT binary patch delta 8144 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 delta 7721 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 diff --git a/java_tools/enum_to_string/src/main/java/com/rusefi/ToJavaEnum.java b/java_tools/enum_to_string/src/main/java/com/rusefi/ToJavaEnum.java index de76983fd2..f7a68a88d8 100644 --- a/java_tools/enum_to_string/src/main/java/com/rusefi/ToJavaEnum.java +++ b/java_tools/enum_to_string/src/main/java/com/rusefi/ToJavaEnum.java @@ -46,8 +46,13 @@ public class ToJavaEnum { List sorted = EnumsReader.getSortedByOrder(registry, enumState.values); + int index = 0; for (Value value : sorted) { + int numericValue = value.getIntValueMaybeResolve(registry); + if (index != numericValue && !value.getName().startsWith("Force_4_bytes_size")) + throw new IllegalStateException(numericValue + " instead of " + index + " in " + value); sb.append("\t" + value.getName() + ",\n"); + index++; } sb.append("}\n"); diff --git a/java_tools/enum_to_string/src/test/java/com/rusefi/EnumToStringTest.java b/java_tools/enum_to_string/src/test/java/com/rusefi/EnumToStringTest.java index b2410b5433..b54fe4dbc8 100644 --- a/java_tools/enum_to_string/src/test/java/com/rusefi/EnumToStringTest.java +++ b/java_tools/enum_to_string/src/test/java/com/rusefi/EnumToStringTest.java @@ -187,6 +187,30 @@ public class EnumToStringTest { "\tGPIO_UNASSIGNED = XXXX,\n" + "}brain_pin_e; // hello"); + VariableRegistry registry = new VariableRegistry(); + registry.readPrependValues(new StringReader("#define XXXX 0")); + + EnumsReader enumsReader = new EnumsReader().read(reader); + for (Map.Entry e : enumsReader.getEnums().entrySet()) { + String java = ToJavaEnum.generate(registry, e.getKey(), e.getValue()); + assertEquals("package com.rusefi.enums;\n" + + "//auto-generated by ToJavaEnum.java\n" + + "\n" + + "\n" + + "\n" + + "public enum brain_pin_e {\n" + + "\tGPIO_UNASSIGNED,\n" + + "}\n", java); + } + } + + @Test(expected = IllegalStateException.class) + public void testWithInputOutOfOrder() throws IOException { + final StringReader reader = new StringReader( + "typedef enum {\n" + + "\tGPIO_UNASSIGNED = XXXX,\n" + + "}brain_pin_e; // hello"); + VariableRegistry registry = new VariableRegistry(); registry.readPrependValues(new StringReader("#define XXXX 12"));