From 494461fd551b0c70712a0aa0d7278e99e215c172 Mon Sep 17 00:00:00 2001 From: Oskari Timperi Date: Mon, 2 Apr 2018 11:26:10 +0300 Subject: Modify field names to be valid identifiers --- generator/protoc_gen_nim.nim | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/generator/protoc_gen_nim.nim b/generator/protoc_gen_nim.nim index 41aaea9..07f5e84 100644 --- a/generator/protoc_gen_nim.nim +++ b/generator/protoc_gen_nim.nim @@ -1,5 +1,6 @@ import algorithm import os +import pegs import sequtils import sets import strformat @@ -231,6 +232,13 @@ proc newField(file: ProtoFile, message: Message, desc: FieldDescriptorProto): Fi result.packed = false result.mapEntry = nil + # Identifiers cannot start/end with underscore + removePrefix(result.name, '_') + removeSuffix(result.name, '_') + + # Consecutive underscores are not allowed + result.name = replace(result.name, peg"'_' '_'+", "_") + if isKeyword(result.name): result.name = "f" & result.name -- cgit v1.2.3