ebnf 0.2.1 → 0.2.2

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.
@@ -158,12 +158,7 @@ module EBNF
158
158
  # Write out parsed syntax string as an S-Expression
159
159
  # @return [String]
160
160
  def to_sxp
161
- begin
162
- require 'sxp'
163
- SXP::Generator.string(ast.sort)
164
- rescue LoadError
165
- ast.sort_by{|r| r.num.to_f}.to_sxp
166
- end
161
+ SXP::Generator.string(ast.sort_by{|r| r.id.to_f}.map(&:for_sxp))
167
162
  end
168
163
  def to_s; to_sxp; end
169
164
 
@@ -42,15 +42,15 @@ module EBNF::LL1
42
42
  '\\"' => '"', # \u0022 (quotation mark, double quote mark)
43
43
  "\\'" => '\'', # \u0027 (apostrophe-quote, single quote mark)
44
44
  '\\\\' => '\\' # \u005C (backslash)
45
- }
46
- ESCAPE_CHAR4 = /\\u(?:[0-9A-Fa-f]{4,4})/ # \uXXXX
47
- ESCAPE_CHAR8 = /\\U(?:[0-9A-Fa-f]{8,8})/ # \UXXXXXXXX
45
+ }.freeze
46
+ ESCAPE_CHAR4 = /\\u(?:[0-9A-Fa-f]{4,4})/.freeze # \uXXXX
47
+ ESCAPE_CHAR8 = /\\U(?:[0-9A-Fa-f]{8,8})/.freeze # \UXXXXXXXX
48
48
  ECHAR = /\\./ # More liberal unescaping
49
- UCHAR = /#{ESCAPE_CHAR4}|#{ESCAPE_CHAR8}/
50
- COMMENT = /#.*/
51
- WS = / |\t|\r|\n/m
49
+ UCHAR = /#{ESCAPE_CHAR4}|#{ESCAPE_CHAR8}/.freeze
50
+ COMMENT = /#.*/.freeze
51
+ WS = / |\t|\r|\n/m.freeze
52
52
 
53
- ML_START = /\'\'\'|\"\"\"/ # Beginning of terminals that may span lines
53
+ ML_START = /\'\'\'|\"\"\"/.freeze # Beginning of terminals that may span lines
54
54
 
55
55
  ##
56
56
  # @!attribute whitespace
@@ -496,7 +496,6 @@ module EBNF::LL1
496
496
  @error_log << message unless @recovering
497
497
  @recovering = true
498
498
  debug(node, message, options.merge(:level => 0))
499
- $stderr.puts("[#{@lineno}]#{' ' * depth}#{node}: #{message}")
500
499
  end
501
500
 
502
501
  ##
@@ -82,22 +82,24 @@ module EBNF
82
82
  }.merge(options))
83
83
  end
84
84
 
85
- # Serializes this rule to an S-Expression
86
- # @return [String]
87
- def to_sxp
85
+ # Return representation for building S-Expressions
86
+ # @return [Array]
87
+ def for_sxp
88
88
  elements = [kind, sym, id]
89
89
  elements << [:start, true] if start
90
90
  elements << first.sort_by(&:to_s).unshift(:first) if first
91
91
  elements << follow.sort_by(&:to_s).unshift(:follow) if follow
92
92
  elements << expr
93
- begin
94
- require 'sxp'
95
- SXP::Generator.string(elements)
96
- rescue LoadError
97
- elements.to_sxp
98
- end
93
+ elements
99
94
  end
100
- def to_s; to_sxp; end
95
+
96
+ # Return SXP representation of this rule
97
+ # @return [String]
98
+ def to_sxp
99
+ for_sxp.to_sxp
100
+ end
101
+
102
+ alias_method :to_s, :to_sxp
101
103
 
102
104
  # Serializes this rule to an Turtle
103
105
  # @return [String]
metadata CHANGED
@@ -1,20 +1,18 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ebnf
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
5
- prerelease:
4
+ version: 0.2.2
6
5
  platform: ruby
7
6
  authors:
8
7
  - Gregg Kellogg
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-03-10 00:00:00.000000000 Z
11
+ date: 2013-03-22 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: sxp
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
17
  - - ! '>='
20
18
  - !ruby/object:Gem::Version
@@ -22,7 +20,6 @@ dependencies:
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
24
  - - ! '>='
28
25
  - !ruby/object:Gem::Version
@@ -30,7 +27,6 @@ dependencies:
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: rdf
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
31
  - - ! '>='
36
32
  - !ruby/object:Gem::Version
@@ -38,7 +34,6 @@ dependencies:
38
34
  type: :runtime
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
38
  - - ! '>='
44
39
  - !ruby/object:Gem::Version
@@ -46,7 +41,6 @@ dependencies:
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: rspec
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
45
  - - ! '>='
52
46
  - !ruby/object:Gem::Version
@@ -54,7 +48,6 @@ dependencies:
54
48
  type: :development
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
52
  - - ! '>='
60
53
  - !ruby/object:Gem::Version
@@ -62,7 +55,6 @@ dependencies:
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: yard
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
59
  - - ! '>='
68
60
  - !ruby/object:Gem::Version
@@ -70,7 +62,6 @@ dependencies:
70
62
  type: :development
71
63
  prerelease: false
72
64
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
65
  requirements:
75
66
  - - ! '>='
76
67
  - !ruby/object:Gem::Version
@@ -78,7 +69,6 @@ dependencies:
78
69
  - !ruby/object:Gem::Dependency
79
70
  name: rake
80
71
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
72
  requirements:
83
73
  - - ! '>='
84
74
  - !ruby/object:Gem::Version
@@ -86,7 +76,6 @@ dependencies:
86
76
  type: :development
87
77
  prerelease: false
88
78
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
79
  requirements:
91
80
  - - ! '>='
92
81
  - !ruby/object:Gem::Version
@@ -127,30 +116,26 @@ files:
127
116
  homepage: http://github.com/gkellogg/ebnf
128
117
  licenses:
129
118
  - Public Domain
119
+ metadata: {}
130
120
  post_install_message:
131
121
  rdoc_options: []
132
122
  require_paths:
133
123
  - lib
134
124
  required_ruby_version: !ruby/object:Gem::Requirement
135
- none: false
136
125
  requirements:
137
126
  - - ! '>='
138
127
  - !ruby/object:Gem::Version
139
128
  version: 1.8.7
140
129
  required_rubygems_version: !ruby/object:Gem::Requirement
141
- none: false
142
130
  requirements:
143
131
  - - ! '>='
144
132
  - !ruby/object:Gem::Version
145
133
  version: '0'
146
- segments:
147
- - 0
148
- hash: -4479271649691547126
149
134
  requirements: []
150
135
  rubyforge_project:
151
- rubygems_version: 1.8.25
136
+ rubygems_version: 2.0.3
152
137
  signing_key:
153
- specification_version: 3
138
+ specification_version: 4
154
139
  summary: EBNF parser and parser generator.
155
140
  test_files: []
156
141
  has_rdoc: false