超漢字アプリケーション開発用のProtocol Buffersコンパイラの開発
Revisão | 0a7ff77f0fbb7a0b1df68d07b574a8f3874f5545 (tree) |
---|---|
Hora | 2015-03-09 01:46:49 |
Autor | ornse01 <ornse01@user...> |
Commiter | ornse01 |
change Protobuf::CGenerator to instantiaiton.
@@ -4,16 +4,20 @@ require 'pathname' | ||
4 | 4 | module Protobuf end |
5 | 5 | |
6 | 6 | class Protobuf::CGenerator |
7 | - def self.generate_header(msg_list) | |
8 | - msg_list = msg_list.map { |msg| Protobuf::CGenerator::Message.new msg } | |
7 | + def initialize(msg_list) | |
8 | + @msg_list = msg_list | |
9 | + end | |
10 | + | |
11 | + def generate_header | |
12 | + msg_list = @msg_list.map { |msg| Protobuf::CGenerator::Message.new msg } | |
9 | 13 | script = Pathname("../template.h.erb").expand_path(__FILE__).read() |
10 | 14 | |
11 | 15 | erb = ERB.new(script, nil, '-'); |
12 | 16 | erb.result(binding) |
13 | 17 | end |
14 | 18 | |
15 | - def self.generate_source(header_file_name, msg_list) | |
16 | - msg_list = msg_list.map { |msg| Protobuf::CGenerator::Message.new msg } | |
19 | + def generate_source(header_file_name) | |
20 | + msg_list = @msg_list.map { |msg| Protobuf::CGenerator::Message.new msg } | |
17 | 21 | script = Pathname("../template.c.erb").expand_path(__FILE__).read() |
18 | 22 | |
19 | 23 | erb = ERB.new(script, nil, '-'); |
@@ -22,14 +22,15 @@ end | ||
22 | 22 | class ProtobufCompiler |
23 | 23 | def initialize(src) |
24 | 24 | @ir = Protobuf::Parser.new().parse_start(src) |
25 | + @cgen = Protobuf::CGenerator.new @ir.enum_for(:each_message) | |
25 | 26 | end |
26 | 27 | |
27 | 28 | def generate_header |
28 | - Protobuf::CGenerator.generate_header @ir.enum_for(:each_message) | |
29 | + @cgen.generate_header | |
29 | 30 | end |
30 | 31 | |
31 | 32 | def generate_source(header_file_name) |
32 | - Protobuf::CGenerator.generate_source header_file_name, @ir.enum_for(:each_message) | |
33 | + @cgen.generate_source header_file_name | |
33 | 34 | end |
34 | 35 | end |
35 | 36 |