myco 0.1.9 → 0.1.10

Sign up to get free protection for your applications and to get access to all the features.
Files changed (102) hide show
  1. checksums.yaml +4 -4
  2. data/lib/myco/bootstrap.my.rb +50 -14
  3. data/lib/myco/bootstrap/add_method.rb +5 -5
  4. data/lib/myco/bootstrap/meme.rb +2 -1
  5. data/lib/myco/code_tools/AST.my.rb +211 -43
  6. data/lib/myco/code_tools/AST/ArgumentAssembly.my.rb +92 -48
  7. data/lib/myco/code_tools/AST/ArrayAssembly.my.rb +39 -27
  8. data/lib/myco/code_tools/AST/Block.my.rb +176 -112
  9. data/lib/myco/code_tools/AST/BlockArgument.my.rb +29 -17
  10. data/lib/myco/code_tools/AST/BlockLiteral.my.rb +37 -17
  11. data/lib/myco/code_tools/AST/BlockParameter.my.rb +25 -9
  12. data/lib/myco/code_tools/AST/BranchOperator.my.rb +95 -75
  13. data/lib/myco/code_tools/AST/ConstantAccess.my.rb +52 -32
  14. data/lib/myco/code_tools/AST/ConstantAssignment.my.rb +52 -36
  15. data/lib/myco/code_tools/AST/ConstantDefine.my.rb +50 -26
  16. data/lib/myco/code_tools/AST/DeclareCategory.my.rb +38 -18
  17. data/lib/myco/code_tools/AST/DeclareExtension.my.rb +29 -13
  18. data/lib/myco/code_tools/AST/DeclareFile.my.rb +51 -31
  19. data/lib/myco/code_tools/AST/DeclareMeme.my.rb +96 -68
  20. data/lib/myco/code_tools/AST/DeclareObject.my.rb +66 -42
  21. data/lib/myco/code_tools/AST/DeclareString.my.rb +39 -19
  22. data/lib/myco/code_tools/AST/DeclaredScope.my.rb +92 -64
  23. data/lib/myco/code_tools/AST/Invoke.my +8 -4
  24. data/lib/myco/code_tools/AST/Invoke.my.rb +74 -31
  25. data/lib/myco/code_tools/AST/InvokeMethod.my.rb +34 -14
  26. data/lib/myco/code_tools/AST/KeywordAssembly.my.rb +36 -24
  27. data/lib/myco/code_tools/AST/KeywordOptionalParameter.my.rb +28 -8
  28. data/lib/myco/code_tools/AST/KeywordRequiredParameter.my.rb +23 -7
  29. data/lib/myco/code_tools/AST/KeywordRestParameter.my.rb +23 -7
  30. data/lib/myco/code_tools/AST/LocalVariableAccessAmbiguous.my.rb +24 -12
  31. data/lib/myco/code_tools/AST/LocalVariableAssignment.my.rb +30 -10
  32. data/lib/myco/code_tools/AST/Node.my.rb +234 -102
  33. data/lib/myco/code_tools/AST/NumericLiteral.my.rb +18 -6
  34. data/lib/myco/code_tools/AST/OptionalParameter.my.rb +33 -13
  35. data/lib/myco/code_tools/AST/ParameterAssembly.my.rb +275 -211
  36. data/lib/myco/code_tools/AST/PipeOperator.my.rb +42 -18
  37. data/lib/myco/code_tools/AST/Quest.my.rb +65 -37
  38. data/lib/myco/code_tools/AST/RequiredParameter.my.rb +20 -4
  39. data/lib/myco/code_tools/AST/RestParameter.my.rb +20 -4
  40. data/lib/myco/code_tools/AST/Script.my.rb +51 -23
  41. data/lib/myco/code_tools/AST/Sequence.my.rb +22 -10
  42. data/lib/myco/code_tools/AST/SplatValue.my.rb +28 -16
  43. data/lib/myco/code_tools/AST/StringCompose.my.rb +23 -11
  44. data/lib/myco/code_tools/AST/StringLiteral.my.rb +19 -7
  45. data/lib/myco/code_tools/AST/SymbolCompose.my.rb +27 -15
  46. data/lib/myco/code_tools/AST/SymbolLiteral.my.rb +18 -6
  47. data/lib/myco/code_tools/AST/ToRuby.my.rb +581 -341
  48. data/lib/myco/code_tools/AST/misc.my.rb +87 -35
  49. data/lib/myco/code_tools/Parser.my.rb +39 -12
  50. data/lib/myco/code_tools/parser/MycoBuilder.my.rb +106 -90
  51. data/lib/myco/code_tools/parser/MycoCharacterClasses.my.rb +98 -50
  52. data/lib/myco/code_tools/parser/MycoGrammar.my +1 -6
  53. data/lib/myco/code_tools/parser/MycoGrammar.my.rb +2124 -1710
  54. data/lib/myco/code_tools/parser/MycoTokens.my +0 -5
  55. data/lib/myco/code_tools/parser/MycoTokens.my.rb +387 -156
  56. data/lib/myco/code_tools/parser/pegleromyces/lib/pegleromyces.my.rb +55 -11
  57. data/lib/myco/code_tools/parser/pegleromyces/lib/pegleromyces/BytecodeHelpers.my.rb +321 -205
  58. data/lib/myco/code_tools/parser/pegleromyces/lib/pegleromyces/Capture.my.rb +223 -127
  59. data/lib/myco/code_tools/parser/pegleromyces/lib/pegleromyces/Common.my.rb +188 -72
  60. data/lib/myco/code_tools/parser/pegleromyces/lib/pegleromyces/Common/Parser.my +48 -0
  61. data/lib/myco/code_tools/parser/pegleromyces/lib/pegleromyces/Common/Parser.my.rb +365 -189
  62. data/lib/myco/code_tools/parser/pegleromyces/lib/pegleromyces/Composite.my.rb +313 -233
  63. data/lib/myco/code_tools/parser/pegleromyces/lib/pegleromyces/Grammar.my.rb +99 -55
  64. data/lib/myco/code_tools/parser/pegleromyces/lib/pegleromyces/Processor.my.rb +493 -325
  65. data/lib/myco/code_tools/parser/pegleromyces/lib/pegleromyces/Stream.my.rb +138 -114
  66. data/lib/myco/code_tools/parser/pegleromyces/lib/pegleromyces/Stream/Parser.my.rb +56 -44
  67. data/lib/myco/code_tools/parser/pegleromyces/lib/pegleromyces/String.my.rb +173 -93
  68. data/lib/myco/code_tools/parser/pegleromyces/lib/pegleromyces/String/Parser.my.rb +90 -70
  69. data/lib/myco/command.my.rb +85 -25
  70. data/lib/myco/command/inoculate.my.rb +219 -127
  71. data/lib/myco/core.my.rb +20 -4
  72. data/lib/myco/core/BasicDecorators.my.rb +211 -119
  73. data/lib/myco/core/BasicObject.my.rb +108 -44
  74. data/lib/myco/core/Category.my.rb +37 -13
  75. data/lib/myco/core/Decorator.my.rb +35 -27
  76. data/lib/myco/core/FileToplevel.my.rb +55 -27
  77. data/lib/myco/core/Loop.my.rb +16 -8
  78. data/lib/myco/core/Object.my.rb +34 -14
  79. data/lib/myco/core/Ruby.my.rb +13 -5
  80. data/lib/myco/core/Switch.my.rb +79 -47
  81. data/lib/myco/tools/BasicCommand.my.rb +79 -47
  82. data/lib/myco/tools/mycompile.my.rb +153 -69
  83. data/lib/myco/version.rb +1 -1
  84. metadata +34 -52
  85. data/lib/myco/code_tools/parser/pegleromyces/lib/pegleromyces/Parser.my +0 -144
  86. data/lib/myco/code_tools/parser/pegleromyces/lib/pegleromyces/Parser.my.rb +0 -221
  87. data/lib/myco/code_tools/parser/pegleromyces/spec/BasicSpec.my +0 -35
  88. data/lib/myco/code_tools/parser/pegleromyces/spec/BasicSpec.my.rb +0 -35
  89. data/lib/myco/code_tools/parser/pegleromyces/spec/Grammar.test.my +0 -10
  90. data/lib/myco/code_tools/parser/pegleromyces/spec/Grammar.test.my.rb +0 -9
  91. data/lib/myco/code_tools/parser/pegleromyces/spec/Patterns.test.my +0 -162
  92. data/lib/myco/code_tools/parser/pegleromyces/spec/Patterns.test.my.rb +0 -353
  93. data/lib/myco/code_tools/parser/pegleromyces/spec/Processor.test.my +0 -10
  94. data/lib/myco/code_tools/parser/pegleromyces/spec/Processor.test.my.rb +0 -9
  95. data/lib/myco/code_tools/parser/pegleromyces/spec/Stream/Parser.test.my +0 -49
  96. data/lib/myco/code_tools/parser/pegleromyces/spec/Stream/Parser.test.my.rb +0 -119
  97. data/lib/myco/code_tools/parser/pegleromyces/spec/Stream/Patterns.test.my +0 -131
  98. data/lib/myco/code_tools/parser/pegleromyces/spec/Stream/Patterns.test.my.rb +0 -595
  99. data/lib/myco/code_tools/parser/pegleromyces/spec/String/Parser.test.my +0 -120
  100. data/lib/myco/code_tools/parser/pegleromyces/spec/String/Parser.test.my.rb +0 -350
  101. data/lib/myco/code_tools/parser/pegleromyces/spec/run.my +0 -14
  102. data/lib/myco/code_tools/parser/pegleromyces/spec/run.my.rb +0 -12
