more better progress

only:alphax-4chan
This commit is contained in:
rusefi 2023-03-15 23:56:23 -04:00
parent 3b25c864f8
commit 2b969e2fdc
3 changed files with 27 additions and 7 deletions

View File

@ -4,6 +4,7 @@ import com.rusefi.EnumsReader;
import com.rusefi.ReaderState;
import com.rusefi.ReaderStateImpl;
import com.rusefi.VariableRegistry;
import com.rusefi.enum_reader.Value;
import com.rusefi.newparse.ParseState;
import org.junit.Test;
@ -101,7 +102,7 @@ public class PinoutLogicIntegratedTest {
state.getEnumsReader().read(new StringReader("enum class Gpio : uint16_t {\n" +
"Unassigned = 0,\n" +
"Invalid = 0x01,\n" +
"E11 = 2,\n" +
"E11 = 0x0B,\n" +
"};"));
ParseState definitionState = new ParseState(state.getEnumsReader());
@ -112,4 +113,14 @@ public class PinoutLogicIntegratedTest {
assertEquals(expected, testWriter.getBuffer().toString());
}
@Test
public void parseInt() {
assertEquals(1, Value.parseInt("1"));
assertEquals(10, Value.parseInt("0x0a"));
assertEquals(10, Value.parseInt("0xa"));
assertEquals(10, Value.parseInt("0Xa"));
assertEquals(11, Value.parseInt("0x0B"));
}
}

Binary file not shown.

View File

@ -29,9 +29,14 @@ public class Value implements Comparable<Value> {
}
public int getIntValue() {
if (value.toLowerCase().startsWith("0x"))
return Integer.parseInt(value.substring(2), 16);
return Integer.parseInt(value);
return parseInt(value);
}
public static int parseInt(String value) {
String trimmed = value.trim();
if (trimmed.toLowerCase().startsWith("0x"))
return Integer.parseInt(trimmed.substring(2), 16);
return Integer.parseInt(trimmed);
}
@Override
@ -51,9 +56,13 @@ public class Value implements Comparable<Value> {
try {
return getIntValue();
} catch (NumberFormatException e) {
String resolvedValue = registry.get(value);
Objects.requireNonNull(resolvedValue, value);
return Integer.parseInt(resolvedValue);
return handleNotInteger(registry);
}
}
private int handleNotInteger(VariableRegistry registry) {
String resolvedValue = registry.get(value);
Objects.requireNonNull(resolvedValue, value);
return Integer.parseInt(resolvedValue);
}
}