violet 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -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