sparse 0.0.3 → 0.0.4
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.
- data/VERSION +1 -1
- data/lib/sparse/sparse.rb +18 -1
- data/sparse.gemspec +1 -1
- data/spec/complete_code_spec.rb +14 -0
- metadata +11 -11
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.4
|
data/lib/sparse/sparse.rb
CHANGED
@@ -17,6 +17,13 @@ class Sparse
|
|
17
17
|
blowup 'Expected list'
|
18
18
|
end
|
19
19
|
@scanner.unscan
|
20
|
+
when syntax_quote
|
21
|
+
result << :syntax_quote
|
22
|
+
unless open_parenthesis
|
23
|
+
blowup 'Expected list'
|
24
|
+
end
|
25
|
+
@scanner.unscan
|
26
|
+
|
20
27
|
else
|
21
28
|
blowup
|
22
29
|
end
|
@@ -48,6 +55,12 @@ class Sparse
|
|
48
55
|
blowup 'Expected a list, symbol or number'
|
49
56
|
end
|
50
57
|
@scanner.unscan
|
58
|
+
when syntax_quote
|
59
|
+
current << :syntax_quote
|
60
|
+
unless open_parenthesis
|
61
|
+
blowup 'Expected a list'
|
62
|
+
end
|
63
|
+
@scanner.unscan
|
51
64
|
when fn
|
52
65
|
current << :fn
|
53
66
|
unless open_parenthesis
|
@@ -97,12 +110,16 @@ class Sparse
|
|
97
110
|
@scanner.scan(/[']/)
|
98
111
|
end
|
99
112
|
|
113
|
+
def syntax_quote
|
114
|
+
@scanner.scan(/[`]/)
|
115
|
+
end
|
116
|
+
|
100
117
|
def fn
|
101
118
|
@scanner.scan(/[#]/)
|
102
119
|
end
|
103
120
|
|
104
121
|
def symbol
|
105
|
-
@scanner.scan(/([-][^0-9]|[
|
122
|
+
@scanner.scan(/([-][^0-9]|[&+*\/:\[\]]|[a-zA-Z\$][a-zA-Z0-9\-\$]*[?]?)/)
|
106
123
|
end
|
107
124
|
|
108
125
|
def number
|
data/sparse.gemspec
CHANGED
@@ -9,7 +9,7 @@ Gem::Specification.new do |s|
|
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Plinio Balduino"]
|
12
|
-
s.date = %q{2011-07-
|
12
|
+
s.date = %q{2011-07-21}
|
13
13
|
s.description = %q{Fast and light S-Expression parser}
|
14
14
|
s.email = %q{pbalduino+github@gmail.com}
|
15
15
|
s.extra_rdoc_files = [
|
data/spec/complete_code_spec.rb
CHANGED
@@ -275,4 +275,18 @@ lisp
|
|
275
275
|
end
|
276
276
|
|
277
277
|
end
|
278
|
+
|
279
|
+
it 'lucio code' do
|
280
|
+
code = <<lisp
|
281
|
+
(defun whatever
|
282
|
+
([] ("empty"))
|
283
|
+
([x] ("one"))
|
284
|
+
([x y] ("two"))
|
285
|
+
([x y & z] ("three or more")))
|
286
|
+
(whatever)
|
287
|
+
(whatever 1)
|
288
|
+
(whatever 1 2)
|
289
|
+
(whatever 1 2 3)
|
290
|
+
lisp
|
291
|
+
end
|
278
292
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sparse
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,12 +9,12 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-07-
|
12
|
+
date: 2011-07-25 00:00:00.000000000 -03:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rspec
|
17
|
-
requirement: &
|
17
|
+
requirement: &11492364 !ruby/object:Gem::Requirement
|
18
18
|
none: false
|
19
19
|
requirements:
|
20
20
|
- - ~>
|
@@ -22,10 +22,10 @@ dependencies:
|
|
22
22
|
version: 2.6.0
|
23
23
|
type: :development
|
24
24
|
prerelease: false
|
25
|
-
version_requirements: *
|
25
|
+
version_requirements: *11492364
|
26
26
|
- !ruby/object:Gem::Dependency
|
27
27
|
name: bundler
|
28
|
-
requirement: &
|
28
|
+
requirement: &11492016 !ruby/object:Gem::Requirement
|
29
29
|
none: false
|
30
30
|
requirements:
|
31
31
|
- - ~>
|
@@ -33,10 +33,10 @@ dependencies:
|
|
33
33
|
version: 1.0.0
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
|
-
version_requirements: *
|
36
|
+
version_requirements: *11492016
|
37
37
|
- !ruby/object:Gem::Dependency
|
38
38
|
name: jeweler
|
39
|
-
requirement: &
|
39
|
+
requirement: &11491728 !ruby/object:Gem::Requirement
|
40
40
|
none: false
|
41
41
|
requirements:
|
42
42
|
- - ~>
|
@@ -44,10 +44,10 @@ dependencies:
|
|
44
44
|
version: 1.6.4
|
45
45
|
type: :development
|
46
46
|
prerelease: false
|
47
|
-
version_requirements: *
|
47
|
+
version_requirements: *11491728
|
48
48
|
- !ruby/object:Gem::Dependency
|
49
49
|
name: simplecov
|
50
|
-
requirement: &
|
50
|
+
requirement: &11491356 !ruby/object:Gem::Requirement
|
51
51
|
none: false
|
52
52
|
requirements:
|
53
53
|
- - ! '>='
|
@@ -55,7 +55,7 @@ dependencies:
|
|
55
55
|
version: '0'
|
56
56
|
type: :development
|
57
57
|
prerelease: false
|
58
|
-
version_requirements: *
|
58
|
+
version_requirements: *11491356
|
59
59
|
description: Fast and light S-Expression parser
|
60
60
|
email: pbalduino+github@gmail.com
|
61
61
|
executables: []
|
@@ -101,7 +101,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
101
101
|
version: '0'
|
102
102
|
segments:
|
103
103
|
- 0
|
104
|
-
hash:
|
104
|
+
hash: 108271571
|
105
105
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
106
106
|
none: false
|
107
107
|
requirements:
|