bsm 0.1.0

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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 7267b067dccaa3052d254696bbd5071b6a65a6bbf3bcab98bdecba5bc717dbdd
4
+ data.tar.gz: 7b0f6874144a06c0a8a8240a6b854edb046f68cf7dff8086460c7124ba6b98af
5
+ SHA512:
6
+ metadata.gz: 4d89405622e5bd6829c86e1e021b3191d974f09c7f4d3c35e34d42479b5b6094178f1de67da63c2dea6cf0e847988f27e1bd896f97bf106a20843d64558b7a08
7
+ data.tar.gz: 83d68e3f8b5312cb0bcdc4b3d95f916de59c54d9f17bf478aa9cf6fbd364b1b9780d612c1db67f8e267edc4478cc292275a80a71a535efd241405cc98d577b54
data/Gemfile ADDED
@@ -0,0 +1,6 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in bsm.gemspec
4
+ gemspec
5
+
6
+ gem 'markspec', path: '/Users/davidsiaw/work/markspec'
@@ -0,0 +1,37 @@
1
+ lib = File.expand_path('lib', __dir__)
2
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
+ require 'bsm/version'
4
+
5
+ Gem::Specification.new do |spec|
6
+ spec.name = 'bsm'
7
+ spec.version = Bsm::VERSION
8
+ spec.authors = ['David Siaw']
9
+ spec.email = ['dsiaw@degica.com']
10
+
11
+ spec.summary = 'a short summary'
12
+ spec.description = 'a longer description'
13
+ spec.homepage = 'https://github.org/davidsiaw/bsm'
14
+ spec.license = 'MIT'
15
+
16
+ if spec.respond_to?(:metadata)
17
+ spec.metadata['allowed_push_host'] = 'https://rubygems.org'
18
+
19
+ spec.metadata['homepage_uri'] = spec.homepage
20
+ spec.metadata['source_code_uri'] = 'https://github.org/davidsiaw/bsm'
21
+ spec.metadata['changelog_uri'] = 'https://github.org/davidsiaw/bsm'
22
+ else
23
+ raise 'RubyGems 2.0 or newer is required to protect against ' \
24
+ 'public gem pushes.'
25
+ end
26
+
27
+ spec.files = Dir['{exe,lib}/**/*'] + %w[Gemfile bsm.gemspec]
28
+ spec.bindir = 'exe'
29
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
30
+ spec.require_paths = ['lib']
31
+ spec.extensions = %w[ext/bsm/internal/extconf.rb]
32
+
33
+ spec.add_development_dependency 'bundler', '~> 2.0'
34
+ spec.add_development_dependency 'rake', '~> 10.0'
35
+ spec.add_development_dependency 'rake-compiler'
36
+ spec.add_development_dependency 'rspec', '~> 3.0'
37
+ end
data/exe/bsm ADDED
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'bsm/bsm_parse'
4
+ require 'json'
5
+
6
+ ast = JSON.parse(Bsm::BsmParse::compile_to_ast(ARGF.read))
7
+
8
+ result = ''
9
+
10
+ ast['hexlits'].each do |chr|
11
+ result << chr['_token'].to_i(16)
12
+ end
13
+
14
+ print result
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'mkmf'
4
+
5
+ have_library('stdc++')
6
+ $CXXFLAGS = '-g -Wall -std=gnu++11'
7
+ create_makefile('bsm/internal')
@@ -0,0 +1,6 @@
1
+ require 'bsm/version'
2
+
3
+ module Bsm
4
+ class Error < StandardError; end
5
+ # Your code goes here...
6
+ end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'bsm/bsm_parse/internal'
4
+
5
+ module Bsm
6
+ # Parser module, wraps the native functions with some error handling
7
+ module BsmParse
8
+ def self.runtest(hello)
9
+ bsm_parse_test(hello)
10
+ end
11
+
12
+ def self.compile_to_ast(string)
13
+ return bsm_parse_compile_to_ast(string) if string.is_a? String
14
+
15
+ raise 'Invalid type given. This method only accepts strings'
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,3 @@
1
+ module Bsm
2
+ VERSION = '0.1.0'.freeze
3
+ end
metadata ADDED
@@ -0,0 +1,114 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: bsm
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - David Siaw
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2019-09-27 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '2.0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '2.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '10.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '10.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rake-compiler
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rspec
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '3.0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '3.0'
69
+ description: a longer description
70
+ email:
71
+ - dsiaw@degica.com
72
+ executables:
73
+ - bsm
74
+ extensions:
75
+ - ext/bsm/internal/extconf.rb
76
+ extra_rdoc_files: []
77
+ files:
78
+ - Gemfile
79
+ - bsm.gemspec
80
+ - exe/bsm
81
+ - ext/bsm/internal/extconf.rb
82
+ - lib/bsm.rb
83
+ - lib/bsm/bsm_parse.rb
84
+ - lib/bsm/bsm_parse/internal.bundle
85
+ - lib/bsm/version.rb
86
+ homepage: https://github.org/davidsiaw/bsm
87
+ licenses:
88
+ - MIT
89
+ metadata:
90
+ allowed_push_host: https://rubygems.org
91
+ homepage_uri: https://github.org/davidsiaw/bsm
92
+ source_code_uri: https://github.org/davidsiaw/bsm
93
+ changelog_uri: https://github.org/davidsiaw/bsm
94
+ post_install_message:
95
+ rdoc_options: []
96
+ require_paths:
97
+ - lib
98
+ required_ruby_version: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - ">="
101
+ - !ruby/object:Gem::Version
102
+ version: '0'
103
+ required_rubygems_version: !ruby/object:Gem::Requirement
104
+ requirements:
105
+ - - ">="
106
+ - !ruby/object:Gem::Version
107
+ version: '0'
108
+ requirements: []
109
+ rubyforge_project:
110
+ rubygems_version: 2.7.7
111
+ signing_key:
112
+ specification_version: 4
113
+ summary: a short summary
114
+ test_files: []