Skip to content
Permalink
Browse files
It works!
Fixed a bug in the lexer where it wouldn't lex multiple statements :(

Added bin/mojikun, which runs the whole shebang.
  • Loading branch information
steveklabnik committed Dec 9, 2012
1 parent e737939 commit 4503c3cc2752bd8a5d354231a32ad3f869c61f95
Show file tree
Hide file tree
Showing 5 changed files with 28 additions and 8 deletions.
@@ -0,0 +1,14 @@
#!/usr/bin/env ruby

require 'mojikun'

source_code = ARGF.read.chomp

tokens = Mojikun::Lexer.new(source_code).call

ast = Mojikun::Parser.new(tokens).call

runtime = Mojikun::Runtime.new
interpreter = Mojikun::Interpreter.new(runtime)

interpreter.evaluate(ast)
@@ -1,5 +1,6 @@
require "mojikun/version"
require 'mojikun/version'

module Mojikun
# Your code goes here...
end
require 'mojikun/interpreter'
require 'mojikun/lexer'
require 'mojikun/parser'
require 'mojikun/runtime'
@@ -6,7 +6,7 @@ def initialize(source)

# omg easiest lexer ever
def call
@source.split
@source.split(//)
end
end
end
@@ -8,8 +8,8 @@ Gem::Specification.new do |gem|
gem.version = Mojikun::VERSION
gem.authors = ["Steve Klabnik"]
gem.email = ["steve@steveklabnik.com"]
gem.description = %q{TODO: Write a gem description}
gem.summary = %q{TODO: Write a gem summary}
gem.description = %q{}
gem.summary = %q{}
gem.homepage = ""

gem.files = `git ls-files`.split($/)
@@ -7,6 +7,11 @@
class TestLexer < MiniTest::Unit::TestCase
def test_lexing
source = "👍"
assert_equal Mojikun::Lexer.new(source).call, ["👍"]
assert_equal ["👍"], Mojikun::Lexer.new(source).call
end

def test_lexing
source = "👍👍"
assert_equal ["👍", "👍"], Mojikun::Lexer.new(source).call
end
end

0 comments on commit 4503c3c

Please sign in to comment.