clj 0.0.5.2 → 0.0.5.3

Sign up to get free protection for your applications and to get access to all the features.
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: []