reg 0.4.6
Sign up to get free protection for your applications and to get access to all the features.
- data/COPYING +510 -0
- data/README +404 -0
- data/assert.rb +31 -0
- data/calc.reg +73 -0
- data/forward_to.rb +49 -0
- data/item_thattest.rb +47 -0
- data/numberset.rb +200 -0
- data/parser.txt +188 -0
- data/philosophy.txt +72 -0
- data/reg.gemspec +27 -0
- data/reg.rb +33 -0
- data/regarray.rb +675 -0
- data/regarrayold.rb +477 -0
- data/regbackref.rb +126 -0
- data/regbind.rb +74 -0
- data/regcase.rb +78 -0
- data/regcore.rb +379 -0
- data/regdeferred.rb +134 -0
- data/reggrid.csv +2 -1
- data/regguide.txt +416 -0
- data/reghash.rb +318 -0
- data/regitem_that.rb +146 -0
- data/regknows.rb +63 -0
- data/reglogic.rb +195 -0
- data/reglookab.rb +94 -0
- data/regold.rb +75 -0
- data/regpath.rb +74 -0
- data/regposition.rb +68 -0
- data/regprogress.rb +1067 -0
- data/regreplace.rb +114 -0
- data/regsugar.rb +230 -0
- data/regtest.rb +1075 -0
- data/regvar.rb +76 -0
- data/trace.rb +45 -0
- metadata +83 -0
data/regvar.rb
ADDED
@@ -0,0 +1,76 @@
|
|
1
|
+
=begin copyright
|
2
|
+
reg - the ruby extended grammar
|
3
|
+
Copyright (C) 2005 Caleb Clausen
|
4
|
+
|
5
|
+
This library is free software; you can redistribute it and/or
|
6
|
+
modify it under the terms of the GNU Lesser General Public
|
7
|
+
License as published by the Free Software Foundation; either
|
8
|
+
version 2.1 of the License, or (at your option) any later version.
|
9
|
+
|
10
|
+
This library is distributed in the hope that it will be useful,
|
11
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
13
|
+
Lesser General Public License for more details.
|
14
|
+
|
15
|
+
You should have received a copy of the GNU Lesser General Public
|
16
|
+
License along with this library; if not, write to the Free Software
|
17
|
+
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
18
|
+
=end
|
19
|
+
|
20
|
+
module Reg
|
21
|
+
class Variable
|
22
|
+
include Reg,Multiple
|
23
|
+
|
24
|
+
def set!(areg)
|
25
|
+
#huh 'something like this...'
|
26
|
+
@to=areg
|
27
|
+
class <<self
|
28
|
+
#(there's a library for this kind of stuff...)
|
29
|
+
(instance_methods - ::Object.instance_methods).each do |m|
|
30
|
+
undef_method m.to_sym
|
31
|
+
end
|
32
|
+
def respond_to? msg
|
33
|
+
@to.respond_to? msg or super
|
34
|
+
end
|
35
|
+
|
36
|
+
def methods
|
37
|
+
@to.methods + super
|
38
|
+
end
|
39
|
+
|
40
|
+
def method_missing msg, *args, &block
|
41
|
+
@to.send msg, *args, &block
|
42
|
+
end
|
43
|
+
end
|
44
|
+
self
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
class Constant < Variable
|
49
|
+
def set!(areg)
|
50
|
+
super
|
51
|
+
class <<self
|
52
|
+
def set!
|
53
|
+
raise 'constant can only be set once'
|
54
|
+
end
|
55
|
+
end
|
56
|
+
freeze
|
57
|
+
self
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
class <<self
|
62
|
+
#Reg::Variable convenience constructor.
|
63
|
+
def variable
|
64
|
+
::Reg::Variable.new
|
65
|
+
end
|
66
|
+
alias var variable
|
67
|
+
|
68
|
+
#Reg::Constant convenience constructor.
|
69
|
+
def constant
|
70
|
+
::Reg::Constant.new
|
71
|
+
end
|
72
|
+
alias const constant
|
73
|
+
end
|
74
|
+
|
75
|
+
|
76
|
+
end
|
data/trace.rb
ADDED
@@ -0,0 +1,45 @@
|
|
1
|
+
=begin copyright
|
2
|
+
reg - the ruby extended grammar
|
3
|
+
Copyright (C) 2005 Caleb Clausen
|
4
|
+
|
5
|
+
This library is free software; you can redistribute it and/or
|
6
|
+
modify it under the terms of the GNU Lesser General Public
|
7
|
+
License as published by the Free Software Foundation; either
|
8
|
+
version 2.1 of the License, or (at your option) any later version.
|
9
|
+
|
10
|
+
This library is distributed in the hope that it will be useful,
|
11
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
13
|
+
Lesser General Public License for more details.
|
14
|
+
|
15
|
+
You should have received a copy of the GNU Lesser General Public
|
16
|
+
License along with this library; if not, write to the Free Software
|
17
|
+
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
18
|
+
=end
|
19
|
+
|
20
|
+
|
21
|
+
module Kernel
|
22
|
+
private
|
23
|
+
def trace(traces)
|
24
|
+
if Proc===traces
|
25
|
+
handler=traces
|
26
|
+
traces=nil
|
27
|
+
else
|
28
|
+
handler=proc { |*stuff|
|
29
|
+
traces<<[stuff<<Thread.current] unless
|
30
|
+
%r'[/\\:]trace\.rb$'===file
|
31
|
+
}
|
32
|
+
end
|
33
|
+
|
34
|
+
#what does it return? inquiring minds want to know -- just the proc it was given!
|
35
|
+
set_trace_func handler
|
36
|
+
#there's no appearent way to get the previous trace handler... phooey
|
37
|
+
begin
|
38
|
+
result=yield
|
39
|
+
ensure
|
40
|
+
#attempt to remain debuggable while restoring the old trace func
|
41
|
+
set_trace_func((defined? DEBUGGER__ and (DEBUGGER__.context.method:trace_func).to_proc))
|
42
|
+
end
|
43
|
+
result
|
44
|
+
end
|
45
|
+
end
|
metadata
ADDED
@@ -0,0 +1,83 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
rubygems_version: 0.8.11
|
3
|
+
specification_version: 1
|
4
|
+
name: reg
|
5
|
+
version: !ruby/object:Gem::Version
|
6
|
+
version: 0.4.6
|
7
|
+
date: 2005-11-18 00:00:00 -08:00
|
8
|
+
summary: The reg pattern matching/replacement language
|
9
|
+
require_paths:
|
10
|
+
- "."
|
11
|
+
email:
|
12
|
+
homepage:
|
13
|
+
rubyforge_project: reg
|
14
|
+
description:
|
15
|
+
autorequire:
|
16
|
+
default_executable:
|
17
|
+
bindir: bin
|
18
|
+
has_rdoc: false
|
19
|
+
required_ruby_version: !ruby/object:Gem::Version::Requirement
|
20
|
+
requirements:
|
21
|
+
-
|
22
|
+
- ">"
|
23
|
+
- !ruby/object:Gem::Version
|
24
|
+
version: 0.0.0
|
25
|
+
version:
|
26
|
+
platform: ruby
|
27
|
+
signing_key:
|
28
|
+
cert_chain:
|
29
|
+
authors:
|
30
|
+
- Caleb Clausen
|
31
|
+
files:
|
32
|
+
- item_thattest.rb
|
33
|
+
- regbackref.rb
|
34
|
+
- regknows.rb
|
35
|
+
- regtest.rb
|
36
|
+
- numberset.rb
|
37
|
+
- regbind.rb
|
38
|
+
- reglogic.rb
|
39
|
+
- regvar.rb
|
40
|
+
- COPYING
|
41
|
+
- parser.txt
|
42
|
+
- regcase.rb
|
43
|
+
- reglookab.rb
|
44
|
+
- README
|
45
|
+
- regcore.rb
|
46
|
+
- regold.rb
|
47
|
+
- reg.gemspec
|
48
|
+
- reggrid.csv
|
49
|
+
- assert.rb
|
50
|
+
- philosophy.txt
|
51
|
+
- regdeferred.rb
|
52
|
+
- regpath.rb
|
53
|
+
- regposition.rb
|
54
|
+
- trace.rb
|
55
|
+
- calc.reg
|
56
|
+
- reg.rb
|
57
|
+
- regguide.txt
|
58
|
+
- regprogress.rb
|
59
|
+
- reghash.rb
|
60
|
+
- regreplace.rb
|
61
|
+
- forward_to.rb
|
62
|
+
- regarray.rb
|
63
|
+
- regarrayold.rb
|
64
|
+
- regitem_that.rb
|
65
|
+
- regsugar.rb
|
66
|
+
test_files: []
|
67
|
+
rdoc_options: []
|
68
|
+
extra_rdoc_files: []
|
69
|
+
executables: []
|
70
|
+
extensions: []
|
71
|
+
requirements:
|
72
|
+
- none
|
73
|
+
dependencies:
|
74
|
+
- !ruby/object:Gem::Dependency
|
75
|
+
name: cursor
|
76
|
+
version_requirement:
|
77
|
+
version_requirements: !ruby/object:Gem::Version::Requirement
|
78
|
+
requirements:
|
79
|
+
-
|
80
|
+
- ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: "0.9"
|
83
|
+
version:
|