Don't use C extensions (JRuby compatibility).

This commit is contained in:
Jakob Rath 2013-11-26 18:20:02 +01:00 committed by Dan Hirsch
parent 049a64946b
commit 5ea0b727d0
10 changed files with 1 additions and 66 deletions

View file

@ -1,3 +1 @@
/tmp/
/lib/hammer/hammer_ext.bundle
/Gemfile.lock

View file

@ -2,9 +2,6 @@ source 'https://rubygems.org'
gemspec
gem 'rake'
gem 'rake-compiler'
group :test do
# ...
end

View file

@ -7,8 +7,6 @@ Ruby bindings for [hammer](https://github.com/UpstandingHackers/hammer), a parsi
* I called the gem `hammer-parser`, since there already is a [gem named `hammer`](https://rubygems.org/gems/hammer).
* C extension not really needed at the moment, if we don't mind hardcoding the token types in the ruby code.
## Development
@ -16,9 +14,7 @@ Ruby bindings for [hammer](https://github.com/UpstandingHackers/hammer), a parsi
2. Run `bundle install` to install dependencies.
3. Run `rake compile` to compile the C extension.
4. Run `irb -I ./lib -r hammer` to open `irb` with hammer loaded.
3. Run `irb -I ./lib -r hammer` to open `irb` with hammer loaded.
## Installation

View file

@ -1,8 +0,0 @@
require 'rake/extensiontask'
#spec = Gem::Specification.load('hammer-parser-ruby.gemspec')
#Rake::ExtensionTask.new('hammer_ext', spec)
Rake::ExtensionTask.new 'hammer_ext' do |ext|
ext.lib_dir = 'lib/hammer'
end

View file

@ -1,9 +0,0 @@
require 'mkmf'
extension_name = 'hammer_ext'
dir_config extension_name
abort 'ERROR: missing hammer library' unless have_library 'hammer'
abort 'ERROR: missing hammer.h' unless have_header 'hammer.h'
create_makefile extension_name

View file

@ -1,6 +0,0 @@
#include "token_type.h"
void Init_hammer_ext(void)
{
Init_token_type();
}

View file

@ -1,6 +0,0 @@
#ifndef HAMMER_EXT__H
#define HAMMER_EXT__H
// ...
#endif

View file

@ -1,20 +0,0 @@
#include <ruby.h>
#include <hammer.h>
#include "token_type.h"
#define DefineHammerInternalConst(name) rb_define_const(mHammerInternal, #name, INT2FIX(name));
void Init_token_type(void)
{
VALUE mHammer = rb_define_module("Hammer");
VALUE mHammerInternal = rb_define_module_under(mHammer, "Internal");
DefineHammerInternalConst(TT_NONE);
DefineHammerInternalConst(TT_BYTES);
DefineHammerInternalConst(TT_SINT);
DefineHammerInternalConst(TT_UINT);
DefineHammerInternalConst(TT_SEQUENCE);
DefineHammerInternalConst(TT_ERR);
DefineHammerInternalConst(TT_USER);
}

View file

@ -1,6 +0,0 @@
#ifndef HAMMER_EXT_TOKEN_TYPE__H
#define HAMMER_EXT_TOKEN_TYPE__H
void Init_token_type(void);
#endif

View file

@ -1,4 +1,3 @@
require 'hammer/hammer_ext'
require 'hammer/internal'
require 'hammer/parser'
require 'hammer/parser_builder'