hipe-gorillagrammar 0.0.1beta

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,45 @@
1
+ #rake spec SPEC=spec/symbol_spec.rb
2
+ require 'hipe-gorillagrammar'
3
+ include Hipe::GorillaGrammar
4
+
5
+ describe NonTerminalSymbol, "with respect to reflection" do
6
+ before :each do
7
+ @g = Hipe.GorillaGrammar{
8
+ :a_string =~ "a string"
9
+ :a_regexp =~ /^[abc]+$/
10
+ :a_sequence =~ [:a_string, :a_regexp]
11
+ :a_range =~ (1..more).of(:a_string, :a_regexp)
12
+ :a_range2 =~ (1..2).of(:a_string, :a_regexp)
13
+ }
14
+ end
15
+
16
+ it "should allow adequate basic reflection" do
17
+ g = @g
18
+ g.size.should == 5
19
+ g[:a_string].should be_kind_of StringTerminal
20
+ g[:a_regexp].should be_kind_of RegexpTerminal
21
+ g[:a_sequence].should be_kind_of Sequence
22
+ g[:a_range].should be_kind_of RangeOf
23
+ end
24
+
25
+ it "should allow reflection and retrieval" do
26
+ g = @g
27
+ g[:a_sequence].should be_kind_of Sequence
28
+ g[:a_sequence].size.should == 2
29
+ g[:a_sequence][0].should be_kind_of SymbolReference
30
+ g[:a_sequence][1].should be_kind_of SymbolReference
31
+ g[:a_range].size.should == 2
32
+ g[:a_range][0].should be_kind_of SymbolReference
33
+ g[:a_range][1].should be_kind_of SymbolReference
34
+ g[:a_range].range.should == (1..Infinity)
35
+ end
36
+
37
+ it "should allow useful inspect() calls" do
38
+ g = @g
39
+ g[:a_string].inspect.should == %{:a_string"a string"(_)}
40
+ g[:a_regexp].inspect.should == %{:a_regexp/^[abc]+$/(_)}
41
+ g[:a_sequence].inspect.should == %{:a_sequence[::a_string, ::a_regexp]}
42
+ g[:a_range].inspect.should == %<:a_range(1 or more):(::a_string, ::a_regexp)>
43
+ g[:a_range2].inspect.should == %<:a_range2(1..2):(::a_string, ::a_regexp)>
44
+ end
45
+ end
metadata ADDED
@@ -0,0 +1,88 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: hipe-gorillagrammar
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1beta
5
+ platform: ruby
6
+ authors:
7
+ - Mark Meves
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2009-11-23 00:00:00 -05:00
13
+ default_executable:
14
+ dependencies: []
15
+
16
+ description: LR Parser Generator (?) under 500 LOC with 100*% C1 test coverage. No useful AST yet. No useful docs yet.
17
+ email: mark.meves@gmail.com
18
+ executables: []
19
+
20
+ extensions: []
21
+
22
+ extra_rdoc_files: []
23
+
24
+ files:
25
+ - .gitignore
26
+ - History.txt
27
+ - LICENSE.txt
28
+ - README.txt
29
+ - Rakefile
30
+ - Thorfile
31
+ - hipe-gorillagrammar.gemspec
32
+ - lib/hipe-gorillagrammar.rb
33
+ - lib/hipe-gorillagrammar/extensions/syntax.rb
34
+ - spec/argv.rb
35
+ - spec/extensions/syntax_spec.rb
36
+ - spec/grammar_spec.rb
37
+ - spec/helpers.rb
38
+ - spec/parse_tree_spec.rb
39
+ - spec/parsing_spec.rb
40
+ - spec/range_spec.rb
41
+ - spec/regexp_spec.rb
42
+ - spec/runtime_spec.rb
43
+ - spec/sequence_spec.rb
44
+ - spec/shorthand_spec.rb
45
+ - spec/spec.opts
46
+ - spec/symbol_reference_spec.rb
47
+ - spec/symbol_spec.rb
48
+ has_rdoc: yard
49
+ homepage: http://github.com/hipe/hipe-gorillagrammar
50
+ licenses: []
51
+
52
+ post_install_message:
53
+ rdoc_options: []
54
+
55
+ require_paths:
56
+ - lib
57
+ required_ruby_version: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: "0"
62
+ version:
63
+ required_rubygems_version: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - ">"
66
+ - !ruby/object:Gem::Version
67
+ version: 1.3.1
68
+ version:
69
+ requirements: []
70
+
71
+ rubyforge_project:
72
+ rubygems_version: 1.3.5
73
+ signing_key:
74
+ specification_version: 3
75
+ summary: "'beta attempt at a simple LR parser generator driven by DSL under 500LOC 100% C1 test coverage'"
76
+ test_files:
77
+ - spec/argv.rb
78
+ - spec/grammar_spec.rb
79
+ - spec/helpers.rb
80
+ - spec/parse_tree_spec.rb
81
+ - spec/parsing_spec.rb
82
+ - spec/range_spec.rb
83
+ - spec/regexp_spec.rb
84
+ - spec/runtime_spec.rb
85
+ - spec/sequence_spec.rb
86
+ - spec/shorthand_spec.rb
87
+ - spec/symbol_reference_spec.rb
88
+ - spec/symbol_spec.rb