rubyjs 0.7.0

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.
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