class Protobuf::Generate::Language::C
Public Class Methods
new(ast, conventions = Conventions)
click to toggle source
Calls superclass method
Protobuf::Generate::Language::new
# File lib/protobuf/generate/language/c.rb, line 27 def initialize ast, conventions = Conventions validate ast ast.extend(conventions) super ast end
Private Instance Methods
validate(ast)
click to toggle source
# File lib/protobuf/generate/language/c.rb, line 36 def validate ast ast.each do |e| # TODO: ast.messages next unless e.kind_of?(Protobuf::Generate::Ast::Message) # TODO: e.message? e.fields.each do |field| if field.label.match(/repeated/) raise "Message %s.%s field repeating is unsupported." % [e.name, field.name] end if field.type.match(/string|bytes/) && field.meta["size"].to_i <= 0 raise "Message %s.%s %s field requires size meta comment > 0 // @size = DIGITS" % [e.name, field.name, field.type] end end end end