diff --git a/src/smc/generators/CCodeGenerator.java b/src/smc/generators/CCodeGenerator.java index ab1ed71..d7eb275 100644 --- a/src/smc/generators/CCodeGenerator.java +++ b/src/smc/generators/CCodeGenerator.java @@ -27,9 +27,14 @@ public void writeFiles() throws IOException { for (CNestedSwitchCaseImplementer.Error error : implementer.getErrors()) System.out.println("Implementation error: " + error.name()); } else { - String fileName = optimizedStateMachine.header.fsm.toLowerCase(); + String fileName = toLowerCamelCase(optimizedStateMachine.header.fsm); Files.write(getOutputPath(fileName + ".h"), implementer.getFsmHeader().getBytes()); Files.write(getOutputPath(fileName + ".c"), implementer.getFsmImplementation().getBytes()); } } + + static private String toLowerCamelCase(String s) { + if (s.length() < 2) return s.toLowerCase(); + return s.substring(0, 1).toLowerCase() + s.substring(1); + } } diff --git a/src/smc/implementers/CNestedSwitchCaseImplementer.java b/src/smc/implementers/CNestedSwitchCaseImplementer.java index 92cfc41..80041b2 100644 --- a/src/smc/implementers/CNestedSwitchCaseImplementer.java +++ b/src/smc/implementers/CNestedSwitchCaseImplementer.java @@ -80,8 +80,8 @@ public void visit(FSMClassNode fsmClassNode) { fsmName = fsmClassNode.className; fsmImplementation += "#include \n"; - fsmImplementation += String.format("#include \"%s.h\"\n", actionsName); - fsmImplementation += String.format("#include \"%s.h\"\n\n", fsmName); + fsmImplementation += String.format("#include \"%s.h\"\n", toLowerCamelCase(actionsName)); + fsmImplementation += String.format("#include \"%s.h\"\n\n", toLowerCamelCase(fsmName)); fsmClassNode.eventEnum.accept(this); fsmClassNode.stateEnum.accept(this); @@ -142,4 +142,9 @@ public List getErrors() { } public enum Error {NO_ACTION} + + static private String toLowerCamelCase(String s) { + if (s.length() < 2) return s.toLowerCase(); + return s.substring(0, 1).toLowerCase() + s.substring(1); + } }