rubyjs 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (144) hide show
  1. data/README +128 -0
  2. data/Rakefile +9 -0
  3. data/bin/rubyjs +140 -0
  4. data/examples/ex1/Rakefile +7 -0
  5. data/examples/ex1/ex1.js +771 -0
  6. data/examples/ex1/ex1.rb +42 -0
  7. data/examples/ex1/index.html +7 -0
  8. data/examples/hw/Rakefile +9 -0
  9. data/examples/hw/hw.js +635 -0
  10. data/examples/hw/hw.rb +7 -0
  11. data/examples/hw/index.html +7 -0
  12. data/patches/parse_tree.rb.diff +34 -0
  13. data/rubyjs.gemspec +24 -0
  14. data/src/rubyjs.rb +4 -0
  15. data/src/rubyjs/code_generator.rb +474 -0
  16. data/src/rubyjs/compiler.rb +2007 -0
  17. data/src/rubyjs/debug_name_generator.rb +75 -0
  18. data/src/rubyjs/encoder.rb +171 -0
  19. data/src/rubyjs/eval_into.rb +59 -0
  20. data/src/rubyjs/lib/core.rb +1008 -0
  21. data/src/rubyjs/lib/json.rb +101 -0
  22. data/src/rubyjs/model.rb +287 -0
  23. data/src/rubyjs/name_generator.rb +71 -0
  24. data/src/rwt/AbsolutePanel.rb +161 -0
  25. data/src/rwt/DOM.Konqueror.rb +89 -0
  26. data/src/rwt/DOM.Opera.rb +65 -0
  27. data/src/rwt/DOM.rb +1044 -0
  28. data/src/rwt/Event.Opera.rb +35 -0
  29. data/src/rwt/Event.rb +429 -0
  30. data/src/rwt/HTTPRequest.IE6.rb +5 -0
  31. data/src/rwt/HTTPRequest.rb +74 -0
  32. data/src/rwt/Label.rb +164 -0
  33. data/src/rwt/Panel.rb +90 -0
  34. data/src/rwt/RootPanel.rb +16 -0
  35. data/src/rwt/UIObject.rb +495 -0
  36. data/src/rwt/Widget.rb +193 -0
  37. data/src/rwt/ported-from/AbsolutePanel.java +158 -0
  38. data/src/rwt/ported-from/DOM.java +571 -0
  39. data/src/rwt/ported-from/DOMImpl.java +426 -0
  40. data/src/rwt/ported-from/DOMImplOpera.java +82 -0
  41. data/src/rwt/ported-from/DOMImplStandard.java +234 -0
  42. data/src/rwt/ported-from/HTTPRequest.java +81 -0
  43. data/src/rwt/ported-from/HTTPRequestImpl.java +103 -0
  44. data/src/rwt/ported-from/Label.java +163 -0
  45. data/src/rwt/ported-from/Panel.java +99 -0
  46. data/src/rwt/ported-from/UIObject.java +614 -0
  47. data/src/rwt/ported-from/Widget.java +221 -0
  48. data/test/benchmark/bm_call_conv1.js +16 -0
  49. data/test/benchmark/bm_call_conv2.js +14 -0
  50. data/test/benchmark/bm_var_acc1.js +13 -0
  51. data/test/benchmark/bm_var_acc2.js +11 -0
  52. data/test/benchmark/bm_vm1_block.js +15 -0
  53. data/test/benchmark/bm_vm1_block.rb +15 -0
  54. data/test/benchmark/bm_vm1_const.js +13 -0
  55. data/test/benchmark/bm_vm1_const.rb +13 -0
  56. data/test/benchmark/bm_vm1_ensure.js +17 -0
  57. data/test/benchmark/bm_vm1_ensure.rb +15 -0
  58. data/test/benchmark/common.js +4 -0
  59. data/test/benchmark/common.rb +5 -0
  60. data/test/benchmark/params.yaml +7 -0
  61. data/test/browser.test.html +4059 -0
  62. data/test/browser.test.js +3225 -0
  63. data/test/common.Browser.rb +13 -0
  64. data/test/common.rb +8 -0
  65. data/test/gen_browser_test_suite.rb +129 -0
  66. data/test/gen_test_suite.rb +41 -0
  67. data/test/run_benchs.rb +58 -0
  68. data/test/run_tests.rb +22 -0
  69. data/test/test_args.rb +24 -0
  70. data/test/test_array.rb +26 -0
  71. data/test/test_case.rb +35 -0
  72. data/test/test_class.rb +55 -0
  73. data/test/test_eql.rb +9 -0
  74. data/test/test_exception.rb +61 -0
  75. data/test/test_expr.rb +12 -0
  76. data/test/test_hash.rb +29 -0
  77. data/test/test_if.rb +28 -0
  78. data/test/test_inspect.rb +10 -0
  79. data/test/test_lebewesen.rb +39 -0
  80. data/test/test_massign.rb +66 -0
  81. data/test/test_new.rb +12 -0
  82. data/test/test_range.rb +53 -0
  83. data/test/test_regexp.rb +22 -0
  84. data/test/test_send.rb +65 -0
  85. data/test/test_simple_output.rb +5 -0
  86. data/test/test_splat.rb +21 -0
  87. data/test/test_string.rb +51 -0
  88. data/test/test_yield.rb +152 -0
  89. data/utils/js/Makefile +9 -0
  90. data/utils/js/RunScript.class +0 -0
  91. data/utils/js/RunScript.java +73 -0
  92. data/utils/js/js.jar +0 -0
  93. data/utils/js/run.sh +3 -0
  94. data/utils/jsc/Makefile +7 -0
  95. data/utils/jsc/README +3 -0
  96. data/utils/jsc/RunScript.c +93 -0
  97. data/utils/jsc/run.sh +15 -0
  98. data/utils/yuicompressor/README +1 -0
  99. data/utils/yuicompressor/yuicompressor-2.2.5.jar +0 -0
  100. data/vendor/ParseTree-1.7.1-patched/History.txt +217 -0
  101. data/vendor/ParseTree-1.7.1-patched/Manifest.txt +22 -0
  102. data/vendor/ParseTree-1.7.1-patched/README.txt +110 -0
  103. data/vendor/ParseTree-1.7.1-patched/Rakefile +41 -0
  104. data/vendor/ParseTree-1.7.1-patched/bin/parse_tree_abc +89 -0
  105. data/vendor/ParseTree-1.7.1-patched/bin/parse_tree_audit +28 -0
  106. data/vendor/ParseTree-1.7.1-patched/bin/parse_tree_deps +62 -0
  107. data/vendor/ParseTree-1.7.1-patched/bin/parse_tree_show +49 -0
  108. data/vendor/ParseTree-1.7.1-patched/demo/printer.rb +20 -0
  109. data/vendor/ParseTree-1.7.1-patched/lib/composite_sexp_processor.rb +49 -0
  110. data/vendor/ParseTree-1.7.1-patched/lib/parse_tree.rb +1013 -0
  111. data/vendor/ParseTree-1.7.1-patched/lib/sexp.rb +235 -0
  112. data/vendor/ParseTree-1.7.1-patched/lib/sexp_processor.rb +330 -0
  113. data/vendor/ParseTree-1.7.1-patched/lib/unique.rb +15 -0
  114. data/vendor/ParseTree-1.7.1-patched/test/pt_testcase.rb +1221 -0
  115. data/vendor/ParseTree-1.7.1-patched/test/something.rb +53 -0
  116. data/vendor/ParseTree-1.7.1-patched/test/test_all.rb +13 -0
  117. data/vendor/ParseTree-1.7.1-patched/test/test_composite_sexp_processor.rb +69 -0
  118. data/vendor/ParseTree-1.7.1-patched/test/test_parse_tree.rb +216 -0
  119. data/vendor/ParseTree-1.7.1-patched/test/test_sexp.rb +291 -0
  120. data/vendor/ParseTree-1.7.1-patched/test/test_sexp_processor.rb +244 -0
  121. data/vendor/ParseTree-1.7.1-patched/validate.sh +31 -0
  122. data/vendor/ParseTree-1.7.1/History.txt +217 -0
  123. data/vendor/ParseTree-1.7.1/Manifest.txt +22 -0
  124. data/vendor/ParseTree-1.7.1/README.txt +110 -0
  125. data/vendor/ParseTree-1.7.1/Rakefile +41 -0
  126. data/vendor/ParseTree-1.7.1/bin/parse_tree_abc +89 -0
  127. data/vendor/ParseTree-1.7.1/bin/parse_tree_audit +28 -0
  128. data/vendor/ParseTree-1.7.1/bin/parse_tree_deps +62 -0
  129. data/vendor/ParseTree-1.7.1/bin/parse_tree_show +49 -0
  130. data/vendor/ParseTree-1.7.1/demo/printer.rb +20 -0
  131. data/vendor/ParseTree-1.7.1/lib/composite_sexp_processor.rb +49 -0
  132. data/vendor/ParseTree-1.7.1/lib/parse_tree.rb +1004 -0
  133. data/vendor/ParseTree-1.7.1/lib/sexp.rb +235 -0
  134. data/vendor/ParseTree-1.7.1/lib/sexp_processor.rb +330 -0
  135. data/vendor/ParseTree-1.7.1/lib/unique.rb +15 -0
  136. data/vendor/ParseTree-1.7.1/test/pt_testcase.rb +1221 -0
  137. data/vendor/ParseTree-1.7.1/test/something.rb +53 -0
  138. data/vendor/ParseTree-1.7.1/test/test_all.rb +13 -0
  139. data/vendor/ParseTree-1.7.1/test/test_composite_sexp_processor.rb +69 -0
  140. data/vendor/ParseTree-1.7.1/test/test_parse_tree.rb +216 -0
  141. data/vendor/ParseTree-1.7.1/test/test_sexp.rb +291 -0
  142. data/vendor/ParseTree-1.7.1/test/test_sexp_processor.rb +244 -0
  143. data/vendor/ParseTree-1.7.1/validate.sh +31 -0
  144. metadata +230 -0
