yaparc 0.2.3 → 0.3.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 +7 -0
- data/.document +3 -0
- data/.rdoc_options +1 -0
- data/CHANGELOG.md +9 -0
- data/Gemfile +4 -0
- data/LICENSE +20 -0
- data/README +105 -85
- data/Rakefile +21 -0
- data/lib/yaparc.rb +7 -2
- data/manifest.scm +1 -0
- data/sig/yaparc.gen.rbs +220 -0
- data/sig/yaparc.rbs +4 -0
- data/yaparc.gemspec +36 -0
- metadata +91 -58
- data/test/n3-report.html +0 -169
- data/test/n3.bnf +0 -129
- data/test/test_abc.rb.bak +0 -112
- data/test/test_calc.rb +0 -112
- data/test/test_lambda.rb +0 -87
- data/test/test_metric.rb +0 -617
- data/test/test_owl.rb +0 -1039
- data/test/test_parser.rb +0 -460
- data/test/test_prolog.rb +0 -287
- data/test/test_sql.rb +0 -317
- data/test/test_uri.rb +0 -752
metadata
CHANGED
@@ -1,72 +1,105 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: yaparc
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
|
-
authors:
|
6
|
+
authors:
|
7
7
|
- Akimichi Tatsukawa
|
8
|
-
|
8
|
+
- gemmaro
|
9
|
+
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
12
|
+
date: 2024-12-31 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: rake
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
requirements:
|
18
|
+
- - ">="
|
19
|
+
- !ruby/object:Gem::Version
|
20
|
+
version: '0'
|
21
|
+
type: :development
|
22
|
+
prerelease: false
|
23
|
+
version_requirements: !ruby/object:Gem::Requirement
|
24
|
+
requirements:
|
25
|
+
- - ">="
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
version: '0'
|
28
|
+
- !ruby/object:Gem::Dependency
|
29
|
+
name: rubocop
|
30
|
+
requirement: !ruby/object:Gem::Requirement
|
31
|
+
requirements:
|
32
|
+
- - ">="
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: '0'
|
35
|
+
type: :development
|
36
|
+
prerelease: false
|
37
|
+
version_requirements: !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
39
|
+
- - ">="
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
version: '0'
|
42
|
+
- !ruby/object:Gem::Dependency
|
43
|
+
name: test-unit
|
44
|
+
requirement: !ruby/object:Gem::Requirement
|
45
|
+
requirements:
|
46
|
+
- - ">="
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: '0'
|
49
|
+
type: :development
|
50
|
+
prerelease: false
|
51
|
+
version_requirements: !ruby/object:Gem::Requirement
|
52
|
+
requirements:
|
53
|
+
- - ">="
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: '0'
|
56
|
+
description:
|
57
|
+
email:
|
58
|
+
- akimichi.tatsukawa@gmail.com
|
59
|
+
- gemmaro.dev@gmail.com
|
18
60
|
executables: []
|
19
|
-
|
20
61
|
extensions: []
|
21
|
-
|
22
|
-
|
62
|
+
extra_rdoc_files: []
|
63
|
+
files:
|
64
|
+
- ".document"
|
65
|
+
- ".rdoc_options"
|
66
|
+
- CHANGELOG.md
|
67
|
+
- Gemfile
|
68
|
+
- LICENSE
|
23
69
|
- README
|
24
|
-
|
25
|
-
- test/test_sql.rb
|
26
|
-
- test/test_lambda.rb
|
27
|
-
- test/test_calc.rb
|
28
|
-
- test/test_uri.rb
|
29
|
-
- test/test_parser.rb
|
30
|
-
- test/test_owl.rb
|
31
|
-
- test/test_metric.rb
|
32
|
-
- test/test_prolog.rb
|
70
|
+
- Rakefile
|
33
71
|
- lib/yaparc.rb
|
34
|
-
-
|
35
|
-
-
|
36
|
-
-
|
37
|
-
-
|
38
|
-
|
39
|
-
|
40
|
-
|
72
|
+
- manifest.scm
|
73
|
+
- sig/yaparc.gen.rbs
|
74
|
+
- sig/yaparc.rbs
|
75
|
+
- yaparc.gemspec
|
76
|
+
homepage: https://git.disroot.org/gemmaro/yaparc
|
77
|
+
licenses: []
|
78
|
+
metadata:
|
79
|
+
rubygems_mfa_required: 'true'
|
80
|
+
bug_tracker_uri: https://git.disroot.org/gemmaro/yaparc/issues
|
81
|
+
changelog_uri: https://git.disroot.org/gemmaro/yaparc/src/branch/main/CHANGELOG.md
|
82
|
+
documentation_uri: https://rubydoc.info/gems/yaparc
|
83
|
+
homepage_uri: https://git.disroot.org/gemmaro/yaparc
|
84
|
+
source_code_uri: https://git.disroot.org/gemmaro/yaparc
|
85
|
+
wiki_uri: https://git.disroot.org/gemmaro/yaparc/wiki
|
86
|
+
post_install_message:
|
41
87
|
rdoc_options: []
|
42
|
-
|
43
|
-
require_paths:
|
88
|
+
require_paths:
|
44
89
|
- lib
|
45
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
46
|
-
requirements:
|
90
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
91
|
+
requirements:
|
47
92
|
- - ">="
|
48
|
-
- !ruby/object:Gem::Version
|
49
|
-
version:
|
50
|
-
|
51
|
-
|
52
|
-
requirements:
|
93
|
+
- !ruby/object:Gem::Version
|
94
|
+
version: 3.1.6
|
95
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
96
|
+
requirements:
|
53
97
|
- - ">="
|
54
|
-
- !ruby/object:Gem::Version
|
55
|
-
version:
|
56
|
-
version:
|
98
|
+
- !ruby/object:Gem::Version
|
99
|
+
version: '0'
|
57
100
|
requirements: []
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
summary: Yet Another Combinator Parser Library
|
64
|
-
test_files:
|
65
|
-
- test/test_sql.rb
|
66
|
-
- test/test_lambda.rb
|
67
|
-
- test/test_calc.rb
|
68
|
-
- test/test_uri.rb
|
69
|
-
- test/test_parser.rb
|
70
|
-
- test/test_owl.rb
|
71
|
-
- test/test_metric.rb
|
72
|
-
- test/test_prolog.rb
|
101
|
+
rubygems_version: 3.3.26
|
102
|
+
signing_key:
|
103
|
+
specification_version: 4
|
104
|
+
summary: Yet another simple parser combinator library
|
105
|
+
test_files: []
|
data/test/n3-report.html
DELETED
@@ -1,169 +0,0 @@
|
|
1
|
-
<html><head><title>BNF</title></head><body>
|
2
|
-
<h1>BNF</h1>
|
3
|
-
<p>Productions are in normal type, linked to their definitions.<br>
|
4
|
-
<em>Regular expressions are in italics</em><br>
|
5
|
-
<b><code>Literal characters in quoted in bold</code></b><br>
|
6
|
-
<em>void</em> means an empty production.
|
7
|
-
</p>
|
8
|
-
<dl>
|
9
|
-
<dt><a name="barename">barename</a></dt><dd>
|
10
|
-
<p><em>[A-Z_a-zÀ-ÖØ-öø-˿Ͱ-ͽͿ--⁰-Ⰰ-、-豈-﷏ﷰ-�𐀀-][\-0-9A-Z_a-z·À-ÖØ-öø-ͽͿ--‿-⁀⁰-Ⰰ-、-豈-﷏ﷰ-�𐀀-]*</em></p>
|
11
|
-
</dd>
|
12
|
-
<dt><a name="barename_csl">barename_csl</a></dt><dd>
|
13
|
-
<p><a href="#barename">barename</a> <a href="#barename_csl_tail">barename_csl_tail</a></p>
|
14
|
-
<p><em>void</em></p>
|
15
|
-
</dd>
|
16
|
-
<dt><a name="barename_csl_tail">barename_csl_tail</a></dt><dd>
|
17
|
-
<p><b><code>","</code></b> <a href="#barename">barename</a> <a href="#barename_csl_tail">barename_csl_tail</a></p>
|
18
|
-
<p><em>void</em></p>
|
19
|
-
</dd>
|
20
|
-
<dt><a name="boolean">boolean</a></dt><dd>
|
21
|
-
<p><b><code>"@false"</code></b></p>
|
22
|
-
<p><b><code>"@true"</code></b></p>
|
23
|
-
</dd>
|
24
|
-
<dt><a name="decimal">decimal</a></dt><dd>
|
25
|
-
<p><em>[-+]?[0-9]+(\.[0-9]+)?</em></p>
|
26
|
-
</dd>
|
27
|
-
<dt><a name="declaration">declaration</a></dt><dd>
|
28
|
-
<p><b><code>"@base"</code></b> <a href="#explicituri">explicituri</a></p>
|
29
|
-
<p><b><code>"@keywords"</code></b> <a href="#barename_csl">barename_csl</a></p>
|
30
|
-
<p><b><code>"@prefix"</code></b> <a href="#prefix">prefix</a> <a href="#explicituri">explicituri</a></p>
|
31
|
-
</dd>
|
32
|
-
<dt><a name="document">document</a></dt><dd>
|
33
|
-
<p><a href="#statements_optional">statements_optional</a> <em>EOF</em></p>
|
34
|
-
</dd>
|
35
|
-
<dt><a name="double">double</a></dt><dd>
|
36
|
-
<p><em>[-+]?[0-9]+(\.[0-9]+)?([eE][-+]?[0-9]+)</em></p>
|
37
|
-
</dd>
|
38
|
-
<dt><a name="dtlang">dtlang</a></dt><dd>
|
39
|
-
<p><b><code>"@"</code></b> <a href="#langcode">langcode</a></p>
|
40
|
-
<p><b><code>"^^"</code></b> <a href="#symbol">symbol</a></p>
|
41
|
-
<p><em>void</em></p>
|
42
|
-
</dd>
|
43
|
-
<dt><a name="existential">existential</a></dt><dd>
|
44
|
-
<p><b><code>"@forSome"</code></b> <a href="#symbol_csl">symbol_csl</a></p>
|
45
|
-
</dd>
|
46
|
-
<dt><a name="explicituri">explicituri</a></dt><dd>
|
47
|
-
<p><em><[^>]*></em></p>
|
48
|
-
</dd>
|
49
|
-
<dt><a name="expression">expression</a></dt><dd>
|
50
|
-
<p><a href="#pathitem">pathitem</a> <a href="#pathtail">pathtail</a></p>
|
51
|
-
</dd>
|
52
|
-
<dt><a name="formulacontent">formulacontent</a></dt><dd>
|
53
|
-
<p><a href="#statementlist">statementlist</a></p>
|
54
|
-
</dd>
|
55
|
-
<dt><a name="integer">integer</a></dt><dd>
|
56
|
-
<p><em>[-+]?[0-9]+</em></p>
|
57
|
-
</dd>
|
58
|
-
<dt><a name="langcode">langcode</a></dt><dd>
|
59
|
-
<p><em>[a-z]+(-[a-z0-9]+)*</em></p>
|
60
|
-
</dd>
|
61
|
-
<dt><a name="literal">literal</a></dt><dd>
|
62
|
-
<p><a href="#string">string</a> <a href="#dtlang">dtlang</a></p>
|
63
|
-
</dd>
|
64
|
-
<dt><a name="numericliteral">numericliteral</a></dt><dd>
|
65
|
-
<p><a href="#decimal">decimal</a></p>
|
66
|
-
<p><a href="#double">double</a></p>
|
67
|
-
<p><a href="#integer">integer</a></p>
|
68
|
-
</dd>
|
69
|
-
<dt><a name="object">object</a></dt><dd>
|
70
|
-
<p><a href="#expression">expression</a></p>
|
71
|
-
</dd>
|
72
|
-
<dt><a name="objecttail">objecttail</a></dt><dd>
|
73
|
-
<p><b><code>","</code></b> <a href="#object">object</a> <a href="#objecttail">objecttail</a></p>
|
74
|
-
<p><em>void</em></p>
|
75
|
-
</dd>
|
76
|
-
<dt><a name="pathitem">pathitem</a></dt><dd>
|
77
|
-
<p><a href="#boolean">boolean</a></p>
|
78
|
-
<p><a href="#literal">literal</a></p>
|
79
|
-
<p><a href="#numericliteral">numericliteral</a></p>
|
80
|
-
<p><a href="#quickvariable">quickvariable</a></p>
|
81
|
-
<p><a href="#symbol">symbol</a></p>
|
82
|
-
<p><b><code>"("</code></b> <a href="#pathlist">pathlist</a> <b><code>")"</code></b></p>
|
83
|
-
<p><b><code>"["</code></b> <a href="#propertylist">propertylist</a> <b><code>"]"</code></b></p>
|
84
|
-
<p><b><code>"{"</code></b> <a href="#formulacontent">formulacontent</a> <b><code>"}"</code></b></p>
|
85
|
-
</dd>
|
86
|
-
<dt><a name="pathlist">pathlist</a></dt><dd>
|
87
|
-
<p><a href="#expression">expression</a> <a href="#pathlist">pathlist</a></p>
|
88
|
-
<p><em>void</em></p>
|
89
|
-
</dd>
|
90
|
-
<dt><a name="pathtail">pathtail</a></dt><dd>
|
91
|
-
<p><b><code>"!"</code></b> <a href="#expression">expression</a></p>
|
92
|
-
<p><b><code>"^"</code></b> <a href="#expression">expression</a></p>
|
93
|
-
<p><em>void</em></p>
|
94
|
-
</dd>
|
95
|
-
<dt><a name="prefix">prefix</a></dt><dd>
|
96
|
-
<p><em>([A-Z_a-zÀ-ÖØ-öø-˿Ͱ-ͽͿ--⁰-Ⰰ-、-豈-﷏ﷰ-�𐀀-][\-0-9A-Z_a-z·À-ÖØ-öø-ͽͿ--‿-⁀⁰-Ⰰ-、-豈-﷏ﷰ-�𐀀-]*)?:</em></p>
|
97
|
-
</dd>
|
98
|
-
<dt><a name="propertylist">propertylist</a></dt><dd>
|
99
|
-
<p><a href="#verb">verb</a> <a href="#object">object</a> <a href="#objecttail">objecttail</a> <a href="#propertylisttail">propertylisttail</a></p>
|
100
|
-
<p><em>void</em></p>
|
101
|
-
</dd>
|
102
|
-
<dt><a name="propertylisttail">propertylisttail</a></dt><dd>
|
103
|
-
<p><b><code>";"</code></b> <a href="#propertylist">propertylist</a></p>
|
104
|
-
<p><em>void</em></p>
|
105
|
-
</dd>
|
106
|
-
<dt><a name="qname">qname</a></dt><dd>
|
107
|
-
<p><em>(([A
|
108
|
-
-Z_a-zÀ-ÖØ-öø-˿Ͱ-ͽͿ--⁰-Ⰰ-、-豈-﷏ﷰ-�𐀀-][\-0-9A-Z_a-z·À-ÖØ-öø-ͽͿ-
|
109
|
-
-‿-⁀⁰-Ⰰ-、-豈-﷏ﷰ-�𐀀-]*)?:)?[A-Z_a-zÀ-ÖØ-öø-˿Ͱ-ͽͿ--⁰-Ⰰ-、-豈-﷏ﷰ-
|
110
|
-
�𐀀-][\-0-9A-Z_a-z·À-ÖØ-öø-ͽͿ--‿-⁀⁰-Ⰰ-、-豈-﷏ﷰ-�𐀀-]*</em></p>
|
111
|
-
</dd>
|
112
|
-
<dt><a name="quickvariable">quickvariable</a></dt><dd>
|
113
|
-
<p><em>\?[A-Z_a-zÀ-ÖØ-öø-˿Ͱ-ͽͿ--⁰-Ⰰ-、-豈-﷏ﷰ-�𐀀-][\-0-9A-Z_a-z·À-ÖØ-öø-ͽͿ--‿-⁀⁰-Ⰰ-、-豈-﷏ﷰ-�𐀀-]*</em></p>
|
114
|
-
</dd>
|
115
|
-
<dt><a name="simpleStatement">simpleStatement</a></dt><dd>
|
116
|
-
<p><a href="#subject">subject</a> <a href="#propertylist">propertylist</a></p>
|
117
|
-
</dd>
|
118
|
-
<dt><a name="statement">statement</a></dt><dd>
|
119
|
-
<p><a href="#declaration">declaration</a></p>
|
120
|
-
<p><a href="#existential">existential</a></p>
|
121
|
-
<p><a href="#simpleStatement">simpleStatement</a></p>
|
122
|
-
<p><a href="#universal">universal</a></p>
|
123
|
-
</dd>
|
124
|
-
<dt><a name="statementlist">statementlist</a></dt><dd>
|
125
|
-
<p><a href="#statement">statement</a> <a href="#statementtail">statementtail</a></p>
|
126
|
-
<p><em>void</em></p>
|
127
|
-
</dd>
|
128
|
-
<dt><a name="statements_optional">statements_optional</a></dt><dd>
|
129
|
-
<p><a href="#statement">statement</a> <b><code>"."</code></b> <a href="#statements_optional">statements_optional</a></p>
|
130
|
-
<p><em>void</em></p>
|
131
|
-
</dd>
|
132
|
-
<dt><a name="statementtail">statementtail</a></dt><dd>
|
133
|
-
<p><b><code>"."</code></b> <a href="#statementlist">statementlist</a></p>
|
134
|
-
<p><em>void</em></p>
|
135
|
-
</dd>
|
136
|
-
<dt><a name="string">string</a></dt><dd>
|
137
|
-
<p><em>("""[^"\\]*(?:(?:\\.|"(?!""))[^"\\]*)*""")|("[^"\\]*(?:\\.[^"\\]*)*")</em></p>
|
138
|
-
</dd>
|
139
|
-
<dt><a name="subject">subject</a></dt><dd>
|
140
|
-
<p><a href="#expression">expression</a></p>
|
141
|
-
</dd>
|
142
|
-
<dt><a name="symbol">symbol</a></dt><dd>
|
143
|
-
<p><a href="#explicituri">explicituri</a></p>
|
144
|
-
<p><a href="#qname">qname</a></p>
|
145
|
-
</dd>
|
146
|
-
<dt><a name="symbol_csl">symbol_csl</a></dt><dd>
|
147
|
-
<p><a href="#symbol">symbol</a> <a href="#symbol_csl_tail">symbol_csl_tail</a></p>
|
148
|
-
<p><em>void</em></p>
|
149
|
-
</dd>
|
150
|
-
<dt><a name="symbol_csl_tail">symbol_csl_tail</a></dt><dd>
|
151
|
-
<p><b><code>","</code></b> <a href="#symbol">symbol</a> <a href="#symbol_csl_tail">symbol_csl_tail</a></p>
|
152
|
-
<p><em>void</em></p>
|
153
|
-
</dd>
|
154
|
-
<dt><a name="universal">universal</a></dt><dd>
|
155
|
-
<p><b><code>"@forAll"</code></b> <a href="#symbol_csl">symbol_csl</a></p>
|
156
|
-
</dd>
|
157
|
-
<dt><a name="verb">verb</a></dt><dd>
|
158
|
-
<p><a href="#expression">expression</a></p>
|
159
|
-
<p><b><code>"<="</code></b></p>
|
160
|
-
<p><b><code>"="</code></b></p>
|
161
|
-
<p><b><code>"=>"</code></b></p>
|
162
|
-
<p><b><code>"@a"</code></b></p>
|
163
|
-
<p><b><code>"@has"</code></b> <a href="#expression">expression</a></p>
|
164
|
-
<p><b><code>"@is"</code></b> <a href="#expression">expression</a> <b><code>"@of"</code></b></p>
|
165
|
-
</dd>
|
166
|
-
|
167
|
-
</dl>
|
168
|
-
|
169
|
-
</body></html>
|
data/test/n3.bnf
DELETED
@@ -1,129 +0,0 @@
|
|
1
|
-
#
|
2
|
-
# Taken from http://www.w3.org/DesignIssues/Notation3.html
|
3
|
-
# on 2001-08-03 (version of 2001-04-10)
|
4
|
-
#
|
5
|
-
# Modifications:
|
6
|
-
#
|
7
|
-
# $Log: n3.bnf,v $
|
8
|
-
# Revision 1.4 2001/08/06 20:56:21 sandro
|
9
|
-
# added space* and space+ in several places
|
10
|
-
# removed "#" from forbidden chars in URI_Reference
|
11
|
-
# handles comments
|
12
|
-
# made directives actually part of the grammar (!)
|
13
|
-
# allowed nprefix to be zero-length
|
14
|
-
#
|
15
|
-
# Revision 1.3 2001/08/03 13:44:43 sandro
|
16
|
-
# filled in remaining non-terminals
|
17
|
-
#
|
18
|
-
# Revision 1.2 2001/08/03 13:02:48 sandro
|
19
|
-
# standardized BNF so blindfold can compile it
|
20
|
-
# added ::= for each rule
|
21
|
-
# added | for branches
|
22
|
-
# added ; at end of rule
|
23
|
-
# added # before comments
|
24
|
-
# put quotes around literals
|
25
|
-
# turn hypen into underscore in identifiers
|
26
|
-
# rename prefix to nprefix (hack around blindfold keyword for now)
|
27
|
-
#
|
28
|
-
# Revision 1.1 2001/08/03 12:34:38 sandro
|
29
|
-
# added opening comments
|
30
|
-
#
|
31
|
-
|
32
|
-
|
33
|
-
document ::= void
|
34
|
-
| statementlist;
|
35
|
-
|
36
|
-
space ::= " " | "\n" | "\r" | comment;
|
37
|
-
|
38
|
-
comment ::= "#" [^\r\n]*;
|
39
|
-
|
40
|
-
statement ::= subject space+ property_list
|
41
|
-
| directive
|
42
|
-
;
|
43
|
-
|
44
|
-
statementlist ::= (statement space* ("." space*)?)* ;
|
45
|
-
|
46
|
-
subject ::= node;
|
47
|
-
|
48
|
-
verb ::= ">-" prop "->" # has xxx of
|
49
|
-
| "<-" prop "<-" # is xxx of
|
50
|
-
# | operator # has operator:xxx of??? NOT IMPLMENTED
|
51
|
-
| prop # has xxx of -- shorthand
|
52
|
-
| "has" prop # has xxx of
|
53
|
-
| "is" prop "of" # is xxx of
|
54
|
-
| "a" # has rdf:type of
|
55
|
-
| "=" # has daml:equivaent of
|
56
|
-
;
|
57
|
-
|
58
|
-
prop ::= node;
|
59
|
-
|
60
|
-
node ::= uri_ref2
|
61
|
-
| anonnode
|
62
|
-
| "this"
|
63
|
-
| node
|
64
|
-
;
|
65
|
-
|
66
|
-
nodelist ::= void # (used in lists)
|
67
|
-
| node
|
68
|
-
| node nodelist
|
69
|
-
;
|
70
|
-
|
71
|
-
anonnode ::= "[" property_list "]" # something which ...
|
72
|
-
| "{" statementlist "}" # the statementlist itself as a resource
|
73
|
-
| "(" nodelist ")" # short for eg [ n3:first node1; n3:rest [ n3:first node2; n3:rest: n3:null ]]
|
74
|
-
;
|
75
|
-
|
76
|
-
property_list ::= void # to allow [...].
|
77
|
-
| verb space+ object_list
|
78
|
-
| verb space+ object_list space+ ";" space+ property_list
|
79
|
-
| ":-" anonnode #to allow two anonymous forms to be given eg [ a :Truth; :- { :sky :color :blue } ] )
|
80
|
-
| ":-" anonnode ";" property_list
|
81
|
-
;
|
82
|
-
|
83
|
-
object_list ::= object
|
84
|
-
| object "," object_list
|
85
|
-
;
|
86
|
-
|
87
|
-
uri_ref2 ::= qname
|
88
|
-
| "<" URI_Reference ">"
|
89
|
-
;
|
90
|
-
|
91
|
-
qname ::= nprefix ":" localname; # ??? Allow omit colon when prefix void - keyword clash
|
92
|
-
|
93
|
-
object ::= subject
|
94
|
-
| string1 # " constant-value-with-escaping "
|
95
|
-
| string2 # """ constant value with escaping including single or double occurences of quotes and/or newlines """
|
96
|
-
# well-formed-xml-element ???? legacy or structured stuff - not implemented or distinguished
|
97
|
-
;
|
98
|
-
|
99
|
-
directive ::= "bind" space+ nprefix ":" uri_ref2 # Namespace declartion. Trailing "#" is omitted & assumed. Obsolete.
|
100
|
-
| "@prefix" space+ nprefix ":" space+ uri_ref2 # Namespace declaration
|
101
|
-
;
|
102
|
-
|
103
|
-
# operator ::= (Not implemented)
|
104
|
-
# + >- operator:plus ->
|
105
|
-
# - >- operator:minus ->
|
106
|
-
# / >- operator:slash->
|
107
|
-
# * >- operator:star-> (etc? @@)
|
108
|
-
|
109
|
-
fragid ::= alpha alphanumeric* ;
|
110
|
-
|
111
|
-
alpha ::= [a-zA-Z];
|
112
|
-
|
113
|
-
alphanumeric ::= alpha | [0-9] | "_";
|
114
|
-
|
115
|
-
void ::= "" ; # nothing
|
116
|
-
|
117
|
-
URI_Reference ::= [^{}<>]*; # short version
|
118
|
-
|
119
|
-
nprefix ::= "" | ((alpha | "_") alphanumeric*);
|
120
|
-
|
121
|
-
localname ::= fragid;
|
122
|
-
|
123
|
-
string1 ::= '"' string1_char* '"';
|
124
|
-
|
125
|
-
string1_char ::= '\\"' | [^\"] ; # should disallow some other characters, etc.
|
126
|
-
|
127
|
-
string2 ::= '"""' string2_char* '"""';
|
128
|
-
|
129
|
-
string2_char ::= [^"] | ([^] [^] [^"]); # something like this; need to think about it some more
|
data/test/test_abc.rb.bak
DELETED
@@ -1,112 +0,0 @@
|
|
1
|
-
|
2
|
-
require 'lib/yaparc.rb'
|
3
|
-
require 'test/unit'
|
4
|
-
|
5
|
-
### c.f. http://www.norbeck.nu/abc/bnf/abc20bnf.htm###
|
6
|
-
|
7
|
-
module ABC
|
8
|
-
|
9
|
-
# KEYWORDS = %w{NOT AND OR ALL IN select from where EXISTS}
|
10
|
-
|
11
|
-
# abc-file ::= *(abc-tune / comment / xcommand / file-field / text-line / tex)
|
12
|
-
class AbcFile
|
13
|
-
include Yaparc::Parsable
|
14
|
-
|
15
|
-
def initialize
|
16
|
-
@parser = lambda do
|
17
|
-
Yaparc::Many.new(
|
18
|
-
Yaparc::Alt.new(AbcTune.new,
|
19
|
-
Comment.new,
|
20
|
-
Xcommand.new,
|
21
|
-
FileField.new,
|
22
|
-
TextLine.new,
|
23
|
-
Tex.new))
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
# file-field ::= field-area / field-book / field-composer / field-discography / field-file / field-group / field-history / field-length / field-meter / field-notes / field-origin / field-parts / field-tempo / field-rhythm / field-source / field-userdef-print / field-userdef-play / field-words / field-transcription / field-key / unused-field ; Default values for the whole file - all fields except number, title and voice
|
29
|
-
class FileField
|
30
|
-
include Yaparc::Parsable
|
31
|
-
|
32
|
-
def initialize
|
33
|
-
@parser = lambda do
|
34
|
-
Yaparc::Alt.new(
|
35
|
-
FieldArea.new,
|
36
|
-
FieldBook.new,
|
37
|
-
FieldComposer.new,
|
38
|
-
FieldDiscography.new,
|
39
|
-
FieldFile.new,
|
40
|
-
FieldGroup.new,
|
41
|
-
FieldHistory.new,
|
42
|
-
FieldLength.new,
|
43
|
-
FieldMeter.new,
|
44
|
-
FieldNotes.new,
|
45
|
-
FieldOrigin.new,
|
46
|
-
FieldParts.new,
|
47
|
-
FieldTempo.new,
|
48
|
-
FieldRhythm.new,
|
49
|
-
FieldSource.new,
|
50
|
-
FieldUserdefPrint.new,
|
51
|
-
FieldUserdefPlay.new,
|
52
|
-
FieldWords.new,
|
53
|
-
FieldTranscription.new,
|
54
|
-
FieldKey.new,
|
55
|
-
UnusedField.new)
|
56
|
-
end
|
57
|
-
end
|
58
|
-
end
|
59
|
-
|
60
|
-
# abc-tune ::= abc-header abc-music eol
|
61
|
-
class AbcTune
|
62
|
-
include Yaparc::Parsable
|
63
|
-
|
64
|
-
def initialize
|
65
|
-
@parser = lambda do
|
66
|
-
Yaparc::Seq.new(AbcHeader.new,
|
67
|
-
AbcMusic.new,
|
68
|
-
Eol.new)
|
69
|
-
end
|
70
|
-
end
|
71
|
-
end
|
72
|
-
|
73
|
-
# abc-header ::= [field-number] title-fields *other-field field-key ; note that field-number is optional.
|
74
|
-
class AbcTune
|
75
|
-
include Yaparc::Parsable
|
76
|
-
|
77
|
-
def initialize
|
78
|
-
@parser = lambda do
|
79
|
-
Yaparc::Seq.new(
|
80
|
-
ZeroOne.new(FieldNumber.new)
|
81
|
-
TitleFields.new,
|
82
|
-
Many.new(OtherField.new),
|
83
|
-
FieldKey.new)
|
84
|
-
end
|
85
|
-
end
|
86
|
-
end
|
87
|
-
|
88
|
-
# field-number ::= %x58.3A *WSP 1*DIGIT header-eol ; X:
|
89
|
-
class FieldNumber
|
90
|
-
include Yaparc::Parsable
|
91
|
-
|
92
|
-
def initialize
|
93
|
-
@parser = lambda do
|
94
|
-
Yaparc::Seq.new(
|
95
|
-
|
96
|
-
%x58.3A *WSP 1*DIGIT header-eol ; X:
|
97
|
-
end
|
98
|
-
end
|
99
|
-
end
|
100
|
-
|
101
|
-
### eol ::= CRLF / LF / CR ; only one version should occur in the whole file - win / *nix / mac line breaks
|
102
|
-
class Eol
|
103
|
-
include Yaparc::Parsable
|
104
|
-
|
105
|
-
def initialize
|
106
|
-
@parser = lambda do
|
107
|
-
Yaparc::Alt.new(Regex.new(/\n/))
|
108
|
-
end
|
109
|
-
end
|
110
|
-
end
|
111
|
-
|
112
|
-
end
|