diff options
| -rw-r--r-- | generator/protoc_gen_nim.nim | 8 |
1 files changed, 8 insertions, 0 deletions
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 |
