The Thrift compiler is producing invalid syntax for the Erlang equivalent of 
structs: -record()
The names must start with a lower-case character in Erlang to be valid, and 
convention is to make them all lower-case. The patch below lower cases them.

Eg:
BEFORE: -record(myStruct, {First, Second}).  
AFTER:  -record(myStruct, {first, second}).

This is based off svn:
URL: http://svn.apache.org/repos/asf/incubator/thrift/trunk
Repository Root: http://svn.apache.org/repos/asf
Repository UUID: 13f79535-47bb-0310-9956-ffa450edef68
Revision: 734105

Regards,
RJ



Patch:


Index: compiler/cpp/src/generate/t_erl_generator.cc
===================================================================
--- compiler/cpp/src/generate/t_erl_generator.cc        (revision 734105)
+++ compiler/cpp/src/generate/t_erl_generator.cc        (working copy)
@@ -8,6 +8,7 @@
 #include <sys/stat.h>
 #include <sys/types.h>
 #include <sstream>
+#include <algorithm>
 #include "t_erl_generator.h"
 #include "platform.h"

@@ -356,8 +357,10 @@
         out     << ", ";
         hrl_out << ", ";
       }
-      out     << (*m_iter)->get_name();
-      hrl_out << (*m_iter)->get_name();
+      std::string name = (*m_iter)->get_name();
+      std::transform(name.begin(), name.end(), name.begin(), ::tolower);
+      out     << name;
+      hrl_out << name;
     }
     out     << "})." << endl;
     hrl_out << "})." << endl;

Reply via email to