pegex 0.0.1 → 0.0.2

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