@@ -1,17 +1,41 @@
1
1
 
2
2
  ::Myco::Component.new([::Myco::FileToplevel], ::Myco.cscope.for_method_definition, __FILE__, __LINE__)
3
3
  .tap { |__c__| __c__.__last__ = __c__.component_eval {(::Myco::Category.component_eval {(
4
- declare_meme(:method_missing, [], nil, ::Myco.cscope.dup) { |sym, *a, &b| (self.parent.__send__(
5
- sym,
6
- *a,
7
- &b
8
- ))}
9
- declare_meme(:send, [], nil, ::Myco.cscope.dup) { |*args, &block| (self.__send__(
10
- *args,
11
- &block
12
- ))}
13
- declare_meme(:kind_of?, [], nil, ::Myco.cscope.dup) { |mod| (self.__kind_of__(mod))}
14
- declare_meme(:is_a?, [], nil, ::Myco.cscope.dup) { |mod| (self.__kind_of__(mod))}
15
- declare_meme(:class, [], nil, ::Myco.cscope.dup) { |*| (self.__class__)}
16
- declare_meme(:dup, [], nil, ::Myco.cscope.dup) { |*| (self.__dup__)}
4
+ declare_meme(
5
+ :method_missing,
6
+ [],
7
+ ::Object::Proc.new { |sym, *a, &b| (self.parent.__send__(
8
+ sym,
9
+ *a,
10
+ &b
11
+ ))}
12
+ )
13
+ declare_meme(
14
+ :send,
15
+ [],
16
+ ::Object::Proc.new { |*args, &block| (self.__send__(
17
+ *args,
18
+ &block
19
+ ))}
20
+ )
21
+ declare_meme(
22
+ :kind_of?,
23
+ [],
24
+ ::Object::Proc.new { |mod| (self.__kind_of__(mod))}
25
+ )
26
+ declare_meme(
27
+ :is_a?,
28
+ [],
29
+ ::Object::Proc.new { |mod| (self.__kind_of__(mod))}
30
+ )
31
+ declare_meme(
32
+ :class,
33
+ [],
34
+ ::Object::Proc.new { |*| (self.__class__)}
35
+ )
36
+ declare_meme(
37
+ :dup,
38
+ [],
39
+ ::Object::Proc.new { |*| (self.__dup__)}
40
+ )
17
41
  )})}}.instance
@@ -1,31 +1,39 @@
1
1
 
2
2
  ::Myco::Component.new([::Myco::FileToplevel], ::Myco.cscope.for_method_definition, __FILE__, __LINE__)
3
3
  .tap { |__c__| __c__.__last__ = __c__.component_eval {(::Myco::Decorator.component_eval {(
4
- declare_meme(:apply, [], nil, ::Myco.cscope.dup) { |meme, *args| nil}
5
- __category__(:transforms).component_eval {(declare_meme(:apply, [], nil, ::Myco.cscope.dup) { |meme, *args| (
6
- (Rubinius::Type.object_respond_to?(self, :target).false? ? ::Myco::Void : self.target(meme)).tap { |x| (meme.__send__(
7
- :target=,
8
- x
9
- ))}
10
- (Rubinius::Type.object_respond_to?(self, :name).false? ? ::Myco::Void : self.name(meme)).tap { |x| (meme.__send__(
11
- :name=,
12
- x
13
- ))}
14
- (Rubinius::Type.object_respond_to?(self, :body).false? ? ::Myco::Void : self.body(meme)).tap { |x| (meme.__send__(
15
- :body=,
16
- x
17
- ))}
18
- (Rubinius::Type.object_respond_to?(self, :cache).false? ? ::Myco::Void : self.cache(meme)).tap { |x| (meme.__send__(
19
- :cache=,
20
- x
21
- ))}
22
- (Rubinius::Type.object_respond_to?(self, :var).false? ? ::Myco::Void : self.var(meme)).tap { |x| (meme.__send__(
23
- :var=,
24
- x
25
- ))}
26
- (Rubinius::Type.object_respond_to?(self, :expose).false? ? ::Myco::Void : self.expose(meme)).tap { |x| (meme.__send__(
27
- :expose=,
28
- x
29
- ))}
30
- )})}
4
+ declare_meme(
5
+ :apply,
6
+ [],
7
+ ::Object::Proc.new { |meme, *args| nil}
8
+ )
9
+ __category__(:transforms).component_eval {(declare_meme(
10
+ :apply,
11
+ [],
12
+ ::Object::Proc.new { |meme, *args| (
13
+ (Rubinius::Type.object_respond_to?(self, :target).false? ? ::Myco::Void : self.target(meme)).tap { |x| (meme.__send__(
14
+ :target=,
15
+ x
16
+ ))}
17
+ (Rubinius::Type.object_respond_to?(self, :name).false? ? ::Myco::Void : self.name(meme)).tap { |x| (meme.__send__(
18
+ :name=,
19
+ x
20
+ ))}
21
+ (Rubinius::Type.object_respond_to?(self, :body).false? ? ::Myco::Void : self.body(meme)).tap { |x| (meme.__send__(
22
+ :body=,
23
+ x
24
+ ))}
25
+ (Rubinius::Type.object_respond_to?(self, :cache).false? ? ::Myco::Void : self.cache(meme)).tap { |x| (meme.__send__(
26
+ :cache=,
27
+ x
28
+ ))}
29
+ (Rubinius::Type.object_respond_to?(self, :var).false? ? ::Myco::Void : self.var(meme)).tap { |x| (meme.__send__(
30
+ :var=,
31
+ x
32
+ ))}
33
+ (Rubinius::Type.object_respond_to?(self, :expose).false? ? ::Myco::Void : self.expose(meme)).tap { |x| (meme.__send__(
34
+ :expose=,
35
+ x
36
+ ))}
37
+ )}
38
+ ))}
31
39
  )})}}.instance
@@ -1,34 +1,62 @@
1
1
 
2
2
  ::Myco::Component.new([::Myco::FileToplevel], ::Myco.cscope.for_method_definition, __FILE__, __LINE__)
3
3
  .tap { |__c__| __c__.__last__ = __c__.component_eval {(::Myco::FileToplevel.component_eval {(
4
- declare_meme(:dirname, [], nil, ::Myco.cscope.dup) { |*| (self.component.instance_variable_get("@dirname"))}
5
- declare_meme(:basename, [], nil, ::Myco.cscope.dup) { |*| (self.component.instance_variable_get("@basename"))}
6
- declare_meme(:filename, [], nil, ::Myco.cscope.dup) { |*| (self.component.instance_variable_get("@filename"))}
4
+ declare_meme(
5
+ :dirname,
6
+ [],
7
+ ::Object::Proc.new { |*| (self.component.instance_variable_get("@dirname"))}
8
+ )
9
+ declare_meme(
10
+ :basename,
11
+ [],
12
+ ::Object::Proc.new { |*| (self.component.instance_variable_get("@basename"))}
13
+ )
14
+ declare_meme(
15
+ :filename,
16
+ [],
17
+ ::Object::Proc.new { |*| (self.component.instance_variable_get("@filename"))}
18
+ )
7
19
  __category__(:decorators).component_eval {(
8
- declare_meme(:import, [[:const, []]], nil, ::Myco.cscope.dup) { |*| (::Myco::Component.new([::Myco.find_constant(:Decorator)], ::Myco.cscope.for_method_definition, __FILE__, __LINE__)
9
- .tap { |__c__| __c__.__last__ = __c__.component_eval {(declare_meme(:apply, [], nil, ::Myco.cscope.dup) { |meme| (
10
- load_paths = [meme.target.instance.dirname]
11
- scope = meme.target.constant_scope
12
- component = ::Myco.find_constant(:Myco).eval_file(
13
- meme.name.to_s,
14
- load_paths,
15
- false,
16
- scope
17
- )
18
- const_name = meme.metadata.__send__(
19
- :[],
20
- :as
21
- )
22
- ::Myco.branch_op(:"??", ::Myco.branch_op(:"&?", const_name) {meme.target.const_set(
23
- const_name,
24
- component
25
- )}) {meme.target.include(component)}
26
- )})}}.instance)}
27
- declare_meme(:as, [[:const, []]], nil, ::Myco.cscope.dup) { |*| (::Myco::Component.new([::Myco.find_constant(:Decorator)], ::Myco.cscope.for_method_definition, __FILE__, __LINE__)
28
- .tap { |__c__| __c__.__last__ = __c__.component_eval {(declare_meme(:apply, [], nil, ::Myco.cscope.dup) { |meme, given| (meme.metadata.__send__(
29
- :[]=,
20
+ declare_meme(
21
+ :import,
22
+ [:const],
23
+ ::Object::Proc.new { |*| (::Myco::Component.new([::Myco.find_constant(:Decorator)], ::Myco.cscope.for_method_definition, __FILE__, __LINE__)
24
+ .tap { |__c__| __c__.__last__ = __c__.component_eval {(declare_meme(
25
+ :apply,
26
+ [],
27
+ ::Object::Proc.new { |meme| (
28
+ load_paths = [meme.target.instance.dirname]
29
+ scope = meme.target.constant_scope
30
+ component = ::Myco.find_constant(:Myco).eval_file(
31
+ meme.name.to_s,
32
+ load_paths,
33
+ false,
34
+ scope
35
+ )
36
+ const_name = meme.metadata.__send__(
37
+ :[],
38
+ :as
39
+ )
40
+ ::Myco.branch_op(:"??", ::Myco.branch_op(:"&?", const_name) {meme.target.const_set(
41
+ const_name,
42
+ component
43
+ )}) {meme.target.include(component)}
44
+ )}
45
+ ))}}.instance)}
46
+ )
47
+ declare_meme(
30
48
  :as,
31
- given
32
- ))})}}.instance)}
49
+ [:const],
50
+ ::Object::Proc.new { |*| (::Myco::Component.new([::Myco.find_constant(:Decorator)], ::Myco.cscope.for_method_definition, __FILE__, __LINE__)
51
+ .tap { |__c__| __c__.__last__ = __c__.component_eval {(declare_meme(
52
+ :apply,
53
+ [],
54
+ ::Object::Proc.new { |meme, given| (meme.metadata.__send__(
55
+ :[]=,
56
+ :as,
57
+ given
58
+ ))}
59
+ ))}}.instance)}
60
+ )
33
61
  )}
34
62
  )})}}.instance
@@ -2,12 +2,20 @@
2
2
  ::Myco::Component.new([::Myco::FileToplevel], ::Myco.cscope.for_method_definition, __FILE__, __LINE__)
3
3
  .tap { |__c__| __c__.__last__ = __c__.component_eval {(::Myco::Loop = (::Myco::Component.new([::Myco::BasicObject], ::Myco.cscope.for_method_definition, __FILE__, __LINE__)
4
4
  .tap { |__c__| __c__.__last__ = __c__.component_eval {(
5
- declare_meme(:run, [], nil, ::Myco.cscope.dup) { |&block| (::Object.__send__(
6
- :loop,
7
- &block
8
- ))}
9
- declare_meme(:break, [], nil, ::Myco.cscope.dup) { |*| (::Object.__send__(
10
- :raise,
11
- ::Object::StopIteration
12
- ))}
5
+ declare_meme(
6
+ :run,
7
+ [],
8
+ ::Object::Proc.new { |&block| (::Object.__send__(
9
+ :loop,
10
+ &block
11
+ ))}
12
+ )
13
+ declare_meme(
14
+ :break,
15
+ [],
16
+ ::Object::Proc.new { |*| (::Object.__send__(
17
+ :raise,
18
+ ::Object::StopIteration
19
+ ))}
20
+ )
13
21
  )}}.instance))}}.instance
@@ -2,19 +2,39 @@
2
2
  ::Myco::Component.new([::Myco::FileToplevel], ::Myco.cscope.for_method_definition, __FILE__, __LINE__)
3
3
  .tap { |__c__| __c__.__last__ = __c__.component_eval {(::Myco::Object = ::Myco::Component.new([::Myco::BasicObject], ::Myco.cscope.for_method_definition, __FILE__, __LINE__)
4
4
  .tap { |__c__| __c__.__last__ = __c__.component_eval {(
5
- declare_meme(:__signal__, [], nil, ::Myco.cscope.dup) { |name, *args, &block| (self.component.ancestors.reverse.each { |other| ((Rubinius::Type.object_respond_to?(other, :__signal_handlers__).false? ? ::Myco::Void : other.__signal_handlers__(name)).each { |meme| (meme.result_for(
6
- self,
7
- *args,
8
- &block
9
- ))})})}
10
- declare_meme(:__signal_handlers__, [
11
- [:storage, []],
12
- [:static, []]
13
- ], nil, ::Myco.cscope.dup) { |*| ([])}
14
- __category__(:decorators).component_eval {(declare_meme(:on, [[:const, []]], nil, ::Myco.cscope.dup) { |*| (::Myco::Component.new([::Myco.find_constant(:Decorator)], ::Myco.cscope.for_method_definition, __FILE__, __LINE__)
15
- .tap { |__c__| __c__.__last__ = __c__.component_eval {(
16
- declare_meme(:apply, [], nil, ::Myco.cscope.dup) { |meme| (meme.target.__signal_handlers__(meme.name).push(meme))}
17
- __category__(:transforms).component_eval {(declare_meme(:expose, [], nil, ::Myco.cscope.dup) { |*| (false)})}
18
- )}}.instance)})}
5
+ declare_meme(
6
+ :__signal__,
7
+ [],
8
+ ::Object::Proc.new { |name, *args, &block| (self.component.ancestors.reverse.each { |other| ((Rubinius::Type.object_respond_to?(other, :__signal_handlers__).false? ? ::Myco::Void : other.__signal_handlers__(name)).each { |meme| (meme.result_for(
9
+ self,
10
+ *args,
11
+ &block
12
+ ))})})}
13
+ )
14
+ declare_meme(
15
+ :__signal_handlers__,
16
+ [
17
+ :storage,
18
+ :static
19
+ ],
20
+ ::Object::Proc.new { |*| ([])}
21
+ )
22
+ __category__(:decorators).component_eval {(declare_meme(
23
+ :on,
24
+ [:const],
25
+ ::Object::Proc.new { |*| (::Myco::Component.new([::Myco.find_constant(:Decorator)], ::Myco.cscope.for_method_definition, __FILE__, __LINE__)
26
+ .tap { |__c__| __c__.__last__ = __c__.component_eval {(
27
+ declare_meme(
28
+ :apply,
29
+ [],
30
+ ::Object::Proc.new { |meme| (meme.target.__signal_handlers__(meme.name).push(meme))}
31
+ )
32
+ __category__(:transforms).component_eval {(declare_meme(
33
+ :expose,
34
+ [],
35
+ ::Object::Proc.new { |*| (false)}
36
+ ))}
37
+ )}}.instance)}
38
+ ))}
19
39
  )}}
20
40
  .tap { |__c__| __c__.__name__ = :Object })}}.instance
@@ -5,12 +5,20 @@
5
5
  ::Myco::BasicObject
6
6
  ], ::Myco.cscope.for_method_definition, __FILE__, __LINE__)
7
7
  .tap { |__c__| __c__.__last__ = __c__.component_eval {(
8
- declare_meme(:eval, [[:static, []]], nil, ::Myco.cscope.dup) { |*a, &b| (::Myco.find_constant(:Kernel).eval(
9
- *a,
10
- &b
11
- ))}
8
+ declare_meme(
9
+ :eval,
10
+ [:static],
11
+ ::Object::Proc.new { |*a, &b| (::Myco.find_constant(:Kernel).eval(
12
+ *a,
13
+ &b
14
+ ))}
15
+ )
12
16
  ::Myco.cscope.for_method_definition::Eval = ::Myco::Component.new([::Myco::EmptyObject], ::Myco.cscope.for_method_definition, __FILE__, __LINE__)
13
- .tap { |__c__| __c__.__last__ = __c__.component_eval {(declare_meme(:from_string, [], nil, ::Myco.cscope.dup) { |string| (::Myco.find_constant(:Ruby).eval(string))})}}
17
+ .tap { |__c__| __c__.__last__ = __c__.component_eval {(declare_meme(
18
+ :from_string,
19
+ [],
20
+ ::Object::Proc.new { |string| (::Myco.find_constant(:Ruby).eval(string))}
21
+ ))}}
14
22
  .tap { |__c__| __c__.__name__ = :Eval }
15
23
  )}}
16
24
  .tap { |__c__| __c__.__name__ = :Ruby })}}.instance
@@ -2,52 +2,84 @@
2
2
  ::Myco::Component.new([::Myco::FileToplevel], ::Myco.cscope.for_method_definition, __FILE__, __LINE__)
