delorean_lang 0.1.5 → 0.1.6
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/lib/delorean/engine.rb +2 -0
- data/lib/delorean/nodes.rb +11 -11
- data/lib/delorean/version.rb +1 -1
- metadata +11 -22
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: f51984247bdded71f32757212ebef7550f047308
|
4
|
+
data.tar.gz: d7ad1108229516517af20540716b7779f9ae1405
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: ab67c2085eced7cc1745437b8137eadec5fc9f1de17e8ab5ab4962239b2b948c47d5f5d95e9f8595bb24dccd84da398a90842e27ae578e3b70faec5445727812
|
7
|
+
data.tar.gz: 0e07256b63586bd26ce0ecb429af36636e81123c5e59e310d55eaa9ebff241ab5310c7dda1ab3b1ed596949ee2fa27b19b03a2e333d2933aee06beb0bbe71f66
|
data/lib/delorean/engine.rb
CHANGED
data/lib/delorean/nodes.rb
CHANGED
@@ -25,16 +25,13 @@ module Delorean
|
|
25
25
|
# (i.e. check for aname). Otherwise, we use the default value
|
26
26
|
# if any.
|
27
27
|
aname, cname = i.text_value, context.last_node
|
28
|
-
|
28
|
+
not_found = defined?(e) ? e.rewrite(context) :
|
29
|
+
"raise UndefinedParamError, 'undefined parameter #{aname}'"
|
30
|
+
|
29
31
|
<<eos
|
30
32
|
class #{cname}
|
31
33
|
def self.#{aname}#{POST}(_e)
|
32
|
-
_e[self.name+'.#{aname}'] ||=
|
33
|
-
begin
|
34
|
-
_e.fetch('#{aname}')
|
35
|
-
rescue KeyError
|
36
|
-
#{defined?(e) ? e.rewrite(context) : exc}
|
37
|
-
end
|
34
|
+
_e[self.name+'.#{aname}'] ||= _e.fetch('#{aname}') { #{not_found} }
|
38
35
|
end
|
39
36
|
end
|
40
37
|
eos
|
@@ -72,8 +69,10 @@ eos
|
|
72
69
|
end
|
73
70
|
|
74
71
|
def rewrite(context)
|
75
|
-
# Nodes are simply translated to classes.
|
76
|
-
|
72
|
+
# Nodes are simply translated to classes. Define our own
|
73
|
+
# self.name() since it's extremely slow in MRI 2.0.
|
74
|
+
"class #{n.text_value} < BaseClass; " +
|
75
|
+
"def self.name; '#{n.text_value}'; end; end"
|
77
76
|
end
|
78
77
|
end
|
79
78
|
|
@@ -88,7 +87,8 @@ eos
|
|
88
87
|
sname = context.super_name(p.text_value, mname)
|
89
88
|
|
90
89
|
# A sub-node (derived node) is just a subclass.
|
91
|
-
"class #{n.text_value} < #{sname};
|
90
|
+
"class #{n.text_value} < #{sname}; " +
|
91
|
+
"def self.name; '#{n.text_value}'; end; end"
|
92
92
|
end
|
93
93
|
end
|
94
94
|
|
@@ -388,7 +388,7 @@ eos
|
|
388
388
|
def rewrite(context)
|
389
389
|
res = "(#{e1.rewrite(context)})"
|
390
390
|
context.parse_define_var(i.text_value)
|
391
|
-
res += ".select{|#{i.rewrite(context)}| (#{ifexp.e3.rewrite(context)})
|
391
|
+
res += ".select{|#{i.rewrite(context)}| (#{ifexp.e3.rewrite(context)})}" if
|
392
392
|
defined?(ifexp.e3)
|
393
393
|
res += ".map{|#{i.rewrite(context)}| (#{e2.rewrite(context)}) }"
|
394
394
|
context.parse_undef_var(i.text_value)
|
data/lib/delorean/version.rb
CHANGED
metadata
CHANGED
@@ -1,20 +1,18 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: delorean_lang
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
5
|
-
prerelease:
|
4
|
+
version: 0.1.6
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Arman Bostani
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2013-11-
|
11
|
+
date: 2013-11-20 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: treetop
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
17
|
- - ~>
|
20
18
|
- !ruby/object:Gem::Version
|
@@ -22,7 +20,6 @@ dependencies:
|
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
24
|
- - ~>
|
28
25
|
- !ruby/object:Gem::Version
|
@@ -30,7 +27,6 @@ dependencies:
|
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: activerecord
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
31
|
- - ~>
|
36
32
|
- !ruby/object:Gem::Version
|
@@ -38,7 +34,6 @@ dependencies:
|
|
38
34
|
type: :runtime
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
38
|
- - ~>
|
44
39
|
- !ruby/object:Gem::Version
|
@@ -46,33 +41,29 @@ dependencies:
|
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: rspec
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
|
-
- -
|
45
|
+
- - '>='
|
52
46
|
- !ruby/object:Gem::Version
|
53
47
|
version: '0'
|
54
48
|
type: :development
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
|
-
- -
|
52
|
+
- - '>='
|
60
53
|
- !ruby/object:Gem::Version
|
61
54
|
version: '0'
|
62
55
|
- !ruby/object:Gem::Dependency
|
63
56
|
name: sqlite3
|
64
57
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
58
|
requirements:
|
67
|
-
- -
|
59
|
+
- - '>='
|
68
60
|
- !ruby/object:Gem::Version
|
69
61
|
version: '0'
|
70
62
|
type: :development
|
71
63
|
prerelease: false
|
72
64
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
65
|
requirements:
|
75
|
-
- -
|
66
|
+
- - '>='
|
76
67
|
- !ruby/object:Gem::Version
|
77
68
|
version: '0'
|
78
69
|
description: A "compiler" for the Delorean programming language
|
@@ -107,27 +98,26 @@ files:
|
|
107
98
|
- spec/spec_helper.rb
|
108
99
|
homepage: https://github.com/arman000/delorean_lang
|
109
100
|
licenses: []
|
101
|
+
metadata: {}
|
110
102
|
post_install_message:
|
111
103
|
rdoc_options: []
|
112
104
|
require_paths:
|
113
105
|
- lib
|
114
106
|
required_ruby_version: !ruby/object:Gem::Requirement
|
115
|
-
none: false
|
116
107
|
requirements:
|
117
|
-
- -
|
108
|
+
- - '>='
|
118
109
|
- !ruby/object:Gem::Version
|
119
110
|
version: '0'
|
120
111
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
121
|
-
none: false
|
122
112
|
requirements:
|
123
|
-
- -
|
113
|
+
- - '>='
|
124
114
|
- !ruby/object:Gem::Version
|
125
115
|
version: '0'
|
126
116
|
requirements: []
|
127
117
|
rubyforge_project:
|
128
|
-
rubygems_version: 1.
|
118
|
+
rubygems_version: 2.1.11
|
129
119
|
signing_key:
|
130
|
-
specification_version:
|
120
|
+
specification_version: 4
|
131
121
|
summary: Delorean compiler
|
132
122
|
test_files:
|
133
123
|
- spec/dev_spec.rb
|
@@ -135,4 +125,3 @@ test_files:
|
|
135
125
|
- spec/func_spec.rb
|
136
126
|
- spec/parse_spec.rb
|
137
127
|
- spec/spec_helper.rb
|
138
|
-
has_rdoc:
|