now support hex values!

This commit is contained in:
rusefi 2020-05-14 18:45:49 -04:00
parent 5e7f6bd93c
commit 0f045f3b41
3 changed files with 17 additions and 4 deletions

Binary file not shown.

View File

@ -24,6 +24,9 @@ public class EnumToStringTest {
assertTrue(isKeyValueLine("MIN")); assertTrue(isKeyValueLine("MIN"));
assertTrue(isKeyValueLine("MIN = 2,")); assertTrue(isKeyValueLine("MIN = 2,"));
assertTrue(isKeyValueLine("MIN = -3,")); assertTrue(isKeyValueLine("MIN = -3,"));
assertTrue(isKeyValueLine("MIN = 0x02,"));
assertTrue(isKeyValueLine("MIN = 0xa2,"));
assertTrue(isKeyValueLine("MIN = 0xB2,"));
} }
@Test @Test
@ -33,15 +36,23 @@ public class EnumToStringTest {
"typedef enum {\n" + "typedef enum {\n" +
"\tGPIO_UNASSIGNED = 0,\n" + "\tGPIO_UNASSIGNED = 0,\n" +
"\tGPIO_INVALID = 1,\n" + "\tGPIO_INVALID = 1,\n" +
"\tGPIO_HEX = 0xA1,\n" +
"}brain_pin_e;")); "}brain_pin_e;"));
List<Value> values = new ArrayList<>(EnumsReader.enums.get("brain_pin_e").values()); List<Value> values = new ArrayList<>(EnumsReader.enums.get("brain_pin_e").values());
assertEquals(2, values.size()); assertEquals(3, values.size());
assertEquals("GPIO_INVALID", values.get(0).getName()); Value first = values.get(0);
assertEquals("1", values.get(0).getValue()); assertEquals("GPIO_HEX", first.getName());
assertEquals("0xA1", first.getValue());
Value second = values.get(1);
assertEquals("GPIO_INVALID", second.getName());
assertEquals("1", second.getValue());
assertEquals("const char *getBrain_pin_e(brain_pin_e value){\n" + assertEquals("const char *getBrain_pin_e(brain_pin_e value){\n" +
"switch(value) {\n" + "switch(value) {\n" +
"case GPIO_HEX:\n" +
" return \"GPIO_HEX\";\n" +
"case GPIO_INVALID:\n" + "case GPIO_INVALID:\n" +
" return \"GPIO_INVALID\";\n" + " return \"GPIO_INVALID\";\n" +
"case GPIO_UNASSIGNED:\n" + "case GPIO_UNASSIGNED:\n" +

View File

@ -43,6 +43,8 @@ public class EnumsReader {
} }
SystemOut.println(" EnumsReader: Line " + line); SystemOut.println(" EnumsReader: Line " + line);
currentValues.put(line, new Value(line, value)); currentValues.put(line, new Value(line, value));
} else {
SystemOut.println(" EnumsReader: Skipping Line " + line);
} }
} }
} }
@ -54,6 +56,6 @@ public class EnumsReader {
} }
static boolean isKeyValueLine(String line) { static boolean isKeyValueLine(String line) {
return removeSpaces(line).matches("[a-zA-Z_$][a-zA-Z\\d_$]*[=-a-zA-Z\\d_*]*,?"); return removeSpaces(line).matches("[a-zA-Z_$][a-zA-Z\\d_$]*(=(0x[0-9a-fA-F]+|(-)?[0-9]+))*,?");
} }
} }