violet 0.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.
@@ -0,0 +1,36 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ module Violet
4
+ require "violet"
5
+ require "test_assertions"
6
+ require "minitest/unit"
7
+
8
+ # Create the lexer and parser unit test runners.
9
+ LexerTests = Class.new(MiniTest::Unit::TestCase)
10
+ ParserTests = Class.new(MiniTest::Unit::TestCase)
11
+
12
+ # Define each test case programmatically.
13
+ TEST_ASSERTIONS.each_with_index do |test, index|
14
+ # Extract the expected number of tokens.
15
+ expected = test.delete_at(1)
16
+ # Extract the message and program.
17
+ program, message = test.shift, test.pop
18
+ suffix = "#{index}_#{message.gsub(/\W+/, '_').downcase}"
19
+
20
+ # Create the parser unit test.
21
+ ParserTests.send(:define_method, "test_parser_#{suffix}") do
22
+ anticipated = expected.is_a?(Array) ? expected[1] : expected
23
+ assert_equal(anticipated, Violet::Parser.parse(program).size, message)
24
+ end
25
+
26
+ # Create the lexer unit test.
27
+ LexerTests.send(:define_method, "test_lexer_#{suffix}") do
28
+ anticipated = expected.is_a?(Array) ? expected.first : expected
29
+ expressions = test.first
30
+ # Ensure that the expected and actual token counts match.
31
+ assert_equal(anticipated, Violet::Lexer.new(program).tokens(*expressions).size, message)
32
+ end
33
+ end
34
+ end
35
+
36
+ MiniTest::Unit.autorun unless ENV["NORUN"]
metadata ADDED
@@ -0,0 +1,90 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: violet
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Peter van der Zee
9
+ - Kit Cambridge
10
+ autorequire:
11
+ bindir: bin
12
+ cert_chain: []
13
+ date: 2012-01-04 00:00:00.000000000 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: pal
17
+ requirement: &2151809920 !ruby/object:Gem::Requirement
18
+ none: false
19
+ requirements:
20
+ - - ~>
21
+ - !ruby/object:Gem::Version
22
+ version: 0.1.0
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: *2151809920
26
+ - !ruby/object:Gem::Dependency
27
+ name: minitest
28
+ requirement: &2151807300 !ruby/object:Gem::Requirement
29
+ none: false
30
+ requirements:
31
+ - - ~>
32
+ - !ruby/object:Gem::Version
33
+ version: 2.5.0
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: *2151807300
37
+ - !ruby/object:Gem::Dependency
38
+ name: rake
39
+ requirement: &2151806260 !ruby/object:Gem::Requirement
40
+ none: false
41
+ requirements:
42
+ - - ! '>='
43
+ - !ruby/object:Gem::Version
44
+ version: '0'
45
+ type: :development
46
+ prerelease: false
47
+ version_requirements: *2151806260
48
+ description: Violet is a JavaScript parser inspired by Peter van der Zee's ZeParser.
49
+ email:
50
+ - github@qfox.nl
51
+ - kitcambridge@me.com
52
+ executables:
53
+ - violet
54
+ extensions: []
55
+ extra_rdoc_files: []
56
+ files:
57
+ - bin/violet
58
+ - lib/violet/lexer.rb
59
+ - lib/violet/parser.rb
60
+ - lib/violet/token.rb
61
+ - lib/violet.rb
62
+ - test/test_assertions.rb
63
+ - test/test_violet.rb
64
+ homepage: http://kitcambridge.github.com/violet
65
+ licenses:
66
+ - MIT
67
+ post_install_message:
68
+ rdoc_options: []
69
+ require_paths:
70
+ - lib
71
+ required_ruby_version: !ruby/object:Gem::Requirement
72
+ none: false
73
+ requirements:
74
+ - - ! '>='
75
+ - !ruby/object:Gem::Version
76
+ version: 1.9.1
77
+ required_rubygems_version: !ruby/object:Gem::Requirement
78
+ none: false
79
+ requirements:
80
+ - - ! '>='
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ requirements: []
84
+ rubyforge_project:
85
+ rubygems_version: 1.8.11
86
+ signing_key:
87
+ specification_version: 3
88
+ summary: A JavaScript parser.
89
+ test_files:
90
+ - test/test_violet.rb