calyx 0.9.3 → 0.9.4

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 37cdacc0c9a70c27bf6ac43e713e2ee0af8e524f
4
- data.tar.gz: 447e59dddca3f7afc50954ae4b3f1c203a50ee6b
3
+ metadata.gz: bde85e189408ceafef6e5e3c4904a2ee8fb8afde
4
+ data.tar.gz: 6e806f06faea71b4faf8b5022179a1d4ddafbd0e
5
5
  SHA512:
6
- metadata.gz: 2af24d9e1bc92e7ca7020ee26accea4227536878ee819c9099309e9c9889e65e325435af4514f0035882ef10b9b1e049da9abf9beae700256567070b474a8525
7
- data.tar.gz: a5d36d452cbff0077caf4ce800bd100487002d64004e03fdc34ae54519a97b6a20defef8e3d2fb231b7c84f84dc9605a63255ecdf2ea6b11c4f9f74b61b67a81
6
+ metadata.gz: c134603b50bdee4656209002a7f967a4e76b5c81ba300bbd36996274ae07f1c2e12bfa26a0a1d003dd1472f8dbb14d5b9ac163a4b264ef03190ebde1ab99496a
7
+ data.tar.gz: 7e5f60627784213ecfe65b1ba7f3009e1ce282736ee5c2ca0f8510537825ac3c7241304738233da8a1124482c654ee954bacb0aa0e0348fcd870983891ea16cc
@@ -18,42 +18,21 @@ module Calyx
18
18
 
19
19
  def load_yml(file)
20
20
  yaml = YAML.load(file)
21
- create_calyx_class(yaml)
21
+ build_grammar(yaml)
22
22
  end
23
23
 
24
24
  def load_json(file)
25
25
  json = JSON.parse(file)
26
- json.each do |key, value|
27
- if value[0] == ":"
28
- json[key] = convert_to_symbol(value)
29
- elsif value.is_a?(Array)
30
- json[key] = parse_array(value)
31
- end
32
- end
33
- create_calyx_class(json)
26
+ build_grammar(json)
34
27
  end
35
28
 
36
- def create_calyx_class(hash)
37
- klass = Class.new(Calyx::Grammar)
38
- hash.each do |rule_name, rule_productions|
39
- klass.send(rule_name, *rule_productions)
40
- end
41
- klass.new
42
- end
43
-
44
- def parse_array(array)
45
- array.map do |element|
46
- if element[0] == ":"
47
- convert_to_symbol(element)
48
- else
49
- element
29
+ def build_grammar(hash)
30
+ Calyx::Grammar.new do
31
+ hash.each do |rule_name, rule_productions|
32
+ rule(rule_name, *rule_productions)
50
33
  end
51
34
  end
52
35
  end
53
-
54
- def convert_to_symbol(value)
55
- value[1..-1].to_sym
56
- end
57
36
  end
58
37
  end
59
- end
38
+ end
@@ -6,6 +6,8 @@ module Calyx
6
6
  choices = productions.map do |choice|
7
7
  if choice.is_a?(String)
8
8
  Concat.parse(choice, registry)
9
+ elsif choice.is_a?(Fixnum)
10
+ Terminal.new(choice.to_s)
9
11
  elsif choice.is_a?(Symbol)
10
12
  if choice[0] == Memo::SIGIL
11
13
  Memo.new(choice, registry)
@@ -1,3 +1,3 @@
1
1
  module Calyx
2
- VERSION = '0.9.3'.freeze
2
+ VERSION = '0.9.4'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: calyx
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.3
4
+ version: 0.9.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mark Rickerby
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-05-09 00:00:00.000000000 Z
11
+ date: 2016-05-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -99,9 +99,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
99
99
  version: '0'
100
100
  requirements: []
101
101
  rubyforge_project:
102
- rubygems_version: 2.2.2
102
+ rubygems_version: 2.4.5
103
103
  signing_key:
104
104
  specification_version: 4
105
105
  summary: Generate text with declarative recursive grammars
106
106
  test_files: []
107
- has_rdoc: