treetop 1.1.2 → 1.1.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (74) hide show
  1. data/Rakefile +6 -6
  2. data/doc/images/bottom_background.png +0 -0
  3. data/doc/images/middle_backgound.png +0 -0
  4. data/doc/images/middle_background.png +0 -0
  5. data/doc/images/top_background.png +0 -0
  6. data/doc/index.markdown +13 -8
  7. data/doc/screen.css +52 -0
  8. data/doc/site.html +34 -0
  9. data/doc/site.rb +41 -0
  10. data/examples/lambda_calculus/lambda_calculus.rb +2 -2
  11. data/lib/treetop/bootstrap_gen_1_metagrammar.rb +37 -0
  12. data/lib/treetop/compiler/metagrammar. +0 -0
  13. data/lib/treetop/compiler/metagrammar.rb +20 -9
  14. data/lib/treetop/compiler/metagrammar.treetop +1 -1
  15. data/lib/treetop/compiler/node_classes/declaration_sequence.rb +1 -7
  16. data/lib/treetop/compiler/node_classes/grammar.rb +2 -2
  17. data/lib/treetop/runtime/compiled_parser.rb +15 -2
  18. metadata +12 -74
  19. data/test/compilation_target/target.rb +0 -143
  20. data/test/compilation_target/target.treetop +0 -15
  21. data/test/compilation_target/target_test.rb +0 -56
  22. data/test/compiler/and_predicate_test.rb +0 -33
  23. data/test/compiler/anything_symbol_test.rb +0 -24
  24. data/test/compiler/character_class_test.rb +0 -45
  25. data/test/compiler/choice_test.rb +0 -74
  26. data/test/compiler/circular_compilation_test.rb +0 -20
  27. data/test/compiler/failure_propagation_functional_test.rb +0 -20
  28. data/test/compiler/grammar_compiler_test.rb +0 -58
  29. data/test/compiler/grammar_test.rb +0 -37
  30. data/test/compiler/nonterminal_symbol_test.rb +0 -38
  31. data/test/compiler/not_predicate_test.rb +0 -35
  32. data/test/compiler/one_or_more_test.rb +0 -30
  33. data/test/compiler/optional_test.rb +0 -32
  34. data/test/compiler/parenthesized_expression_test.rb +0 -17
  35. data/test/compiler/parsing_rule_test.rb +0 -30
  36. data/test/compiler/sequence_test.rb +0 -68
  37. data/test/compiler/terminal_symbol_test.rb +0 -35
  38. data/test/compiler/test_grammar.treetop +0 -7
  39. data/test/compiler/zero_or_more_test.rb +0 -51
  40. data/test/composition/a.treetop +0 -11
  41. data/test/composition/b.treetop +0 -11
  42. data/test/composition/c.treetop +0 -10
  43. data/test/composition/d.treetop +0 -10
  44. data/test/composition/grammar_composition_test.rb +0 -23
  45. data/test/parser/syntax_node_test.rb +0 -53
  46. data/test/parser/terminal_parse_failure_test.rb +0 -22
  47. data/test/ruby_extensions/string_test.rb +0 -33
  48. data/test/screw/Rakefile +0 -16
  49. data/test/screw/unit.rb +0 -37
  50. data/test/screw/unit/assertion_failed_error.rb +0 -14
  51. data/test/screw/unit/assertions.rb +0 -615
  52. data/test/screw/unit/auto_runner.rb +0 -227
  53. data/test/screw/unit/collector.rb +0 -45
  54. data/test/screw/unit/collector/dir.rb +0 -107
  55. data/test/screw/unit/collector/objectspace.rb +0 -28
  56. data/test/screw/unit/error.rb +0 -48
  57. data/test/screw/unit/failure.rb +0 -45
  58. data/test/screw/unit/sugar.rb +0 -25
  59. data/test/screw/unit/test_case.rb +0 -176
  60. data/test/screw/unit/test_result.rb +0 -73
  61. data/test/screw/unit/test_suite.rb +0 -70
  62. data/test/screw/unit/ui.rb +0 -4
  63. data/test/screw/unit/ui/console/test_runner.rb +0 -118
  64. data/test/screw/unit/ui/fox/test_runner.rb +0 -268
  65. data/test/screw/unit/ui/gtk/test_runner.rb +0 -416
  66. data/test/screw/unit/ui/gtk2/testrunner.rb +0 -465
  67. data/test/screw/unit/ui/test_runner_mediator.rb +0 -58
  68. data/test/screw/unit/ui/test_runner_utilities.rb +0 -46
  69. data/test/screw/unit/ui/tk/test_runner.rb +0 -260
  70. data/test/screw/unit/util.rb +0 -4
  71. data/test/screw/unit/util/backtrace_filter.rb +0 -40
  72. data/test/screw/unit/util/observable.rb +0 -82
  73. data/test/screw/unit/util/proc_wrapper.rb +0 -48
  74. data/test/test_helper.rb +0 -90
