calyx 0.9.3 → 0.9.4

Sign up to get free protection for your applications and to get access to all the features.
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: