cycr 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
data/cycr.gemspec CHANGED
@@ -1,7 +1,7 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "cycr"
3
- s.version = "0.0.4"
4
- s.date = "2010-10-19"
3
+ s.version = "0.0.5"
4
+ s.date = "2010-11-23"
5
5
  s.summary = "Ruby client for the (Open)Cyc server"
6
6
  s.email = "apohllo@o2.pl"
7
7
  s.homepage = "http://github.com/apohllo/cycr"
data/lib/cycr/builder.rb CHANGED
@@ -23,9 +23,9 @@ module Cyc
23
23
 
24
24
  def method_missing(name,*args,&block)
25
25
  @query << "(" << name.to_s.gsub("_","-") << " "
26
- @query << args.map{|a| a.to_cyc}.join(" ")
26
+ @query << (args||[]).map{|a| a.to_cyc}.join(" ")
27
27
  if block
28
- self.instance_exec(&block)
28
+ block.call(self)
29
29
  end
30
30
  @query << ")"
31
31
  end
data/lib/cycr/client.rb CHANGED
@@ -121,7 +121,7 @@ module Cyc
121
121
  while current_result.size == 100 do
122
122
  send_message("(subseq #{last_message} #{result.size} " +
123
123
  "#{result.size + 100})")
124
- current_result = receive_answer(options)
124
+ current_result = receive_answer(options) || []
125
125
  result.concat(current_result)
126
126
  end
127
127
  result
@@ -1,24 +1,36 @@
1
1
  class String
2
- def to_cyc
2
+ def to_cyc(raw=false)
3
3
  "\"#{self}\""
4
4
  end
5
5
  end
6
6
 
7
7
  class Symbol
8
- def to_cyc
8
+ def to_cyc(raw=false)
9
9
  "#\$#{self}"
10
10
  end
11
11
  end
12
12
 
13
13
  class Array
14
- def to_cyc
15
- "'("+map{|e| e.to_cyc}.join(" ")+")"
14
+ def to_cyc(raw=false)
15
+ contents = "'("+map{|e| e.to_cyc(raw)}.join(" ")+")"
16
+ if raw
17
+ contents
18
+ else
19
+ "(el-find-if-nart #{contents})"
20
+ end
16
21
  end
17
22
  end
18
23
 
19
24
  class Fixnum
20
- def to_cyc
25
+ def to_cyc(raw=false)
21
26
  to_s
22
27
  end
23
28
  end
24
29
 
30
+ module Cyc
31
+ class LiteralString < String
32
+ def to_cyc(raw=false)
33
+ self
34
+ end
35
+ end
36
+ end
data/lib/cycr/parser.rb CHANGED
@@ -49,6 +49,8 @@ module Cyc
49
49
  top = stack.pop
50
50
  stack[-1].push top
51
51
  raise ContinueParsing.new(stack[0][0])
52
+ when :assertion_sep
53
+ # ignore
52
54
  end
53
55
  end
54
56
  stack[0][0]
data/lib/cycr/sexpr.rex CHANGED
@@ -7,7 +7,7 @@ macro
7
7
  LINE_TERMINATOR \r|\n|\r\n
8
8
  INPUT_CHARACTER [^\r\n\"\(\):& ]
9
9
  WHITE_SPACE [\ \t\f\r\n] | \r\n
10
- SYMBOL :[^<>\r\n\"\(\):&\ ]+
10
+ SYMBOL :[^<>\r\n\"\(\):&\#\ ]+
11
11
  CYC_SYMBOL \#\$[a-zA-Z0-9:_-]+
12
12
  ATOM [^\r\n\"\(\):&\ ]+
13
13
  OPEN_PAR \(
@@ -17,6 +17,7 @@ macro
17
17
  OPEN_LIST_QUOTE \#<
18
18
  CLOSE_LIST_QUOTE >
19
19
  DOT \.
20
+ ASSERTION_SEP :
20
21
 
21
22
 
22
23
  rule
@@ -35,6 +36,7 @@ rule
35
36
  {ATOM} { [:atom,text] }
36
37
  # literals
37
38
  {QUOTE} { state = :STRING; @str = ""; [:in_string] }
39
+ {ASSERTION_SEP} { [:assertion_sep]}
38
40
  # whitespace
39
41
  {WHITE_SPACE} # ignore
40
42
  :STRING [^\n\r\"\\]+ { @str << text; [:in_string]}
@@ -73,7 +73,7 @@ class SExpressionLexer
73
73
  when (text = ss.scan(/NIL/))
74
74
  @rex_tokens.push action { [:nil,text] }
75
75
 
76
- when (text = ss.scan(/:[^<>\r\n\"\(\):&\ ]+/))
76
+ when (text = ss.scan(/:[^<>\r\n\"\(\):&\#\ ]+/))
77
77
  @rex_tokens.push action { [:symbol,text] }
78
78
 
79
79
  when (text = ss.scan(/\#\$[a-zA-Z0-9:_-]+/))
@@ -85,6 +85,9 @@ class SExpressionLexer
85
85
  when (text = ss.scan(/\"/))
86
86
  @rex_tokens.push action { state = :STRING; @str = ""; [:in_string] }
87
87
 
88
+ when (text = ss.scan(/:/))
89
+ @rex_tokens.push action { [:assertion_sep]}
90
+
88
91
  when (text = ss.scan(/[\ \t\f\r\n]/))
89
92
  ;
90
93
 
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cycr
3
3
  version: !ruby/object:Gem::Version
4
- hash: 23
4
+ hash: 21
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 4
10
- version: 0.0.4
9
+ - 5
10
+ version: 0.0.5
11
11
  platform: ruby
12
12
  authors:
13
13
  - Aleksander Pohl
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-10-19 00:00:00 +02:00
18
+ date: 2010-11-23 00:00:00 +01:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency