From 06daf847bca5348464649378cd51f974bce5e118 Mon Sep 17 00:00:00 2001 From: Glenn Lewis <6598971+gmlewis@users.noreply.github.com> Date: Tue, 8 Dec 2020 13:09:13 -0500 Subject: [PATCH] Fix file capitalization for C generator --- src/smc/generators/CCodeGenerator.java | 7 ++++++- src/smc/implementers/CNestedSwitchCaseImplementer.java | 9 +++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) 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); + } }