kpeg 1.0.0 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,6 +1,6 @@
1
1
  module KPeg
2
2
 
3
- VERSION = "1.0.0"
3
+ VERSION = "1.1.0"
4
4
 
5
5
  def self.grammar
6
6
  g = Grammar.new
@@ -265,8 +265,6 @@ module KPeg
265
265
  else
266
266
  return ans
267
267
  end
268
-
269
- return ans
270
268
  end
271
269
  end
272
270
 
@@ -299,8 +297,6 @@ module KPeg
299
297
  else
300
298
  return ans
301
299
  end
302
-
303
- return ans
304
300
  end
305
301
  end
306
302
 
@@ -77,7 +77,7 @@ sgl_escape_quote = "\\'" { "'" }
77
77
  | "[" - range_num:e - "]" { [e.to_i, e.to_i] }
78
78
 
79
79
  curly_block = curly
80
- curly = "{" < (/[^{}"']+/ | string | curly)* > "}" { @g.action(text) }
80
+ curly = "{" < (spaces | /[^{}"']+/ | string | curly)* > "}" { @g.action(text) }
81
81
  nested_paren = "(" (/[^()"']+/ | string | nested_paren)* ")"
82
82
 
83
83
  value = value:v ":" var:n { @g.t(v,n) }
@@ -270,8 +270,6 @@ class KPeg::FormatParser
270
270
  else
271
271
  return ans
272
272
  end
273
-
274
- return ans
275
273
  end
276
274
  end
277
275
 
@@ -304,8 +302,6 @@ class KPeg::FormatParser
304
302
  else
305
303
  return ans
306
304
  end
307
-
308
- return ans
309
305
  end
310
306
  end
311
307
 
@@ -278,8 +278,6 @@ class KPeg::StringEscape
278
278
  else
279
279
  return ans
280
280
  end
281
-
282
- return ans
283
281
  end
284
282
  end
285
283
 
@@ -312,8 +310,6 @@ class KPeg::StringEscape
312
310
  else
313
311
  return ans
314
312
  end
315
-
316
- return ans
317
313
  end
318
314
  end
319
315
 
@@ -431,6 +431,25 @@ a=b
431
431
  assert_equal expected, m.directives
432
432
  end
433
433
 
434
+ def test_parser_directive_single_quote
435
+ m = match <<-GRAMMAR
436
+ %% header {
437
+ # It's a bug I found
438
+ }
439
+
440
+ a=b
441
+ GRAMMAR
442
+
443
+ assert_rule G.ref("b"), m
444
+
445
+ expected = {
446
+ "header" => KPeg::Action.new("\n# It's a bug I found\n")
447
+ }
448
+
449
+ assert_equal expected, m.directives
450
+ end
451
+
452
+
434
453
  def test_parser_setup
435
454
  m = match "%% { def initialize; end }\na=b"
436
455
  assert_rule G.ref("b"), m
metadata CHANGED
@@ -1,57 +1,57 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kpeg
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Evan Phoenix
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-01-04 00:00:00.000000000 Z
11
+ date: 2016-04-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: minitest
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '5.2'
19
+ version: '5.8'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ~>
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '5.2'
26
+ version: '5.8'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rdoc
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ~>
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
33
  version: '4.0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ~>
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '4.0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: hoe
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ~>
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '3.7'
47
+ version: '3.15'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ~>
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '3.7'
54
+ version: '3.15'
55
55
  description: |-
56
56
  KPeg is a simple PEG library for Ruby. It provides an API as well as native
57
57
  grammar to build the grammar.
@@ -70,10 +70,13 @@ extra_rdoc_files:
70
70
  - Manifest.txt
71
71
  - README.rdoc
72
72
  - examples/phone_number/README.md
73
+ - examples/tiny_markdown/sample.md
73
74
  - examples/upper/README.md
74
75
  files:
75
- - .autotest
76
- - .travis.yml
76
+ - ".autotest"
77
+ - ".hoeignore"
78
+ - ".travis.yml"
79
+ - Gemfile
77
80
  - History.txt
78
81
  - LICENSE
79
82
  - Manifest.txt
@@ -91,6 +94,12 @@ files:
91
94
  - examples/phone_number/README.md
92
95
  - examples/phone_number/phone_number.kpeg
93
96
  - examples/phone_number/phone_number.rb
97
+ - examples/tiny_markdown/Rakefile
98
+ - examples/tiny_markdown/driver.rb
99
+ - examples/tiny_markdown/node.rb
100
+ - examples/tiny_markdown/sample.md
101
+ - examples/tiny_markdown/tiny_markdown.kpeg
102
+ - examples/tiny_markdown/tiny_markdown.kpeg.rb
94
103
  - examples/upper/README.md
95
104
  - examples/upper/upper.kpeg
96
105
  - examples/upper/upper.rb
@@ -116,42 +125,33 @@ files:
116
125
  - test/test_kpeg_format_parser_round_trip.rb
117
126
  - test/test_kpeg_grammar.rb
118
127
  - test/test_kpeg_grammar_renderer.rb
128
+ - test/test_kpeg_string_escape.rb
119
129
  - vim/syntax_kpeg/ftdetect/kpeg.vim
120
130
  - vim/syntax_kpeg/syntax/kpeg.vim
121
- - test/test_kpeg_string_escape.rb
122
- - .gemtest
123
131
  homepage: https://github.com/evanphx/kpeg
124
132
  licenses:
125
133
  - MIT
126
134
  metadata: {}
127
135
  post_install_message:
128
136
  rdoc_options:
129
- - --main
137
+ - "--main"
130
138
  - README.rdoc
131
139
  require_paths:
132
140
  - lib
133
141
  required_ruby_version: !ruby/object:Gem::Requirement
134
142
  requirements:
135
- - - '>='
143
+ - - ">="
136
144
  - !ruby/object:Gem::Version
137
145
  version: '0'
138
146
  required_rubygems_version: !ruby/object:Gem::Requirement
139
147
  requirements:
140
- - - '>='
148
+ - - ">="
141
149
  - !ruby/object:Gem::Version
142
150
  version: '0'
143
151
  requirements: []
144
- rubyforge_project: kpeg
145
- rubygems_version: 2.1.10
152
+ rubyforge_project:
153
+ rubygems_version: 2.5.1
146
154
  signing_key:
147
155
  specification_version: 4
148
156
  summary: KPeg is a simple PEG library for Ruby
149
- test_files:
150
- - test/test_kpeg.rb
151
- - test/test_kpeg_code_generator.rb
152
- - test/test_kpeg_compiled_parser.rb
153
- - test/test_kpeg_format.rb
154
- - test/test_kpeg_format_parser_round_trip.rb
155
- - test/test_kpeg_grammar.rb
156
- - test/test_kpeg_grammar_renderer.rb
157
- - test/test_kpeg_string_escape.rb
157
+ test_files: []
data/.gemtest DELETED
File without changes