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

View File

@ -43,6 +43,8 @@ public class EnumsReader {
}
SystemOut.println(" EnumsReader: Line " + line);
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) {
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]+))*,?");
}
}