mojikun 1.0.0 → 1.0.1
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/README.md +54 -9
- data/examples/99_bottles.moji +1 -0
- data/lib/mojikun/version.rb +1 -1
- data/test/interpreter_test.rb +5 -2
- metadata +8 -9
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 775137f72943fb9965160f02315b7b91d72bebcf
|
4
|
+
data.tar.gz: d26f81c79b0d822305250ffd2473a73a019bd84b
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 250f9d8fc80e85b79e11283da3029ad93f9b50b71f5cd793c3377322c265c1ce2718533951c1009c5aa84bf40e3136fecc9dd2434397c09ae033775aebeec601
|
7
|
+
data.tar.gz: d038efa6682638a3025ecc8c344e2ac366d89461347a770daf1c372a760d9eec4e3cb48a53d3ef74b30c422ae6ee4d25ca4d0888d707f89d78c04f4c325414db
|
data/README.md
CHANGED
@@ -4,14 +4,14 @@ A Brainfuck based on Emoji.
|
|
4
4
|
|
5
5
|
Instructions:
|
6
6
|
|
7
|
-
👉 Move the pointer to the right
|
8
|
-
👈 Move the pointer to the left
|
9
|
-
👍 Increment the memory cell under the pointer
|
10
|
-
👎 Decrement the memory cell under the pointer
|
11
|
-
💻 Output the character signified by the cell at the pointer
|
12
|
-
💾 Input a character and store it in the cell at the pointer
|
13
|
-
🔃 Jump past the matching 🔙 if the cell under the pointer is 0
|
14
|
-
🔙 Jump back to the matching 🔃 if the cell under the pointer is nonzero
|
7
|
+
👉 Move the pointer to the right
|
8
|
+
👈 Move the pointer to the left
|
9
|
+
👍 Increment the memory cell under the pointer
|
10
|
+
👎 Decrement the memory cell under the pointer
|
11
|
+
💻 Output the character signified by the cell at the pointer
|
12
|
+
💾 Input a character and store it in the cell at the pointer
|
13
|
+
🔃 Jump past the matching 🔙 if the cell under the pointer is 0
|
14
|
+
🔙 Jump back to the matching 🔃 if the cell under the pointer is nonzero
|
15
15
|
|
16
16
|
## Installation
|
17
17
|
|
@@ -33,11 +33,56 @@ A `mojikun` binary is provided to let you run programs. There is an examples
|
|
33
33
|
directory which has some examples. Use `mojikun` like any other interpreter:
|
34
34
|
|
35
35
|
```
|
36
|
-
|
36
|
+
mojikun examples/hello.moji
|
37
37
|
```
|
38
38
|
|
39
39
|
`.moji` is the preferred file ending for Mojikun.
|
40
40
|
|
41
|
+
## Structure
|
42
|
+
|
43
|
+
While Mojikun is a simple language that could be interpreted in a 40ish line
|
44
|
+
script, I wanted to make it more like a 'real langauge' that would have all
|
45
|
+
of the parts and design that a more full one has. I may use this foundation
|
46
|
+
later to build more complex things.
|
47
|
+
|
48
|
+
We can see these parts in motion by examining the binary:
|
49
|
+
|
50
|
+
```ruby
|
51
|
+
$ cat bin/mojikun
|
52
|
+
#!/usr/bin/env ruby
|
53
|
+
|
54
|
+
require 'mojikun'
|
55
|
+
|
56
|
+
source_code = ARGF.read.chomp
|
57
|
+
|
58
|
+
tokens = Mojikun::Lexer.new(source_code).call
|
59
|
+
|
60
|
+
ast = Mojikun::Parser.new(tokens).call
|
61
|
+
|
62
|
+
runtime = Mojikun::Runtime.new
|
63
|
+
interpreter = Mojikun::Interpreter.new(runtime)
|
64
|
+
|
65
|
+
interpreter.evaluate(ast)
|
66
|
+
```
|
67
|
+
|
68
|
+
We have a Lexer, Parser, Runtime, and Interpreter. The Lexer turns the stream
|
69
|
+
of input into a series of tokens. The Parser takes those tokens and turns them
|
70
|
+
into an AST, which is more of a list than a tree, really. We generate a new
|
71
|
+
Runtime, which has all of the internal state we need to make the language work:
|
72
|
+
the data array, the program counter, etc. Then, the Interpreter takes that
|
73
|
+
AST and evaluates it in the context of the Runtime.
|
74
|
+
|
75
|
+
Pretty simple!
|
76
|
+
|
77
|
+
## Testing
|
78
|
+
|
79
|
+
Mojikun is fully tested with MiniTest. I actually wrote it in a TDD fashion.
|
80
|
+
To run the tests, simply
|
81
|
+
|
82
|
+
```
|
83
|
+
$ rake test
|
84
|
+
```
|
85
|
+
|
41
86
|
## Contributing
|
42
87
|
|
43
88
|
1. Fork it
|
@@ -0,0 +1 @@
|
|
1
|
+
👉👍👍👍👍👍👍👍👉👍👍👍👍👍👍👍👍👍👍🔃👈👍👍👍👍👍👉👎🔙👍👍👍👍👍👍👍👉👍👍👍👍👍👍👍👍👍👍🔃👈👍👍👍👍👍👉👎🔙👍👍👍👍👍👍👍👍👍👍👉👍👍👍👍👍👍👍👍👍👉👉👍👍👍👍👍👍👍👍🔃👈👍👍👍👍👉👎🔙👉👍👍👍👍👍👍👍👍👍👍👍👍👍👍🔃👈👍👍👍👍👍👍👍👉👎🔙👍👉👍👍👍👍👍👍👍👍👍👍👍🔃👈👍👍👍👍👍👍👍👍👍👍👉👎🔙👍👍👉👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍🔃👈👍👍👍👍👍👍👉👎🔙👍👍👉👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍🔃👈👍👍👍👍👍👍👉👎🔙👉👍👍👍👍👍👍👍👍👍👍👍👍🔃👈👍👍👍👍👍👍👍👍👍👉👎🔙👍👉👍👍👍👍👍👍👍👍👍👍🔃👈👍👍👍👍👍👍👍👍👍👍👉👎🔙👍👉👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍🔃👈👍👍👍👍👍👍👉👎🔙👉👍👍👍👍👍👍👍👍🔃👈👍👍👍👍👉👎🔙👍👉👍👍👍👍👍👍👍👍👍👍👍🔃👈👍👍👍👍👍👍👍👍👍👍👉👎🔙👍👍👉👍👍👍👍👍👍👍👍👍👍🔃👈👍👍👍👍👍👍👍👍👍👍👉👎🔙👉👍👍👍👍👍👍👍👍🔃👈👍👍👍👍👉👎🔙👉👍👍👍👍👍👍👍👍👍👍👍👍👍👍🔃👈👍👍👍👍👍👍👍👉👎🔙👍👉👍👍👍👍👍👍👍👍👍👍🔃👈👍👍👍👍👍👍👍👍👍👍👉👎🔙👍👉👍👍👍👍👍👍👍👍👍👍🔃👈👍👍👍👍👍👍👍👍👍👍👉👎🔙👉👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍🔃👈👍👍👍👍👍👍👉👎🔙👉👍👍👍👍👍👍👍👍🔃👈👍👍👍👍👉👎🔙👍👉👍👍👍👍👍👍👍👍👍👍👍🔃👈👍👍👍👍👍👍👍👍👍👍👉👎🔙👉👍👍👍👍👍👍👍👍👍👍👍🔃👈👍👍👍👍👍👍👍👍👍👍👉👎🔙👉👍👍👍👍👍👍👍👍🔃👈👍👍👍👍👉👎🔙👍👍👉👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍🔃👈👍👍👍👍👍👍👉👎🔙👍👍👍👍👉👍👍👍👍👍👍👍👍👍👍🔃👈👍👍👍👍👍👍👍👍👍👍👉👎🔙👍👉👍👍👍👍👍👍👍👍👍👍🔃👈👍👍👍👍👍👍👍👍👍👍👉👎🔙👉👍👍👍👍👍👍👍👍🔃👈👍👍👍👍👉👎🔙👍👍👉👍👍👍👍👍👍👍👍👍👍👍👍👍🔃👈👍👍👍👍👍👍👍👍👍👉👎🔙👍👉👍👍👍👍👍👍👍👍👍👍👍👍🔃👈👍👍👍👍👍👍👍👍👉👎🔙👉👍👍👍👍👍👍👍👍👍👍👍👍🔃👈👍👍👍👍👍👍👍👍👍👉👎🔙👉👍👍👍👍👍👍👍👍👍👍👍👍🔃👈👍👍👍👍👍👍👍👍👍👉👎🔙👉👍👍👍👍👍🔃👈👍👍👉👎🔙👍👍👍👍👍👍👍👍👍👍👍👍👍👉👍👍👉👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍🔃👈👍👍👍👍👍👍👉👎🔙👍👉👍👍👍👍👍👍👍👍👍👍👍👍🔃👈👍👍👍👍👍👍👍👍👉👎🔙👍👍👍👉👍👍👍👍👍👍👍👍👍👍👍👍👍🔃👈👍👍👍👍👍👍👍👍👉👎🔙👍👉👍👍👍👍👍👍👍👍👍👍🔃👈👍👍👍👍👍👍👍👍👍👍👉👎🔙👉👍👍👍👍👍👍👍👍🔃👈👍👍👍👍👉👎🔙👍👉👍👍👍👍👍👍👍👍👍👍👍🔃👈👍👍👍👍👍👍👍👍👍👍👉👎🔙👉👍👍👍👍👍👍👍👍👍👍👍🔃👈👍👍👍👍👍👍👍👍👍👍👉👎🔙👍👉👍👍👍👍👍👍👍👍👍👍🔃👈👍👍👍👍👍👍👍👍👍👍👉👎🔙👉👍👍👍👍👍👍👍👍🔃👈👍👍👍👍👉👎🔙👉👍👍👍👍👍👍👍👍👍👍🔃👈👍👍👍👍👍👍👍👍👍👍👉👎🔙👍👉👍👍👍👍👍👍👍👍👍👍👍🔃👈👍👍👍👍👍👍👍👍👍👍👉👎🔙👍👍👉👍👍👍👍👍👍👍👍👍👍👍👍👍🔃👈👍👍👍👍👍👍👍👍👍👉👎🔙👉👍👍👍👍👍👍👍👍👍👍👍🔃👈👍👍👍👍👍👍👍👍👍👍👉👎🔙👉👍👍👍👍👍👍👍👍🔃👈👍👍👍👍👉👎🔙👍👉👍👍👍👍👍👍👍👍👍👍👍👍🔃👈👍👍👍👍👍👍👍👍👉👎🔙👉👍👍👍👍👍👍👍👍👍👍👍🔃👈👍👍👍👍👍👍👍👍👍👍👉👎🔙👉👍👍👍👍👍👍👍👍👍👍🔃👈👍👍👍👍👍👍👍👍👍👍👉👎🔙👉👍👍👍👍👍👍👍👍🔃👈👍👍👍👍👉👎🔙👍👍👉👍👍👍👍👍👍👍👍👍👍👍🔃👈👍👍👍👍👍👍👍👍👍👍👉👎🔙👍👉👍👍👍👍👍👍👍👍👍👍👍👍🔃👈👍👍👍👍👍👍👍👍👉👎🔙👍👉👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍🔃👈👍👍👍👍👍👍👉👎🔙👍👉👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍🔃👈👍👍👍👍👍👍👉👎🔙👉👍👍👍👍👍👍👍👍🔃👈👍👍👍👍👉👎🔙👍👉👍👍👍👍👍👍👍👍👍👍👍👍👍🔃👈👍👍👍👍👍👍👍👍👉👎🔙👍👍👉👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍🔃👈👍👍👍👍👍👍👉👎🔙👉👍👍👍👍👍👍👍👍🔃👈👍👍👍👍👉👎🔙👍👉👍👍👍👍👍👍👍👍👍👍👍👍🔃👈👍👍👍👍👍👍👍👍👉👎🔙👉👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍🔃👈👍👍👍👍👍👍👉👎🔙👍👉👍👍👍👍👍👍👍👍👍👍👍🔃👈👍👍👍👍👍👍👍👍👍👍👉👎🔙👉👍👍👍👍👍👍👍👍👍👍👍👍👍🔃👈👍👍👍👍👍👍👍👍👍👉👎🔙👉👍👍👍👍👍👍👍👍👍👍👍🔃👈👍👍👍👍👍👍👍👍👍👍👉👎🔙👉👍👍👍👍👍👍👍👍👍👍🔃👈👍👍👍👍👍👍👍👍👍👍👉👎🔙👉👍👍👍👍👍🔃👈👍👍👉👎🔙👍👍👍👍👍👍👍👍👍👍👍👍👍🔃👈🔙👉👉👉👉🔃👈👎🔃👍🔃👉🔙👈👈💻👉💻👈💻👉💻🔃👈🔙👉💻👉💻👉👉👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻🔃👈🔙👉💻👉💻👉👉👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉👉👉👉👉👉👉👉👉👉👉👉👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻🔃👈🔙👉👉👎👈💻👉💻👉👉👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻🔃👈🔙👉👉👉👎👎🔙👍🔃👉🔙👈👈💻👉💻👈💻👉💻🔃👈🔙👉💻👉💻👉👉👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻🔃👈🔙👉💻👉💻👉👉👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉👉👉👉👉👉👉👉👉👉👉👉👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻🔃👈🔙👉👎👉👍👍👍👍👍👍👍👍👍👉👍👍👍👍👍👍👍👍👍👈👈💻👉💻👉👉👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻🔃👈🔙👉👉👉👉👎🔙👍👈👎👎👎🔃👍🔃👉🔙👈👈💻👉💻👈💻👉💻🔃👈🔙👉👉💻👉👉👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻🔃👈🔙👉👉💻👉👉👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉👉👉👉👉👉👉👉👉👉👉👉👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻🔃👈🔙👉👉👎💻👉👉👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻🔃👈🔙👉👉👉👎👎🔙👍🔃👉🔙👈👈💻👉💻👈💻👉💻🔃👈🔙👉👉💻👉👉👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻🔃👈🔙👉👉💻👉👉👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉👉👉👉👉👉👉👉👉👉👉👉👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻🔃👈🔙👉👉👎👈👉💻👉👉👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👈👈👈👈💻🔃👉🔙👈👈💻👉💻👈💻👉💻🔃👈🔙👉👉💻👉👉👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻🔃👈🔙👉👉💻👉👉👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉👉👉👉👉👉👉👉👉👉👉👉👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉 👉 👉 👉 👉 👉 👉 👉 👉 👉 👉 👉 👉 👉 👉 👉 👉 👉 👉💻👉💻👈👈👈 👈 👈 👈 👈 👈 👈 👈 👈 👈 👈 👈 👈 👈💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻🔃👉🔙👈👈👈👈💻👈👈💻🔃👈🔙👉👉👉👉👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻👉💻
|
data/lib/mojikun/version.rb
CHANGED
data/test/interpreter_test.rb
CHANGED
@@ -65,8 +65,10 @@ class InterpreterTest < Minitest::Unit::TestCase
|
|
65
65
|
end
|
66
66
|
|
67
67
|
def test_eval_end_loop_node
|
68
|
-
# so we
|
68
|
+
# so we loop twice
|
69
69
|
ast = [Mojikun::ThumbsUpNode.new,
|
70
|
+
Mojikun::ThumbsUpNode.new,
|
71
|
+
|
70
72
|
Mojikun::LoopNode.new,
|
71
73
|
|
72
74
|
# move right once, increment, move left
|
@@ -76,6 +78,7 @@ class InterpreterTest < Minitest::Unit::TestCase
|
|
76
78
|
|
77
79
|
# decrement so we leave the loop
|
78
80
|
Mojikun::ThumbsDownNode.new,
|
81
|
+
|
79
82
|
Mojikun::EndLoopNode.new,
|
80
83
|
|
81
84
|
# move right so we can see the 1 we did in the loop
|
@@ -83,7 +86,7 @@ class InterpreterTest < Minitest::Unit::TestCase
|
|
83
86
|
]
|
84
87
|
@interpreter.evaluate(ast)
|
85
88
|
|
86
|
-
assert_equal
|
89
|
+
assert_equal 2, @interpreter.runtime.current_data
|
87
90
|
end
|
88
91
|
|
89
92
|
def test_loop_map
|
metadata
CHANGED
@@ -1,15 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mojikun
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
5
|
-
prerelease:
|
4
|
+
version: 1.0.1
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Steve Klabnik
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2013-04-08 00:00:00.000000000 Z
|
13
12
|
dependencies: []
|
14
13
|
description: A simple programming language, using emoji.
|
15
14
|
email:
|
@@ -25,6 +24,7 @@ files:
|
|
25
24
|
- README.md
|
26
25
|
- Rakefile
|
27
26
|
- bin/mojikun
|
27
|
+
- examples/99_bottles.moji
|
28
28
|
- examples/hello.moji
|
29
29
|
- lib/mojikun.rb
|
30
30
|
- lib/mojikun/display_node.rb
|
@@ -49,27 +49,26 @@ files:
|
|
49
49
|
- test/test_helper.rb
|
50
50
|
homepage: https://github.com/steveklabnik/mojikun
|
51
51
|
licenses: []
|
52
|
+
metadata: {}
|
52
53
|
post_install_message:
|
53
54
|
rdoc_options: []
|
54
55
|
require_paths:
|
55
56
|
- lib
|
56
57
|
required_ruby_version: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - '>='
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '0'
|
62
62
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
63
|
-
none: false
|
64
63
|
requirements:
|
65
|
-
- -
|
64
|
+
- - '>='
|
66
65
|
- !ruby/object:Gem::Version
|
67
66
|
version: '0'
|
68
67
|
requirements: []
|
69
68
|
rubyforge_project:
|
70
|
-
rubygems_version:
|
69
|
+
rubygems_version: 2.0.0
|
71
70
|
signing_key:
|
72
|
-
specification_version:
|
71
|
+
specification_version: 4
|
73
72
|
summary: A simple programming language, using emoji.
|
74
73
|
test_files:
|
75
74
|
- test/interpreter_test.rb
|