clj 0.0.5.2 → 0.0.5.3

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.
Files changed (3) hide show
  1. data/lib/clj/parser.rb +6 -6
  2. data/lib/clj/types.rb +1 -1
  3. metadata +5 -5
@@ -13,11 +13,7 @@ require 'stringio'
13
13
  class Clojure
14
14
 
15
15
  class Parser
16
- NUMBERS = '0' .. '9'
17
- IGNORE = [" ", ",", "\n", "\r", "\t"]
18
- SEPARATOR = ['"', '{', '}', '(', ')', '[', ']', '#']
19
- BOTH = IGNORE + SEPARATOR
20
- KEYWORD = ["'", '^', '@', '`', '~', '\\', ';'] + BOTH
16
+ NUMBERS = '0' .. '9'
21
17
 
22
18
  # Unescape characters in strings.
23
19
  UNESCAPE_MAP = Hash.new { |h, k| h[k] = k.chr }
@@ -129,7 +125,11 @@ private
129
125
 
130
126
  if piece.include? '/'
131
127
  Rational(piece)
132
- elsif piece.include? '.' or piece.end_with? 'M'
128
+ elsif piece.include? 'r'
129
+ base, number = piece.split('r', 2)
130
+
131
+ number.to_i(base.to_i)
132
+ elsif piece.include? '.' or piece.include? 'e' or piece.end_with? 'M'
133
133
  if piece.end_with? 'M'
134
134
  piece[-1] = ''
135
135
 
@@ -23,7 +23,7 @@ class Symbol
23
23
  def to_clj (options = {})
24
24
  result = inspect
25
25
 
26
- if Clojure::Parser::KEYWORD.any? { |c| result.include? c }
26
+ unless result =~ /:([^(\[{'^@`~\"\\,\s;)\]}]+)/
27
27
  raise ArgumentError, "#{result} cannot be transformed into clojure"
28
28
  end
29
29
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: clj
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5.2
4
+ version: 0.0.5.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ date: 2012-02-14 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake
16
- requirement: &7849260 !ruby/object:Gem::Requirement
16
+ requirement: &20645440 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *7849260
24
+ version_requirements: *20645440
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rspec
27
- requirement: &7848580 !ruby/object:Gem::Requirement
27
+ requirement: &20644240 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,7 +32,7 @@ dependencies:
32
32
  version: '0'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *7848580
35
+ version_requirements: *20644240
36
36
  description:
37
37
  email: meh@paranoici.org
38
38
  executables: []