ruco-cpp 0.3.2 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/lib/ruco.rb +22 -0
  3. data/lib/ruco/version.rb +1 -1
  4. metadata +3 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: '089ec6f8c7ea14f3773595c8a818322926c15b96'
4
- data.tar.gz: 0bb850f0c7d1054c4e54b365170a837d85e878ec
3
+ metadata.gz: 148946021e8cbdc944f3ab6da6043a6166be80cd
4
+ data.tar.gz: dc4a66d080db5cb0210eb16fbce507b817dcd9d9
5
5
  SHA512:
6
- metadata.gz: 2f9eafa9b40eb006575d79cc73240a86eb23362860a84512f5756b44c5111278c5209efb8ae29d1d1d759e6e5198a1d47c7bb766bc83f46740db95d8c1d4483e
7
- data.tar.gz: b0fdf50901e684c8203e9183754570a203f65db52f7c1b9b49dadd002345006c132540eb19fae86da71c9ecf0acf01e88405bf5daff1267b37de5b3da63edceb
6
+ metadata.gz: 0bdef0134ee6bbfce97aa50d0e1d3bd5f5788ea3e03dd0faf1c234077ca0fe03f7a3191c72ce325b26f4d52773dac82122ac581caef89a70c339d013ecb71019
7
+ data.tar.gz: 419e4fb2e975e35056911b2264a0b1be1407d34a4661b5fe3f3b5a4a4e3c62907aa04a7ec568cdbe6a921c151d2a452c52217113fbe64a1a366f2a1b82a930e7
data/lib/ruco.rb CHANGED
@@ -103,6 +103,24 @@ module Ruco
103
103
  return thing
104
104
  end
105
105
 
106
+ def group_type
107
+ @type
108
+ end
109
+
110
+ def grammar_tree
111
+ @stuff.map do |x|
112
+ if x.is_a? LitString
113
+ {type: "terminal", token: x.str}
114
+ elsif x.is_a? Group
115
+ {type: "group", sort: x.group_type, inner: x.grammar_tree}
116
+ elsif x.is_a? Identifier or x.is_a? Variation or x.is_a? Token
117
+ {type: "nonterminal", ident: x.name}
118
+ else
119
+ {type: "unknown", x: "*****************"}
120
+ end
121
+ end
122
+ end
123
+
106
124
  def sync
107
125
  @stuff << Sync.new
108
126
  end
@@ -276,6 +294,10 @@ module Ruco
276
294
  @productions[name] = p
277
295
  end
278
296
 
297
+ def generate_tree
298
+ result = @productions.map{|k,v| [k, v.grammar_tree] }.to_h
299
+ end
300
+
279
301
  def generate_header()
280
302
 
281
303
  classlist = []
data/lib/ruco/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Ruco
2
- VERSION = "0.3.2"
2
+ VERSION = "0.4.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruco-cpp
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Siaw
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-02-17 00:00:00.000000000 Z
11
+ date: 2018-03-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -187,7 +187,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
187
187
  version: '0'
188
188
  requirements: []
189
189
  rubyforge_project:
190
- rubygems_version: 2.6.14
190
+ rubygems_version: 2.6.11
191
191
  signing_key:
192
192
  specification_version: 4
193
193
  summary: Boilerplate generator for Coco/R