kpeg 1.0.0 → 1.1.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.
- checksums.yaml +4 -4
- data/.hoeignore +12 -0
- data/Gemfile +3 -0
- data/Manifest.txt +9 -0
- data/README.rdoc +3 -3
- data/Rakefile +2 -0
- data/bin/kpeg +9 -2
- data/examples/lua_string/lua_string.kpeg.rb +0 -2
- data/examples/tiny_markdown/Rakefile +3 -0
- data/examples/tiny_markdown/driver.rb +10 -0
- data/examples/tiny_markdown/node.rb +107 -0
- data/examples/tiny_markdown/sample.md +51 -0
- data/examples/tiny_markdown/tiny_markdown.kpeg +199 -0
- data/examples/tiny_markdown/tiny_markdown.kpeg.rb +3892 -0
- data/lib/kpeg.rb +1 -1
- data/lib/kpeg/compiled_parser.rb +0 -4
- data/lib/kpeg/format_parser.kpeg +1 -1
- data/lib/kpeg/format_parser.rb +0 -4
- data/lib/kpeg/string_escape.rb +0 -4
- data/test/test_kpeg_format.rb +19 -0
- metadata +30 -30
- data/.gemtest +0 -0
data/lib/kpeg.rb
CHANGED
data/lib/kpeg/compiled_parser.rb
CHANGED
data/lib/kpeg/format_parser.kpeg
CHANGED
@@ -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) }
|
data/lib/kpeg/format_parser.rb
CHANGED
data/lib/kpeg/string_escape.rb
CHANGED
data/test/test_kpeg_format.rb
CHANGED
@@ -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.
|
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:
|
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.
|
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.
|
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.
|
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.
|
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
|
-
- .
|
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:
|
145
|
-
rubygems_version: 2.1
|
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
|