data/utils/js/Makefile ADDED
@@ -0,0 +1,9 @@
1
+ JAVA=java
2
+ JAVAC=javac
3
+ CP=./js.jar:.
4
+
5
+ run: RunScript.class
6
+ ${JAVA} -cp ${CP} RunScript
7
+
8
+ RunScript.class: RunScript.java
9
+ ${JAVAC} -cp ${CP} RunScript.java
Binary file
@@ -0,0 +1,73 @@
1
+ /* -*- Mode: java; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
2
+ *
3
+ * ***** BEGIN LICENSE BLOCK *****
4
+ * Version: MPL 1.1/GPL 2.0
5
+ *
6
+ * The contents of this file are subject to the Mozilla Public License Version
7
+ * 1.1 (the "License"); you may not use this file except in compliance with
8
+ * the License. You may obtain a copy of the License at
9
+ * http://www.mozilla.org/MPL/
10
+ *
11
+ * Software distributed under the License is distributed on an "AS IS" basis,
12
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
13
+ * for the specific language governing rights and limitations under the
14
+ * License.
15
+ *
16
+ * The Original Code is Rhino code, released
17
+ * May 6, 1998.
18
+ *
19
+ * The Initial Developer of the Original Code is
20
+ * Netscape Communications Corporation.
21
+ * Portions created by the Initial Developer are Copyright (C) 1999
22
+ * the Initial Developer. All Rights Reserved.
23
+ *
24
+ * Contributor(s):
25
+ *
26
+ * Modified by Michael Neumann.
27
+ *
28
+ * Alternatively, the contents of this file may be used under the terms of
29
+ * the GNU General Public License Version 2 or later (the "GPL"), in which
30
+ * case the provisions of the GPL are applicable instead of those above. If
31
+ * you wish to allow use of your version of this file only under the terms of
32
+ * the GPL and not to allow others to use your version of this file under the
33
+ * MPL, indicate your decision by deleting the provisions above and replacing
34
+ * them with the notice and other provisions required by the GPL. If you do
35
+ * not delete the provisions above, a recipient may use your version of this
36
+ * file under either the MPL or the GPL.
37
+ *
38
+ * ***** END LICENSE BLOCK ***** */
39
+
40
+ import org.mozilla.javascript.*;
41
+ import java.io.*;
42
+
43
+ public class RunScript {
44
+ public static void main(String args[]) throws IOException
45
+ {
46
+ Context cx = Context.enter();
47
+ try {
48
+ Scriptable scope = cx.initStandardObjects();
49
+
50
+ // Add a global variable "out" that is a JavaScript reflection
51
+ // of System.out
52
+ Object jsOut = Context.javaToJS(System.out, scope);
53
+ ScriptableObject.putProperty(scope, "out", jsOut);
54
+
55
+ // Read script from stdio into s
56
+ String s = "";
57
+ String line;
58
+ s += "function println(o) { out.println(o); };\n";
59
+ BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
60
+ while ( (line = in.readLine()) != null ) {
61
+ s += line;
62
+ s += "\n";
63
+ }
64
+
65
+ Object result = cx.evaluateString(scope, s, "<cmd>", 1, null);
66
+ //System.err.println(cx.toString(result));
67
+ } finally {
68
+ Context.exit();
69
+ }
70
+ }
71
+
72
+ }
73
+
data/utils/js/js.jar ADDED
Binary file
data/utils/js/run.sh ADDED
@@ -0,0 +1,3 @@
1
+ #!/bin/sh
2
+ base=`pwd`/`dirname $0`/../..
3
+ java -cp $base/utils/js/js.jar:$base/utils/js RunScript
@@ -0,0 +1,7 @@
1
+ CC=cc
2
+ CFLAGS=-I/usr/local/include
3
+ LDFLAGS=-L/usr/local/lib
4
+ LIBS=-ljs -lm -lpthread
5
+
6
+ RunScript: RunScript.c
7
+ ${CC} ${CFLAGS} ${LDFLAGS} ${LIBS} RunScript.c -o RunScript
data/utils/jsc/README ADDED
@@ -0,0 +1,3 @@
1
+ Requires Spidermonkey
2
+
3
+ http://www.mozilla.org/js/spidermonkey/
@@ -0,0 +1,93 @@
1
+ /*
2
+ *
3
+ * Code mostly taken from:
4
+ *
5
+ * http://www.mozilla.org/js/spidermonkey/tutorial.html
6
+ */
7
+
8
+ #include <stdio.h>
9
+ #include <stdlib.h>
10
+ #include <string.h>
11
+
12
+ #include <fcntl.h>
13
+ #include <unistd.h>
14
+
15
+ #define XP_UNIX
16
+ #include "jsapi.h"
17
+
18
+ static JSBool
19
+ println(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
20
+ {
21
+ /*
22
+ * Look in argv for argc actual parameters, set *rval to return a
23
+ * value to the caller.
24
+ */
25
+ if (argc == 1)
26
+ {
27
+ JSString *str = JS_ValueToString(cx, argv[0]);
28
+ printf("%s\n", JS_GetStringBytes(str));
29
+ *rval = JS_TRUE;
30
+ }
31
+ else
32
+ {
33
+ *rval = JS_FALSE;
34
+ }
35
+ }
36
+
37
+ int main(int argc, char** argv)
38
+ {
39
+ JSRuntime *rt;
40
+ JSContext *cx;
41
+ JSObject *global;
42
+ JSClass global_class = {
43
+ "global",0,
44
+ JS_PropertyStub,JS_PropertyStub,JS_PropertyStub,JS_PropertyStub,
45
+ JS_EnumerateStub,JS_ResolveStub,JS_ConvertStub,JS_FinalizeStub
46
+ };
47
+
48
+ /*
49
+ * You always need:
50
+ * a runtime per process,
51
+ * a context per thread,
52
+ * a global object per context,
53
+ * standard classes (e.g. Date).
54
+ */
55
+ rt = JS_NewRuntime(0x100000);
56
+ cx = JS_NewContext(rt, 0x1000);
57
+ global = JS_NewObject(cx, &global_class, NULL, NULL);
58
+ JS_InitStandardClasses(cx, global);
59
+
60
+ /*
61
+ * Read in file
62
+ */
63
+
64
+ if (argc != 2) return -1;
65
+
66
+ char *filename = argv[1];
67
+
68
+ char *script;
69
+ int len;
70
+ int fh;
71
+
72
+ fh = open(filename, O_RDONLY);
73
+ if (fh < 0) return -2;
74
+
75
+ len = lseek(fh, 0, SEEK_END);
76
+ if (len < 0) return -3;
77
+ lseek(fh, 0, SEEK_SET);
78
+
79
+ script = malloc(len+1);
80
+ read(fh, script, len);
81
+
82
+ close(fh);
83
+ script[len] = 0;
84
+
85
+ jsval rval;
86
+ JSString *str;
87
+ JSBool ok;
88
+
89
+ ok = JS_DefineFunction(cx, global, "println", println, 1, 0);
90
+
91
+ ok = JS_EvaluateScript(cx, global, script, len,
92
+ filename, 0, &rval);
93
+ }
data/utils/jsc/run.sh ADDED
@@ -0,0 +1,15 @@
1
+ #!/bin/sh
2
+ base=`pwd`/`dirname $0`/../..
3
+ file=`mktemp /tmp/jsXXXX`
4
+ cat > "$file"
5
+ if [ -x "$base/utils/jsc/RunScript" ]; then
6
+ else
7
+ p=`pwd`
8
+ cd "$base/utils/jsc"
9
+ make 1>/dev/null 2>/dev/null
10
+ cd $p
11
+ fi
12
+
13
+ $base/utils/jsc/RunScript "$file"
14
+
15
+ rm -f "$file"
@@ -0,0 +1 @@
1
+ URL: http://www.julienlecomte.net/yuicompressor/
@@ -0,0 +1,217 @@
1
+ === 1.7.1 / 2007-06-05
2
+
3
+ * 3 minor enhancements:
4
+ * Added begin/rescue/ensure test.
5
+ * Added block_pass_args_and_splat.
6
+ * Allow methods to be pulled from unparsed files.
7
+ * 1 bug fix:
8
+ * Compatibility fixed across 1.8.
9
+
10
+ === 1.7.0 / 2007-02-13
11
+
12
+ * 2 major enhancements:
13
+ * rewrite extracted and intended to be run before (or in front of) process.
14
+ * rewrite is now recursive as well, so children rewritings should be
15
+ done independently of their parents. This should make complex
16
+ rewriting layers much cleaner and allow me to eventually collect
17
+ and publish a single "standard" rewriting layer.
18
+ * 1 minor enhancement:
19
+ * Iters are now {} if short and one line. YAY!
20
+ * 1 bug fix:
21
+ * Added test cases brought out by ruby2ruby/heckle.
22
+
23
+ === 1.6.4 / 2007-01-15
24
+
25
+ * 1 minor enhancement:
26
+ * Switched short if/unless to 1 line expressions.
27
+ * 2 bug fixes:
28
+ * Fixed the nested case/when bug. YAY!
29
+ * Added dasgn_curr and defn_rescue test cases.
30
+
31
+ === 1.6.3 / 2006-12-20
32
+
33
+ * 1 bug fix:
34
+ * ParseTree::translate was trying to translate inherited class methods.
35
+
36
+ === 1.6.2 / 2006-12-19
37
+
38
+ * 2 minor enhancements:
39
+ * ParseTree::translate can now take :"self.method".
40
+ * Improved PT tests for [], []=
41
+ * 1 bug fixes:
42
+ * Fixed a bug in ParseTree where cases w/o exprs were malformed.
43
+
44
+ === 1.6.1 / 2006-11-11
45
+
46
+ * 2 minor enhancements:
47
+ * Have been going insane on the tests, expect more soon.
48
+ * Cleaned up using named nodes, now do: args = exp.scope.block.args(:delete).
49
+ * 2 bug fixes:
50
+ * Fixed #parse_tree to return superclass in :const node.
51
+ * Fixed while/until with no bodies (now nil).
52
+
53
+ === 1.6.0 / 2006-10-11
54
+
55
+ * 2 major enhancements:
56
+ * PTTC just got a major enema. 2k lines o' diff.
57
+ * All in all, removed 829 lines of code and made it a lot more solid.
58
+ * 6 minor enhancements:
59
+ * Added sort rake task.
60
+ * Added a basic front-end method to ParseTree: translate, takes
61
+ string or Class and optional method name.
62
+ * Class now has nil for unspecified superclass. No way to tell if it
63
+ is being reopened.
64
+ * SexpProcessor's unsupported array now defaults to all the internal nodes.
65
+ * Added Unique from ruby2c project.
66
+ * something.rb got slimmed down to near nothing. About to be retired.
67
+ * 3 bug fixes:
68
+ * Added changeset to Hoe spec.
69
+ * Fixed up description to use paragraphs_of.
70
+ * Fixed op_asgn1, alias, undef, dsym, match.
71
+
72
+ === 1.5.0 / 2006-09-24
73
+
74
+ * 5 minor enhancements:
75
+ * Added parse_tree_audit.
76
+ * Added reporting of unsupported nodes that have processors.
77
+ * YAY! class method support! generated as :"self.blah"
78
+ * Add parse_tree_for_string.
79
+ * Converted Rakefile+gemspec to Hoe-based Rakefile.
80
+ * 6 bug fixes:
81
+ * Did some preliminary work on 1.9 compatibility.
82
+ * Fixed tests for some changes/clarifications.
83
+ * Fixed resbody: should have nil exceptions list when no exception rescued.
84
+ * Fixed op_asgn1 and op_asgn2.
85
+ * Fixed incompatibility with new inline changes.
86
+ * Fixed VALUE decl in parse_tree.rb
87
+
88
+ === 1.4.1 / 2006-04-10
89
+
90
+ * 4 minor enhancements:
91
+ * parse_tree_show -f output is much cleaner now.
92
+ * ParseTree does a much more elegant job of handling different versions.
93
+ * ParseTree now has all node names in ParseTree::NODE_NAMES.
94
+ * ParseTree now raises exceptions instead of freakin'.
95
+ * 3 bug fixes:
96
+ * Used multiruby to test against 1.8.2-4, 1.8 cvs, and 1.9 cvs.
97
+ * Fixed incompatibilites introduced in ruby 1.8.4.
98
+ * Fixed some incompatibilites introduced in ruby 1.9.x.
99
+
100
+ === 1.4.0 / 2005-10-15
101
+
102
+ * 5 minor enhancements
103
+ * Improved Makefile's install rule, uninstall, and added FILTER to all.
104
+ * Fixed minor issues w/ Makefile.
105
+ * Added -I=loadpath to parse_tree_abc.
106
+ * Added *args support for methods.
107
+ * Split out sexp to its own file.
108
+ * 2 bug fixes
109
+ * Fixed weird bug in parse_tree_deps where sort was failing on deps.
110
+ * ! Fixed fatal bug in parse_tree.rb caused by safe_level fix in ruby 1.8.3.
111
+
112
+ === 1.3.8 / 2005-09-27
113
+
114
+ * 1 bug fix:
115
+ * Our private version of struct METHOD went out of sync w/ latest ruby.
116
+ * Only use this if you are on 1.8.3+.
117
+
118
+ === 1.3.7 / 2005-07-13
119
+
120
+ * 3 bug fixes:
121
+ * Fixed rubygem requires for non-gem systems.
122
+ * Renamed on to on_error_in to make more clear.
123
+ * Moved exceptions to their own tree to make catching cleaner.
124
+
125
+ === 1.3.6 / 2005-05-19
126
+
127
+ * 2 minor enhancements:
128
+ * Improved debugging capability when $DEBUG.
129
+ * Allowed for selective debugging output by node type.
130
+ * 3 bug fixes:
131
+ * Minor fixes to Makefile and parse_tree_show.
132
+ * Improved error messages in parse_tree when newlines are included.
133
+ * Improved method coverage for parse_tree.
134
+
135
+ === 1.3.5 / 2005-04-19
136
+
137
+ * 2 minor enhancement
138
+ * Added dynamic exception handling on a per node-type basis (BIG).
139
+ * Added -c=classname to parse_tree_show to help w/ core classes.
140
+ * 1 bug fix
141
+ * Fixed dependency specification error in gemspec.
142
+
143
+ === 1.3.4 / 2005-02-09
144
+
145
+ * 2 bug fixes
146
+ * bug:1459: Cleaned up and corrected superclass naming code.
147
+ * bug:1458: Fixed while to support post-conditional while/until nodes.
148
+
149
+ === 1.3.3 / 2005-02-01
150
+
151
+ * 3 minor enhancement
152
+ * Cleaned up parse_tree_abc output
153
+ * Patched up null class names (delegate classes are weird!)
154
+ * Added UnknownNodeError and switched SyntaxError over to it.
155
+ * 2 bug fixes
156
+ * Fixed BEGIN node handling to recurse instead of going flat.
157
+ * FINALLY fixed the weird compiler errors seen on some versions of
158
+ gcc 3.4.x related to type punned pointers.
159
+
160
+ === 1.3.2 / 2005-01-04
161
+
162
+ * 1 minor enhancement
163
+ * Added total line to end of ABC metric report.
164
+ * 1 bug fix
165
+ * Updates for ruby 1.8.2 parse tree changes.
166
+
167
+ === 1.3.1 / 2004-12-09
168
+
169
+ * 1 minor enhancement
170
+ * Added rewrite_<type> processing.
171
+ * 2 bug fixes
172
+ * Renamed SexpProcessor's #exclude to #unsupported.
173
+ * Fixed a bus error when an attrasgn uses self.
174
+ * Added support for cfunc now that we found a repro.
175
+
176
+ === 1.3.0 / 2004-12-06
177
+
178
+ * 3 minor enhancements
179
+ * Finished supporting pretty much all nodes (that we can figger out).
180
+ * If $DEBUG, or true passed to new, then we now output the :newline nodes.
181
+ * We output much better extra debugging info if $DEBUG.
182
+ * 1 bug fixes
183
+ * Fixed README for new output style.
184
+
185
+ === 1.2.0 / 2004-11-29
186
+
187
+ * 9 minor enhancements
188
+ * ParseTree now returns symbols for all data except in :str and :lit.
189
+ * This WILL break existing code! (as if any exists)
190
+ * ParseTree.parse_tree now takes a list of classes, no optional method.
191
+ * ParseTree.parse_tree_for_method(klass, method) added.
192
+ * ParseTree.parse_tree now returns a list of :class/:module nodes.
193
+ * Added -f to parse_tree_show for uber fast demos.
194
+ * Added -q to parse_tree_show to NOT use pp so it is mucho faster.
195
+ * running with $DEBUG will trace the methods and nodes as processed.
196
+ * Added rdoc to everything.
197
+ * Gemified
198
+ * 4 bug fixes
199
+ * Bus error in iter/for nodes where arg list is empty now fixed.
200
+ * Bus error when handling 'def method(*)' is now fixed.
201
+ * Unnamed classes and superclasses (ugh) are now handled.
202
+ * parse_tree_abc now enumerates actual types rather than every token.
203
+
204
+ === 1.1.0 / 2004-11-12
205
+
206
+ * 2 minor enhancement
207
+ * Added SexpProcessor and CompositeSexpProcessor
208
+ * Allowed show.rb to read from standard input.
209
+ * 3 bug fixes
210
+ * Fixed makefile issues for BSD's make - so dumb.
211
+ * Added super as a call in abc.rb's metrics
212
+ * Commented out a compiler flag to work with GCC 2.95.
213
+
214
+ === 1.0.0 / 2004-11-06
215
+
216
+ * 1 major enhancement
217
+ * Birthday!
@@ -0,0 +1,22 @@
1
+ History.txt
2
+ Manifest.txt
3
+ README.txt
4
+ Rakefile
5
+ bin/parse_tree_abc
6
+ bin/parse_tree_audit
7
+ bin/parse_tree_deps
8
+ bin/parse_tree_show
9
+ demo/printer.rb
10
+ lib/composite_sexp_processor.rb
11
+ lib/parse_tree.rb
12
+ lib/sexp.rb
13
+ lib/sexp_processor.rb
14
+ lib/unique.rb
15
+ test/pt_testcase.rb
16
+ test/something.rb
17
+ test/test_all.rb
18
+ test/test_composite_sexp_processor.rb
19
+ test/test_parse_tree.rb
20
+ test/test_sexp.rb
21
+ test/test_sexp_processor.rb
22
+ validate.sh