get thnads tests to work

This commit is contained in:
Torsten Ruger
2014-04-24 15:53:48 +03:00
parent d90ea3dd26
commit 601dc22b2e
11 changed files with 49 additions and 49 deletions

View File

@ -1,3 +1,9 @@
# parslet is assumed to be checked out at the same level as crystal for now
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', ".." , "parslet",'lib'))
require 'parslet'
require "asm/stack_instruction"
require "asm/arm_assembler"
require "elf/object_writer"
require 'vm/parser'

View File

@ -2,7 +2,7 @@ require 'java'
java_import java.lang.System
java_import java.io.PrintStream
module Thnad
module Vm
module Builtins
def add_builtins
public_static_method 'print', [], int, int do

View File

@ -1,13 +1,13 @@
require 'bitescript'
require 'thnad/parser'
require 'thnad/transform'
require 'thnad/builtins'
require 'vm/parser'
require 'vm/transform'
require 'vm/builtins'
module Thnad
module Vm
class Compiler
def initialize(filename)
@filename = filename
@classname = File.basename(@filename, '.thnad')
@classname = File.basename(@filename, '.vm')
end
def compile

View File

@ -1,4 +1,4 @@
module Thnad
module Vm
class Number < Struct.new :value
def eval(context, builder)
builder.ldc value

View File

@ -1,6 +1,5 @@
require 'parslet'
module Thnad
module Vm
class Parser < Parslet::Parser
rule(:name) { match('[a-z]').repeat(1).as(:name) >> space? }
rule(:number) { match('[0-9]').repeat(1).as(:number) >> space? }

View File

@ -1,7 +1,7 @@
require 'parslet'
require 'thnad/nodes'
require 'vm/nodes'
module Thnad
module Vm
class Transform < Parslet::Transform
rule(:number => simple(:value)) { Number.new(value.to_i) }
rule(:name => simple(:name)) { Name.new(name.to_s) }