3
3
  .tap { |__c__| __c__.__last__ = __c__.component_eval {(::Myco::Switch = ::Myco::Component.new([::Myco::Object], ::Myco.cscope.for_method_definition, __FILE__, __LINE__)
4
4
  .tap { |__c__| __c__.__last__ = __c__.component_eval {(
5
- declare_meme(:input, [[:var, []]], nil, ::Myco.cscope.dup) { |*| (::Myco::Void)}
6
- declare_meme(:output, [[:var, []]], nil, ::Myco.cscope.dup) { |*| (::Myco::Void)}
7
- declare_meme(:matched, [[:var, []]], nil, ::Myco.cscope.dup) { |*| (false)}
8
- declare_meme(:comparator, [[:var, []]], nil, ::Myco.cscope.dup) { |*| (:==)}
9
- declare_meme(:when, [], nil, ::Myco.cscope.dup) { |expected, &blk| (
10
- ::Myco.branch_op(:"||", self.matched) {::Myco.branch_op(:"&&", self.input.__send__(
11
- self.comparator,
12
- expected
13
- )) {::Myco.branch_op(:"&&", self.__send__(
14
- :matched=,
15
- true
16
- )) {self.__send__(
17
- :output=,
18
- blk.call(self.input)
19
- )}}}
20
- self
21
- )}
22
- declare_meme(:when_true, [], nil, ::Myco.cscope.dup) { |&blk| (
23
- ::Myco.branch_op(:"||", self.matched) {::Myco.branch_op(:"&&", self.input) {::Myco.branch_op(:"&&", self.__send__(
24
- :matched=,
25
- true
26
- )) {self.__send__(
27
- :output=,
28
- blk.call(self.input)
29
- )}}}
30
- self
31
- )}
32
- declare_meme(:when_false, [], nil, ::Myco.cscope.dup) { |&blk| (
33
- ::Myco.branch_op(:"||", self.matched) {::Myco.branch_op(:"||", self.input) {::Myco.branch_op(:"&&", self.__send__(
34
- :matched=,
35
- true
36
- )) {self.__send__(
37
- :output=,
38
- blk.call(self.input)
39
- )}}}
40
- self
41
- )}
42
- declare_meme(:else, [], nil, ::Myco.cscope.dup) { |&blk| (
43
- ::Myco.branch_op(:"||", self.matched) {::Myco.branch_op(:"&&", self.__send__(
44
- :matched=,
45
- true
46
- )) {self.__send__(
47
- :output=,
48
- blk.call(self.input)
49
- )}}
50
- self
51
- )}
5
+ declare_meme(
6
+ :input,
7
+ [:var],
8
+ ::Object::Proc.new { |*| (::Myco::Void)}
9
+ )
10
+ declare_meme(
11
+ :output,
12
+ [:var],
13
+ ::Object::Proc.new { |*| (::Myco::Void)}
14
+ )
15
+ declare_meme(
16
+ :matched,
17
+ [:var],
18
+ ::Object::Proc.new { |*| (false)}
19
+ )
20
+ declare_meme(
21
+ :comparator,
22
+ [:var],
23
+ ::Object::Proc.new { |*| (:==)}
24
+ )
25
+ declare_meme(
26
+ :when,
27
+ [],
28
+ ::Object::Proc.new { |expected, &blk| (
29
+ ::Myco.branch_op(:"||", self.matched) {::Myco.branch_op(:"&&", self.input.__send__(
30
+ self.comparator,
31
+ expected
32
+ )) {::Myco.branch_op(:"&&", self.__send__(
33
+ :matched=,
34
+ true
35
+ )) {self.__send__(
36
+ :output=,
37
+ blk.call(self.input)
38
+ )}}}
39
+ self
40
+ )}
41
+ )
42
+ declare_meme(
43
+ :when_true,
44
+ [],
45
+ ::Object::Proc.new { |&blk| (
46
+ ::Myco.branch_op(:"||", self.matched) {::Myco.branch_op(:"&&", self.input) {::Myco.branch_op(:"&&", self.__send__(
47
+ :matched=,
48
+ true
49
+ )) {self.__send__(
50
+ :output=,
51
+ blk.call(self.input)
52
+ )}}}
53
+ self
54
+ )}
55
+ )
56
+ declare_meme(
57
+ :when_false,
58
+ [],
59
+ ::Object::Proc.new { |&blk| (
60
+ ::Myco.branch_op(:"||", self.matched) {::Myco.branch_op(:"||", self.input) {::Myco.branch_op(:"&&", self.__send__(
61
+ :matched=,
62
+ true
63
+ )) {self.__send__(
64
+ :output=,
65
+ blk.call(self.input)
66
+ )}}}
67
+ self
68
+ )}
69
+ )
70
+ declare_meme(
71
+ :else,
72
+ [],
73
+ ::Object::Proc.new { |&blk| (
74
+ ::Myco.branch_op(:"||", self.matched) {::Myco.branch_op(:"&&", self.__send__(
75
+ :matched=,
76
+ true
77
+ )) {self.__send__(
78
+ :output=,
79
+ blk.call(self.input)
80
+ )}}
81
+ self
82
+ )}
83
+ )
52
84
  )}}
53
85
  .tap { |__c__| __c__.__name__ = :Switch })}}.instance