ruco-cpp 0.3.2 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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