pegex 0.0.1 → 0.0.2

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.
data/.gemspec CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  GemSpec = Gem::Specification.new do |gem|
4
4
  gem.name = 'pegex'
5
- gem.version = '0.0.1'
5
+ gem.version = '0.0.2'
6
6
  gem.license = 'MIT'
7
7
  gem.required_ruby_version = '>= 1.9.1'
8
8
 
data/CHANGELOG.yaml CHANGED
@@ -1,3 +1,6 @@
1
+ - version: 0.0.2
2
+ date: Wed Dec 19 23:58:14 PST 2012
3
+ changes: Fixed a regex bug
1
4
  - version: 0.0.1
2
5
  date: Wed Dec 19 16:06:49 PST 2012
3
6
  changes: Ported from Pegex.pm CPAN module.
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- pegex (0.0.1)
4
+ pegex (0.0.2)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
data/ToDo ADDED
@@ -0,0 +1,7 @@
1
+ - Finish porting tests from perl
2
+ - Support grammar self compile:
3
+ > ruby -Ilib -rfoo/grammar -ecompile
4
+ - Use pegex-tml
5
+ - Use pegex-pgx
6
+
7
+ - Move optimize into pegex/grammar or pegex/compiler
data/lib/pegex.rb CHANGED
@@ -1,6 +1,4 @@
1
- module Pegex
2
- VERSION = '0.0.1'
3
- end
1
+ module Pegex;end
4
2
 
5
3
  require 'pegex/parser'
6
4
  require 'pegex/grammar'
@@ -10,9 +8,10 @@ def pegex grammar_text, receiver=nil
10
8
  require 'pegex/tree/wrap'
11
9
  receiver = Pegex::Tree::Wrap.new
12
10
  end
13
- receiver = receiver.new if receiver.class == Class
14
- return Pegex::Parser.new { |o|
15
- o.grammar = Pegex::Grammar.new {|g| g.text = grammar_text}
16
- o.receiver = receiver
17
- }
11
+ receiver = receiver.new \
12
+ if receiver.class == Class
13
+ return Pegex::Parser.new do |p|
14
+ p.grammar = Pegex::Grammar.new {|g| g.text = grammar_text}
15
+ p.receiver = receiver
16
+ end
18
17
  end
@@ -3,6 +3,10 @@ require 'pegex/pegex/grammar'
3
3
  require 'pegex/pegex/ast'
4
4
  require 'pegex/grammar/atoms'
5
5
 
6
+ # TODO:
7
+ # Regenerate #make_tree's (or just #tree's?) similar to this:
8
+ # ruby -rpp -rpegex/compiler -e 'pp Pegex::Compiler.new.compile(File.read "share/jsony.pgx").tree''
9
+
6
10
  class Pegex::Compiler
7
11
  attr_accessor :tree
8
12
 
data/lib/pegex/input.rb CHANGED
@@ -18,11 +18,8 @@ class Pegex::Input
18
18
  end
19
19
 
20
20
  def open
21
- if defined? @string
22
- @buffer = @string
23
- else
24
- fail "Pegex::Input::open failed. No source to open"
25
- end
21
+ @buffer = @string \
22
+ or fail "Pegex::Input::open failed. No source to open"
26
23
  @is_open = true
27
24
  end
28
25
 
@@ -113,7 +113,7 @@ class Pegex::Pegex::AST < Pegex::Tree
113
113
  def got_regular_expression got
114
114
  got.gsub! /\s*#.*\n/, ''
115
115
  got.gsub! /\s+/, ''
116
- got.gsub! /\ \:|\=|\!/, " ?#{$1}"
116
+ got.gsub! /\((\:|\=|\!)/, '(?\1'
117
117
  return {'.rgx' => got}
118
118
  end
119
119
 
data/test/optimize.rb ADDED
@@ -0,0 +1,18 @@
1
+ require './test/lib/test_pegex'
2
+
3
+ __END__
4
+ #TODO
5
+ TestML.require_or_skip 'psych'
6
+
7
+ TestML.run do |t|
8
+ t.eval '*grammar.compile.optimize.yaml.clean == *yaml'
9
+ end
10
+
11
+ TestML.data <<'...'
12
+ === Question Mark Expansion
13
+ --- grammar
14
+ a: /(:foo)/
15
+ --- yaml
16
+ a:
17
+ .rgx: /(?:foo)/
18
+ ...
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pegex
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -45,6 +45,7 @@ files:
45
45
  - LICENSE
46
46
  - README.rdoc
47
47
  - Rakefile
48
+ - ToDo
48
49
  - lib/pegex.rb
49
50
  - lib/pegex/compiler.rb
50
51
  - lib/pegex/grammar.rb
@@ -68,6 +69,7 @@ files:
68
69
  - test/lib/test_pegex.rb
69
70
  - test/lib/testast.rb
70
71
  - test/lib/xxx.rb
72
+ - test/optimize.rb
71
73
  - test/tree-pegex.tml
72
74
  - test/tree.rb
73
75
  - test/tree.tml