@@ -1,48 +0,0 @@
1
- #--
2
- #
3
- # Author:: Nathaniel Talbott.
4
- # Copyright:: Copyright (c) 2000-2002 Nathaniel Talbott. All rights reserved.
5
- # License:: Ruby license.
6
-
7
- module Screw
8
- module Unit
9
- module Util
10
-
11
- # Allows the storage of a Proc passed through '&' in a
12
- # hash.
13
- #
14
- # Note: this may be inefficient, since the hash being
15
- # used is not necessarily very good. In Observable,
16
- # efficiency is not too important, since the hash is
17
- # only accessed when adding and removing listeners,
18
- # not when notifying.
19
-
20
- class ProcWrapper
21
-
22
- # Creates a new wrapper for a_proc.
23
- def initialize(a_proc)
24
- @a_proc = a_proc
25
- @hash = a_proc.inspect.sub(/^(#<#{a_proc.class}:)/){''}.sub(/(>)$/){''}.hex
26
- end
27
-
28
- def hash
29
- return @hash
30
- end
31
-
32
- def ==(other)
33
- case(other)
34
- when ProcWrapper
35
- return @a_proc == other.to_proc
36
- else
37
- return super
38
- end
39
- end
40
- alias :eql? :==
41
-
42
- def to_proc
43
- return @a_proc
44
- end
45
- end
46
- end
47
- end
48
- end
data/test/test_helper.rb DELETED
@@ -1,90 +0,0 @@
1
- require 'rubygems'
2
- dir = File.dirname(__FILE__)
3
- $:.unshift(File.expand_path(File.join(dir, '..', 'lib')))
4
- require File.expand_path(File.join(dir, 'screw', 'unit'))
5
- gem_original_require 'treetop'
6
-
7
- include Treetop
8
-
9
- unless Object.const_defined?(:METAGRAMMAR_PATH)
10
- METAGRAMMAR_PATH = File.join(TREETOP_ROOT, 'compiler', 'metagrammar.treetop')
11
- fresh_metagrammar_source = Compiler::GrammarCompiler.new.ruby_source(METAGRAMMAR_PATH)
12
- Compiler.send(:remove_const, :Metagrammar)
13
- Object.class_eval(fresh_metagrammar_source)
14
- end
15
-
16
- class CompilerTestCase < Screw::Unit::TestCase
17
- class << self
18
- attr_accessor :parser_class_under_test
19
-
20
- def testing_expression(expression_to_test)
21
- rule_node = parse_with_metagrammar_2("rule test_expression\n" + expression_to_test + "\nend", :parsing_rule)
22
- test_parser_code = generate_test_parser_for_expression(rule_node)
23
- #puts test_parser_code
24
- class_eval(test_parser_code)
25
- self.parser_class_under_test = const_get(:TestParser)
26
- end
27
-
28
- def testing_grammar(grammar_to_test)
29
- grammar_node = parse_with_metagrammar_2(grammar_to_test.strip, :grammar)
30
- test_parser_code = grammar_node.compile
31
- # puts test_parser_code
32
- class_eval(test_parser_code)
33
- self.parser_class_under_test = const_get(grammar_node.parser_name.to_sym)
34
- end
35
-
36
- def generate_test_parser_for_expression(expression_node)
37
- builder = Compiler::RubyBuilder.new
38
- address = builder.next_address
39
- expression_node.compile(builder)
40
- %{
41
- class TestParser < Treetop::Runtime::CompiledParser
42
- include Treetop::Runtime
43
-
44
- attr_accessor :test_index
45
-
46
- def root
47
- _nt_test_expression
48
- end
49
-
50
- def reset_index
51
- @index = @test_index || 0
52
- end
53
-
54
- #{builder.ruby.tabrestto(10)}
55
- end
56
- }.tabto(0)
57
- end
58
-
59
- def parse_with_metagrammar_2(input, root)
60
- parser = Treetop::Compiler::MetagrammarParser.new
61
- parser.send(:prepare_to_parse, input)
62
- node = parser.send("_nt_#{root}".to_sym)
63
- raise "#{input} cannot be parsed by the metagrammar: #{node.nested_failures.map {|f| f.to_s}.join("\n")}" if node.failure?
64
- node
65
- end
66
-
67
- end
68
-
69
- def parse_with_metagrammar_2(input, root)
70
- self.class.parse_with_metagrammar_2(input, root)
71
- end
72
-
73
- def parser_class_under_test
74
- self.class.parser_class_under_test
75
- end
76
-
77
- def parse(input, options = {})
78
- test_parser = parser_class_under_test.new
79
- test_parser.test_index = options[:at_index] if options[:at_index]
80
- result = test_parser.parse(input)
81
- yield result if block_given?
82
- result
83
- end
84
- end
85
-
86
- class String
87
- def tabrestto(n)
88
- self.gsub(/\n^/, "\n" + ' ' * n)
89
- end
90
- end