alphalang 0.2.0 → 0.2.2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 44fd88ede5758ca9cad4bf1e8d5394ebd646c649598ab90f52bbfbdca03c8e62
4
- data.tar.gz: cc2e1e9171b0f44710209cbd615329e7b11e48f0284698756676b252064c4bcd
3
+ metadata.gz: ab47be57b758b60ecfd23d623f079f39cad75aff9e55d44abbcb848bf981892f
4
+ data.tar.gz: 722308d6394542dc4afc4cf6ea88b6403e0ed7db5a3ccf39e891b14eb6505526
5
5
  SHA512:
6
- metadata.gz: 96185e4bde6addbb9030fb753f54baa3cde93d7c7fa3130f528a6c5acd8bfdb765c973d853f4d96bd6df627d8fe1f19a1208c82da8dd1ecb951897d0badfd2bb
7
- data.tar.gz: 42da0f37236a78bf55a046879fa0a639cfdb8854104ae6341f31572918ce358173067887b0c0d1ede02c7b7ba6b0d5283f60f76c5c02b9ab075a423fc1104c4d
6
+ metadata.gz: 8cfd7fabcd48b1b5b50e12c9f24c42e6e25bd464a36d47954af1c9401de63b5832cb3ca063b6dde1bd3fe575ae761c8da9507b6eb185ef1ae3a1e593436b8add
7
+ data.tar.gz: d4b0aa62aac244dad17fe2898fc4e21a1dbc0fa54a0bb51e980a80d15f2491dd42fdf6e6ed17574e4761a4e1e7b5a491565048610acfa4a43f1dffc73fd81055
@@ -131,6 +131,12 @@ class BinaryOperationNode < Node
131
131
  end
132
132
 
133
133
  def evaluate
134
+ if @rhs.evaluate.is_a?(ArrayNode) && @op == '+'
135
+ return @value = @rhs.evaluate + @lhs.evaluate
136
+ elsif @lhs.evaluate.is_a?(Array) && @op == '+'
137
+ return @value = @lhs.evaluate.append(@rhs.evaluate)
138
+ end
139
+
134
140
  if @op == '/'
135
141
  @value = @lhs.evaluate.to_f.send(@op, @rhs.evaluate)
136
142
  else
@@ -155,7 +161,6 @@ end
155
161
 
156
162
  ####################################################
157
163
 
158
- #Arraynoden är ofärdig, används inte korrekt
159
164
  class ArrayNode < Node
160
165
  attr_accessor :lhs, :rhs
161
166
 
@@ -173,6 +178,18 @@ class ArrayNode < Node
173
178
  end
174
179
  end
175
180
 
181
+ def display_on_new_line
182
+ puts @value
183
+ end
184
+
185
+ def display_on_one_line
186
+ puts @value.join(', ')
187
+ end
188
+
189
+ def +(index)
190
+ @value.append(index)
191
+ end
192
+
176
193
  def [](index)
177
194
  @value[index]
178
195
  end
@@ -192,6 +209,6 @@ class ArrayNode < Node
192
209
  end
193
210
 
194
211
  def evaluate
195
- @value
212
+ self
196
213
  end
197
214
  end
@@ -187,7 +187,13 @@ class PrintNode
187
187
  end
188
188
 
189
189
  def evaluate
190
- puts @value.evaluate
190
+ if @value.evaluate.is_a?(ArrayNode)
191
+ @value.evaluate.display_on_one_line
192
+ elsif @value.evaluate.is_a?(Array)
193
+ puts @value.evaluate.join(', ')
194
+ else
195
+ puts @value.evaluate
196
+ end
191
197
  self.class
192
198
  end
193
199
  end
@@ -2,18 +2,6 @@ a = 1
2
2
  b = 1
3
3
  print b
4
4
  def fib(x)
5
- f = 2
6
- if f < x
7
-
8
- print b
9
- temp = a + b
10
- a = b
11
- b = temp
12
- fib(x - 1)
13
-
14
- else
15
- b
16
- end
17
5
  end
18
6
 
19
- fib(11)
7
+ fib(100)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: alphalang
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - mattias, victor
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-05-08 00:00:00.000000000 Z
11
+ date: 2024-05-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: logger