Browse Source

Use C-style struct and enum definitions

Why do this? Because it now means structs and enums are C compatible,
which is a better place to be than requiring C++.
macOS
Macoy Madson 2 years ago
parent
commit
15a46f24f6
  1. 3
      runtime/CHelpers.cake
  2. 4
      src/Generators.cpp

3
runtime/CHelpers.cake

@ -162,7 +162,7 @@
(var output-dest (& (<> std::vector StringOutput))
(? is-global (field output header) (field output source)))
(addStringOutput output-dest "enum" StringOutMod_SpaceAfter name)
(addStringOutput output-dest "typedef enum" StringOutMod_SpaceAfter name)
(addStringOutput output-dest (path name > contents) StringOutMod_ConvertTypeName name)
(addLangTokenOutput output-dest StringOutMod_OpenBlock name)
@ -179,6 +179,7 @@
(addLangTokenOutput output-dest StringOutMod_NewlineAfter name)
(addLangTokenOutput output-dest StringOutMod_CloseBlock name)
(addStringOutput output-dest (path name > contents) StringOutMod_ConvertTypeName name)
(addLangTokenOutput output-dest StringOutMod_EndStatement name)
(return true))

4
src/Generators.cpp

@ -1980,7 +1980,7 @@ bool DefStructGenerator(EvaluatorEnvironment& environment, const EvaluatorContex
std::vector<StringOutput>& outputDest = isGlobal ? output.header : output.source;
addStringOutput(outputDest, "struct", StringOutMod_SpaceAfter, &tokens[startTokenIndex]);
addStringOutput(outputDest, "typedef struct", StringOutMod_SpaceAfter, &tokens[startTokenIndex]);
addStringOutput(outputDest, tokens[nameIndex].contents, StringOutMod_ConvertTypeName,
&tokens[nameIndex]);
@ -2050,6 +2050,8 @@ bool DefStructGenerator(EvaluatorEnvironment& environment, const EvaluatorContex
}
addLangTokenOutput(outputDest, StringOutMod_CloseBlock, &tokens[endInvocationIndex]);
addStringOutput(outputDest, tokens[nameIndex].contents, StringOutMod_ConvertTypeName,
&tokens[nameIndex]);
addLangTokenOutput(outputDest, StringOutMod_EndStatement, &tokens[endInvocationIndex]);
return true;

Loading…
Cancel
Save